[Whoops -- somewhere along the line Adam and I stopped CC'ing the list. I'd meant my reply to go to all, so I'm forwarding it below.]
On Nov 19, 2007 8:10 AM, David Golden <[EMAIL PROTECTED]> wrote: > On Nov 19, 2007 3:12 AM, Adam Kennedy <[EMAIL PROTECTED]> wrote: > > ExtUtils::MakeMaker is one of them, and the one that I think seals the deal, > > because it's basically not back-compatible, or at least we end up with > > ($ExtUtils::MakeMaker::VERSION... ) ? ( ... ) : () inside the prereq_pm key > > (presumably...). > > There are plenty examples of that syntax today. Moreover, adding a > new key to META.yml doesn't change that, as module users' machines may > not have up-to-date PERL_VERSION compatible EU::MM. From a design > flaw perspective -- the fact that the META.yml and dist tarball > generator is the same codebase that end-users need to have installed > just to make/test/install a module seems to be the bigger problem. It > effectively prevents substantial innovation for module authoring in > order to preserve compatibility with those installing. > > > There's been niggly issues with Module::Install as well, because of the > > special handling required. > > There's been niggly issues elsewhere because of Module::Install -- > e.g. CPAN.pm set PERL5_CPANPLUS_IS_RUNNING *and* > PERL5_CPAN_IS_RUNNING? M::I is actually the easier thing to fix > without compatibility issues than the rest of the toolchain since > affected module authors only need to upgrade M::I and re-release. > > I just don't accept EU::MM and M::I as sufficient "number of > incidents" to justify. > > > Well, firstly, I want to see universal declaration of minimum Perl versions > > needed in metadata. > > > > perl_version is (in my opinion anyways) better for this. > > You won't get "universal" until all CPAN adds it. You have a place > where it's being declared in metadata by many modules today. The last > statement isn't a use-case, it's just a design opinion. > > > Even if MY modules have a 5.005 declaration, I'd like to see the graph of my > > deps and auto-magically scan to see none of my deps have higher perl version > > deps than mine. > > How is this different with a perl_version:5006 key versus a > requires:perl:5006 key? At the end of the day, it's still just > interrogating a META.yml file to pick out a number. > > So your use case analysis is: > > * universal perl version in metadata (check, already there today for > many modules and could be added similarly by any others that define > it) > > * be able to scan dependencies for perl version (check, already possible > today) > > > For example, did anyone else notice the IO::Zlib release today? > > > > It adds a 5.006 minimum, which impacts Archive::Tar and a few other > > components of Bundle::CPAN, which basically means the CPAN toolchain just > > lost 5.005 support. > > I didn't see the 5.006 part -- but that's OK since Schwern just > declared the 5.005 toolchain dead anyway. (Thank god for benevolent > dictators -- if nothing else, Slaven should get credit for the > "assist" on making that happen.) > > > I only just happened to notice that, but I'd like to see some level of > > automation/management of this sort of stuff. > > > > This is MY main use case... > > Which would be possible today if IO::Zlib added "requires:perl:5.006" > to its META.yml. > > One problem is that IO::Zlib uses Makefile.PL and EU::MM doesn't like > "perl" in PREREQ_PM (though it *does* write it the Makefile PREREQ_PM > and to META.yml, so it works, but it's noisy about it). I even > offered a patch (and test file) for EU::MM on RT back in July: > https://rt.cpan.org/Ticket/Display.html?id=28374 > > Schwern (or someone's) suggestion of a perl.pm hack to silence older > EU::MM's that have to consume perl in the PREREQ_PM would take what, > 15 minutes to write, test, tarball and upload? Yes, it's a hack. But > it's a simple, limited hack. > > So with maybe 30 minutes of work to apply the patch to EU::MM and to > release perl.pm, all your use case needs (already satisfied) even > become user friendly. > > Then you just have to evangelize putting "perl" into the requires > section and your universal metadata is on the way. > > We've probably spent more time debating this issue than it would have > taken to apply the patch and write perl.pm. > > David >