On Sat, Sep 8, 2012 at 9:49 AM, Pedro Melo <m...@simplicidade.org> wrote:
> > On Fri, Sep 7, 2012 at 11:47 AM, sawyer x <xsawy...@gmail.com> wrote: > > I don't understand why people upload things to CPAN that are > specifically exclusively without-a-doubt on-purpose just for them? > > Two reasons: > > * it is very convenient to install, just use the commands you already > know about; > Not a good enough reason, IMHO. The fact that it's convenient or easy doesn't make it okay. You're putting private things that you destine only for yourself in a forum that's meant to be useful for others as well. Again, possibly, hopefully, maybe. > * the author can include that module as a dependency on his projects > like he does with all the other CPAN dependencies. > > The second one is the most important to me. Just because it is a > module that you might not use, it might be a module that is installed > on your system as a direct dependency of other modules I have on CPAN. > That's a terrible thing to do! Please, for the love of all that is good and holy, never put any project to depend on a personal distribution of your favorite modules. I will most likely refuse to use it entirely for that reason alone. Declare what you're using, not what you like to have installed! > > Other use cases I have: Moo/Moose roles. I have a couple of roles that > I reuse on a lot of projects, including some modules that eventually > will be uploaded to CPAN. > > Are they worth moving to Moo(se)X::Roles::Something? Maybe they are, > maybe they aren't. At this point I don't really know, and instead of > polluting that namespace, I would upload them to my Author namespace, > and use them as dependencies. > If anyone would be able to use them, then YES, they are worth splitting into a role! DEFINITELY! Please do that! I will be happy to help! By providing a role, you're at least saying "hey, you can use this shit! It's for you too! I hope you find it useful, and if not... that's cool too!" -- That's a good reason right there. I won't go into the goodness of decoupling your code properly, which you already know and appreciate. > > People always say "hey, if it's useful for even one person, it should be > out there", but these are things that are on purpose only useful and meant > for the author. Why upload them? > > Just because it's only useful to the author, it doesn't mean it only > be installed by the author. > And just because it *can* be installed by others, doesn't mean it will. It probably won't. That's why people started creating even more author plugin bundles that share other plugins with other author plugin bundles. Because they realize "hey, I like only *some* of the things you like and *some* of the things you don't like." -- It leads to even more damnation fire! > > CPAN is there to promote reuse. I have modules that I want to reuse > but I don't know if they should be real full blown CPAN modules. So I > uploaded them to my Author namespace, and reuse them on other modules. > People can't depend on your test environment. That's why you give it a proper name if you want others to be able to use it. > > Personal modules does not imply single use or private use only. > Yes, it does. By *all* means, it does. > > On Fri, Sep 7, 2012 at 4:48 PM, sawyer x <xsawy...@gmail.com> wrote: > > It's not about putting weight strain on CPAN mirrors (though I'm not > sure it's impossible to make such a claim), but of the pollution of CPAN. > > About this two points, strain and pollution of CPAN. > > The fact that they are clearly labeled Author modules actually helps > with the strain on CPAN. Right now, a lot of personal modules > (Task::BeLike and dzil PluginBundles::Author) exist and are mixed with > more useful modules. But if they are clearly labeled, then you can > target them with a policy to reduce the strain on CPAN. > I disagree. I think they are clearly labelled by being in the Task::BeLike and PluginBundles::Author namespaces. This is still bad. > You can skip indexing them on search/metacpan, or index them and not > include them on general search results. Make that opt-in. > > You can more aggressively remove old versions. You can delete old > versions to Backpan. Or even send skip sending them at all to Backpan. > > And you can skip them when you create your local CPAN mirror, pulling > only your own namespace. All of this can be done, but none of it is, and probably none of it will be. > > Regarding pollution of CPAN, moving personal stuff that *is already on > CPAN* to a personal namespace actually reduces the pollution of CPAN. > How about quitting uploading personal stuff? Seems easy, seems more considerate too. > > > When I reach a new machine, I clone both and set things up. I used to > also have a bash script that ran "cpanm $MODULES" to install the modules I > use frequently. > > Me too. The cpanm part is actually: cpanm Task::BeLike::MELO > > I would love to move that to Author::MELO::Stack (with possible new > ::Stack::Runtime and ::Stack::Devel). > But that's the problem! You're using CPAN to put your personal stuff. You're using CPAN to replace Github. > I still think this is an idea worth considering. You can see it as > just another garbage namespace, but if you do, I can only argue "Good, > maybe a lot of the garbage already on CPAN can be moved to their > proper place now". > That's a fair point. I will stipulate that if anything, the Author:: namespace is probably nicer than all those that already exist. Still, the point wasn't "could we move stuff from one point to another", but "if you're raising the idea of putting even another namespace for even more things, I'd like to draw your attention to the fact that I think that whole my-personal-CPAN-inside-CPAN is a bad idea". > > I still need to upload a policy module that will be included with all > my modules. I can pollute the Pod::Weaver::PluginBundle::Author > somemore but I rather not. > Please, not another one! :) > > Just because its personal, doesn't mean its not meant for reuse. Even > if it just personal reuse, it is still reuse. And IMVHO, reuse is what > CPAN is all about. > Yes, it does. The fact you're making it *only* about yourself means it's not for reuse. > > What do you think? > I appreciate you very much, but I find this idea bad, and I hope people stop doing such things. I've discussed it with several people at YAPC (both ::NA and ::EU) and overall I got the same tone: "it's nice that we can have it, but it would be nicer if people wouldn't do it".