coq / opam

Archive for all Coq related OPAM packages organized in various repositories
https://coq.inria.fr/opam/www/
GNU Lesser General Public License v2.1
127 stars 166 forks source link

8.5~beta2 is smaller than 8.5 #8

Closed clarus closed 9 years ago

clarus commented 9 years ago

According to the Debian / OPAM ordering, 8.5~beta2 is a smaller version than 8.5:

dpkg --compare-versions 8.5~beta2 lt 8.5; echo $?

returns 0.

The problem: how do we state that a package is only compatible with the 8.4 branch? The solution used so far is to add the dependency:

"coq" {>= "8.4.5" & < "8.5"}

but this includes 8.5~beta2 in the range. This means that most stable packages are currently broken. This bug was not detected by the bench because it only tests the 8.5.dev version.

A possible solution: rename the beta as 8.5.0~beta2.

silene commented 9 years ago

Renaming the beta to 8.5.0~beta2 is in line with the decision of systematically using the triple-digit versioning system (even for pl release), so I am in favor.

mattam82 commented 9 years ago

Same here, it sounds like the easiest solution. I think I fixed some package to use < "8.5~beta2" precisely because of that. Couldn't we have >= "8.4.5" && = "8.4.*" constraints though, or something approaching? Just an idea.

clarus commented 9 years ago

There is precisely a feature wish for your syntax.

herbelin commented 9 years ago

Hi,

As already discussed orally with Guillaume C. a month or so ago, I'm not in favor of changing the established naming scheme for versions 8.x. My reason is not technical but "moral". Adopting the plX scheme (which was already in use for some softwares) was done intensionally and I consider it part of the identity of the 8.x series, which maybe I'm one of the rare to be attached to, but which I however care.

I know Pierre B. had to cheat with this naming scheme for the MacOS package but it was for internal use only, afaiu.

Hugo

gares commented 9 years ago

I think you can safely write

"coq" {>= "8.4.5" & < "8.5~beta1"}

since there will be no beta0.. we are increasing the beta number, not lowering it, and the smallest beta that ever existed is beta1.

As an historical curiosity, which software does/did use the "plX" naming, Hugo?

clarus commented 9 years ago

The reason to use a . instead of a pl is to get a clear and uniform naming scheme for the order relation about version names. This is only for OPAM, the Coq's Git continues to have pl tags, ...

Yes, it would work to write < "8.5~beta1" too, but I feel it is simpler to only modify the Coq package instead of other packages.

silene commented 9 years ago

I have now changed all the constraints to < "8.5~beta1". (Possibly, some packages were compatible with the beta versions and can no longer be installed.)

@gares: "pl" is used a lot in the PHP world; I don't remember seeing it anywhere else (except for Coq obviously).

herbelin commented 9 years ago

As an historical curiosity, which software does/did use the "plX" naming, Hugo?

I don't remember from which software we got inspiration. Browsing the web shows that at some time, e.g. xboard and PDCC had naming scheme X.Y-plN, ISC dhcp naming scheme X.YplN, phpmyadmin or Gallery naming scheme X.Y.Z-plN. One finds as well a couple of X.Y.Z PLN, X.YY.PLN, X.Y PlN, X.Y.plN, etc. At the current time, the pl convention seems very uncommon and, for instance, dhcp has apparently moved to X.Y.Z-PN (with P suspectingly meaning patch?). PDCC still follows a X.Y-plN scheme.

Hugo