Skip Menu |

This queue is for tickets about the App-Cpan CPAN distribution.

Report information
The Basics
Id: 82789
Status: rejected
Priority: 0/
Queue: App-Cpan

People
Owner: Nobody in particular
Requestors: jquelin [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: conflict between App-CPAN and CPAN
Those 2 releases conflicts: - https://metacpan.org/release/CPAN - https://metacpan.org/release/App-Cpan Both provide cpan(1) and App::CPAN(3pm). The former is version 1.9800 while the latter is version 1.5902 ==> which should be used? should one be deprecated? Note: I'm wearing my Mageia packager hat, since both can't be packaged. Indeed, the 2 rpms conflict because they want to install the same file location, but with different content. So, which should be ignored? Thanks, Jérôme
I have always tried to include BDFOY's cpan program in the CPAN.pm distro. So far it has worked out but indeed, you're right, I have missed to integrate a few recent releases. I'm not yet sure what I should do. Maybe declare App::CPAN as a prerequisite and remove the two files script/cpan and lib/App/CPAN.pm would be best. I'll find out soonish. At least the intention is clear: I want to endorse BDFOY's version, not copete with it. But I see my duty also in sanity checking the script. Recently it had issues and so I tried to protect my users from using a broken version. This is a reason to not automatically include his newest version under all circumstances. Difficult question... Give me a bit time to reconsider.
BTW, you're wrong with 1.98: in my repository I find 1.57 and 1.5701.
On Thu Jan 17 15:25:28 2013, ANDK wrote: Show quoted text
> BTW, you're wrong with 1.98: in my repository I find 1.57 and 1.5701.
Indeed, sorry for the mixup. Still the conflict remains. Thanks for pondering the issue :-)
RT-Send-CC: bdfoy [...] cpan.org
[Copying brian] (I'd forgotten that I was the current "stable" releaser for App::Cpan -- though that was an "emergency" fix, really.) There are really three version of App::Cpan out there: * Andreas' repo -- fewest features, no explicit v5.6 requirement, but an implicit (syntax) v5.6 requirement * My repo -- more features, explicit v5.6 requirement * brian's repo -- even more features, slightly different code from mine, explicit v5.6 in App::Cpan, but explicit v5.8 in Makefile.PL I think the added features are good, and the big question is what to do about the required Perl version. I don't know why the v5.8 is in brian's Makefile.PL -- the syntax doesn't seem to require it, according to Perl::MinimumVersion. Side note, there are other files in Andreas' repo that have syntax-implied v5.6 requirements and even one (rare) v5.8 one (CPAN::Nox -- probably because of C<use base 'Exporter'>). I guess that isn't tested well on a stock v5.8 or we'd have found it earlier. I suspect that if the v5.8 in Makefile.PL is removed, and if Andreas can live with v5.6 as a minimum -- since we've inadvertently done that already in the CPAN distribution -- then the right thing to do is to remove App::Cpan from the CPAN distribution and have CPAN depend on the separate App-Cpan distribution. This means adding App-CPAN to core, which I want to check with Ricardo before doing, and it means that brian (or I) need to ship a stable version, since Ricardo doesn't want devs in a stable release of Perl. Andreas, brian, what do you think?
(sorry for extra brian CC -- I thought this was CPAN queue not App-Cpan queue) Extra note: updated Perl::MinimumVersion flags App::Cpan even in Andreas' repo as requiring v5.8. $ perlver --blame lib ------------------------------------------------------------ File : lib/App/Cpan.pm Line : 524 Char : 2 Rule : _open_scalar Version : 5.008 ------------------------------------------------------------ open my($fh), "<", \ $scalar; ------------------------------------------------------------
The dependency solution won't fly because we would end up with a circular dependency. At the address of Jérôme I'd say for downstream packagers it should not really matter how we package it. It only matters what the intent is. And the intent is that there is no competition between CPAN.pm and App::Cpan. The packaging is as it is for historical reasons. I think the original reason to bundle them was also to avoid the circular dependency.
My personal stance on backwards compatibility has always been that I want the whole toolchain to be conservative and be written in old school perl. I'm always p*ssed when I encounter an old perl and have to jump through hoops to get Module::Build installed. There is really no excuse to intentionally use the acclaimed modern perl for universally required tools. When it accidentally happens, OK, but it can easily be avoided.
There are several issues conflated with this report and I've thought about this while traveling this week. First, App::Cpan has three homes. A slightly older and stable version comes with CPAN.pm. A more older version comes with perl itself. My App-Cpan distribution races ahead of both of those so I can go off on my own without having to rely on releases of either of those two. A packager is just going to have to deal with that, and you already are because of the three homes issue. By installing perl, you get one version. Upgrading CPAN.pm might get you another. I don't know where your packager decides to put an upgraded CPAN.pm. However you solve that conflict should be the same way you treat App::Cpan. As such, I don't see anything for me to do here. If it's not resolvable by your packaging system, I suggest not including my App-Cpan distribution as a package. People can use the one that comes with CPAN.pm. People who desperately want to use the latest version can install mine by hand. The other issues don't impact this. We are out of sync, but not in any way that is pressing. Even if we solved those issues, this one remains. As such, I have to close this issue.