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

Reply via email to