Re: Conflicts in the meta spec
[email protected] (Jens Rehsack) Thu, 18 Apr 2013 10:26:23 +0200
| Newsgroups | perl.qa |
|---|---|
| Organization | Comprehensive Perl Archive Network |
| Message-ID | <[email protected]> |
On 17.04.13 20:43, Michael G. Schwern wrote: > On 4/15/13 7:06 PM, Jens Rehsack wrote: >> On 15.04.13 18:56, Michael G. Schwern wrote: >>> TL;DR version... >>> IMO we only need to clarify what "conflicts" means and what actions CPAN >>> tools should take. >>> >>> We talked in the Consensus Dome about the need for and meaning of the >>> "conflicts" relationship in the CPAN::Meta::Spec. >>> https://metacpan.org/module/CPAN::Meta::Spec#Prereq-Spec >>> >>> IIRC the conclusion was... >>> * We need it. >>> * It's not clear what it means. (I don't recall what the confusion was) >> >> The difference between "A conflicts with B op VER" and "A breaks B op >> VER" and "A superflous B". > > IIRC those meant... > > "A conflict B" is A and B cannot be on the machine at the same time. > For example, they're both http servers and need the same port. I can't > think of an example where CPAN has needed that for modules. Or - maybe - an ancient distribution (META spec is per dist) is mis-using a module name, and my shiny-new-dist uses the same. This might be a candidate for superfluous, but doesn't need to... > "A breaks B" is if A is installed B will break. This is what we need on > CPAN for things like Test::Builder breaks Test::Class < 0.39. Yes. > "A superfluous B" is if A is installed B is no longer necessary. > Usually called "obsoletes". This is mostly useful if you rename a > package, though I'd rather that was made more explicit in the meta data. > Most of the use cases I can think of are better handled by the > installed modules database and CPAN distribution meta data. Looking to XML-LibXML, that extra knowlegde of consequences of splitting and remerging dists could had helped to avoid a lot of confusion around XML::LibXML::XPathContext. >>> * Let's see what Debian does. >> >> Or MacPorts, HomeBrew or pkgsrc :P > > Whatever packaging system I may actually use, I go to Debian first > because they extensively document this sort of thing, both the meanings > and the rationales. I don't know how Debian docs are - I see only the results ;) > Let's have a look at what the others do... I suggest we're asking some of the developers there ... > pkgsrc has CONFLICTS=Some-Name-[0-9]* essentially a regex. > http://www.netbsd.org/docs/pkgsrc/fixes.html#conflicts > All they say is the "package may conflict with other packages a user > might already have installed on his system" We also allow "patterns" like "scrnsaverproto<1.2.0". That's why I recommended to look what "the others do" - not what is somewhere described ;) ... Cheers, Jens