Hi Phillip, The two of us seem to have arrived at very similar positions.
On Sat, Jun 2, 2012 at 8:36 AM, Phillip Moore <w.phillip.mo...@gmail.com> wrote: > For example, internally in perl you will specify a dependency on a > specific version of a specific module: > > use Foo::Bar 1.0; > > But, when Foo::Bar is part of a *suite* of modules, which you can't > install independent of the distribution, then you have to think about > depending on the distribution, perhaps Foo-2.1.tar.gz. My "favorite" example is URI::Escape 3.31, which is distributed with URI-1.60.tar.gz. http://search.cpan.org/~gaas/URI-1.60/ > Now, it sure would be nice if people could standardize on the > convention that ALL of the modules in a given distribution share the > same version number, but we can't even get people to upload > META.yml/json files consistently. If each package has a version number and they are all sync'd to the same number as the distro, that is functionally equivalent to per-distro versioning and dependency specification, no? Imagine a system where per-distro metadata files get installed alongside module files in @INC, where module files contain embedded pointers to their per-distro metadata file, and where per-distro metadata is used to validate runtime dependency versioning specification. I can't think of a situation where those two systems gives us different results unless a file gets clobbered somewhere. > THAT point being: if you are developing a system to manage arbitrary > CPAN modules, you can't depend on people following *any* guidelines, > and you have to take a heuristic approach and handle a lot of ugly > edge conditions. It's true that relying on individual authors is folly, but the people who write and maintain toolchain modules are more sophisticated -- and they are the ones who create the boilerplate and the infrastructure that other authors rely upon. It's worth building consensus about best practices for the indirect benefit of less conscientious module authors by way of toolchain authors, as well as for the direct benefit of conscientious module authors. Marvin Humphrey