[arch-general] Package versioning
When packaging Haskell packages there's a bit of a twist to the version numbers that I'm looking for a solution to. Upstream versions have two numbers, a version number (set by the upstream developer) and an "xrev" that's bumped when minor changes are made to packages on Hackage (Haskell's CPAN/PyPi/RubyGems/...). Then the packaging has a release. So far I've been using versions of the form <upstream version>_<xrev>-<pkgrel> But that isn't good enough, `pacman` has for instance reported that's ~~~ warning: haskell-vector-algorithms: local (0.7_1-2) is newer than haskell-core (0.7.0.1_0-1) warning: haskell-monadrandom: local (0.4_2-1) is newer than haskell-core (0.4.1_0-1) ~~~ which isn't correct since 0.7 < 0.7.0.1 0.4 < 0.4.1 It seems `pacman` treats underbar like a period, which isn't at all what I was hoping for. I'm hoping for some help to find something better. Any suggestions on how I should do this properly? /M -- Magnus Therning OpenPGP: 0x927912051716CE39 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus An approximate answer to the right problem is worth a good deal more than an exact answer to an approximate problem. — John Tukey
On Thu, 01 Sep 2016 23:57:07 +0200 Magnus Therning <magnus@therning.org> wrote:
When packaging Haskell packages there's a bit of a twist to the version numbers that I'm looking for a solution to.
Upstream versions have two numbers, a version number (set by the upstream developer) and an "xrev" that's bumped when minor changes are made to packages on Hackage (Haskell's CPAN/PyPi/RubyGems/...).
Then the packaging has a release.
So far I've been using versions of the form
<upstream version>_<xrev>-<pkgrel>
But that isn't good enough, `pacman` has for instance reported that's
~~~ warning: haskell-vector-algorithms: local (0.7_1-2) is newer than haskell-core (0.7.0.1_0-1) warning: haskell-monadrandom: local (0.4_2-1) is newer than haskell-core (0.4.1_0-1) ~~~
which isn't correct since
0.7 < 0.7.0.1 0.4 < 0.4.1
It seems `pacman` treats underbar like a period, which isn't at all what I was hoping for.
I'm hoping for some help to find something better. Any suggestions on how I should do this properly?
/M
Sounds like <version>.x<xrev> would make more sense.
On 09/01/2016 06:04 PM, Doug Newgard wrote:
which isn't correct since
0.7 < 0.7.0.1 0.4 < 0.4.1
It seems `pacman` treats underbar like a period, which isn't at all what I was hoping for.
Sounds like <version>.x<xrev> would make more sense.
And similarly, *-git packages usually use: <version>.r<gitrev>.g<commit>-<pkgrel> -- Eli Schwartz
Doug Newgard <scimmia@archlinux.info> writes:
On Thu, 01 Sep 2016 23:57:07 +0200 Magnus Therning <magnus@therning.org> wrote:
When packaging Haskell packages there's a bit of a twist to the version numbers that I'm looking for a solution to.
Upstream versions have two numbers, a version number (set by the upstream developer) and an "xrev" that's bumped when minor changes are made to packages on Hackage (Haskell's CPAN/PyPi/RubyGems/...).
Then the packaging has a release.
So far I've been using versions of the form
<upstream version>_<xrev>-<pkgrel>
But that isn't good enough, `pacman` has for instance reported that's
~~~ warning: haskell-vector-algorithms: local (0.7_1-2) is newer than haskell-core (0.7.0.1_0-1) warning: haskell-monadrandom: local (0.4_2-1) is newer than haskell-core (0.4.1_0-1) ~~~
which isn't correct since
0.7 < 0.7.0.1 0.4 < 0.4.1
It seems `pacman` treats underbar like a period, which isn't at all what I was hoping for.
I'm hoping for some help to find something better. Any suggestions on how I should do this properly?
/M
Sounds like <version>.x<xrev> would make more sense.
Yes, it looks like it would work better. Is there some description of what the presence of a letter actually means? /M -- Magnus Therning OpenPGP: 0x927912051716CE39 email: magnus@therning.org jabber: magnus@therning.org twitter: magthe http://therning.org/magnus If our ideas of intellectual property are wrong, we must change them, improve them and return them to their original purpose. When intellectual property rules diminish the supply of new ideas, they steal from all of us. — Andrew Brown, November 19, 2005, The Guardian
On 09/02/2016 05:03 AM, Magnus Therning wrote:
Yes, it looks like it would work better. Is there some description of what the presence of a letter actually means?
IIUC, it separates two individual components of the versioning, everything before it is considered on its own and the component with the letter is only used to compare versions when the first components are equal. -- Eli Schwartz
On Fri, 02 Sep 2016 11:03:50 +0200 Magnus Therning <magnus@therning.org> wrote:
Doug Newgard <scimmia@archlinux.info> writes:
Sounds like <version>.x<xrev> would make more sense.
Yes, it looks like it would work better. Is there some description of what the presence of a letter actually means?
/M
Simply put, letters are less than numbers. This means that haskell-vector-algorithms, for example, would go from 0.7.x<something> to 0.7.0<something>. That will be seen as an upgrade.
Am 02.09.2016 um 11:03 schrieb Magnus Therning:
Yes, it looks like it would work better. Is there some description of what the presence of a letter actually means?
/M
The manpage for vercmp describes it with some examples: Version comparison operates as follows: Alphanumeric: 1.0a < 1.0b < 1.0beta < 1.0p < 1.0pre < 1.0rc < 1.0 < 1.0.a < 1.0.1 Numeric: 1 < 1.0 < 1.1 < 1.1.1 < 1.2 < 2.0 < 3.0.0 Additionally, version strings can have an epoch value defined that will overrule any version comparison, unless the epoch values are equal. This is specified in an epoch:version-rel format. For example, 2:1.0-1 is always greater than 1:3.6-1. Keep in mind that the pkgrel is only compared if it is available on both versions given to this tool. For example, comparing 1.5-1 and 1.5 will yield 0; comparing 1.5-1 and 1.5-2 will yield < 0 as expected. This is mainly for supporting versioned dependencies that do not include the pkgrel. -- ProgAndy
A 2016-09-01T23:57:07 +0200, Magnus Therning escreveu:
When packaging Haskell packages there's a bit of a twist to the version numbers that I'm looking for a solution to.
Upstream versions have two numbers, a version number (set by the upstream developer) and an "xrev" that's bumped when minor changes are made to packages on Hackage (Haskell's CPAN/PyPi/RubyGems/...).
Then the packaging has a release.
So far I've been using versions of the form
<upstream version>_<xrev>-<pkgrel>
But that isn't good enough, `pacman` has for instance reported that's
~~~ warning: haskell-vector-algorithms: local (0.7_1-2) is newer than haskell-core (0.7.0.1_0-1) warning: haskell-monadrandom: local (0.4_2-1) is newer than haskell-core (0.4.1_0-1) ~~~
which isn't correct since
0.7 < 0.7.0.1 0.4 < 0.4.1
It seems `pacman` treats underbar like a period, which isn't at all what I was hoping for.
I'm hoping for some help to find something better. Any suggestions on how I should do this properly?
What do you think about making that xrev part of the pkgrel? Instead of 0.7_1-2 you'd have 0.7-1.2 < 0.7.0.1-0.1. And even if haskell-core continues using that underscore, 0.7-1.2 < 0.7.0.1_0-1. It's not very common to have a decimal Pkgrel, and I'm not sure if it is good practice, but I've used it, in fact for Haskell packages in particular. Regards, João Miguel
On Thu, 1 Sep 2016 23:39:59 +0100 João Miguel via arch-general <arch-general@archlinux.org> wrote:
A 2016-09-01T23:57:07 +0200, Magnus Therning escreveu:
When packaging Haskell packages there's a bit of a twist to the version numbers that I'm looking for a solution to.
Upstream versions have two numbers, a version number (set by the upstream developer) and an "xrev" that's bumped when minor changes are made to packages on Hackage (Haskell's CPAN/PyPi/RubyGems/...).
Then the packaging has a release.
So far I've been using versions of the form
<upstream version>_<xrev>-<pkgrel>
But that isn't good enough, `pacman` has for instance reported that's
~~~ warning: haskell-vector-algorithms: local (0.7_1-2) is newer than haskell-core (0.7.0.1_0-1) warning: haskell-monadrandom: local (0.4_2-1) is newer than haskell-core (0.4.1_0-1) ~~~
which isn't correct since
0.7 < 0.7.0.1 0.4 < 0.4.1
It seems `pacman` treats underbar like a period, which isn't at all what I was hoping for.
I'm hoping for some help to find something better. Any suggestions on how I should do this properly?
What do you think about making that xrev part of the pkgrel? Instead of 0.7_1-2 you'd have 0.7-1.2 < 0.7.0.1-0.1. And even if haskell-core continues using that underscore, 0.7-1.2 < 0.7.0.1_0-1.
It's not very common to have a decimal Pkgrel, and I'm not sure if it is good practice, but I've used it, in fact for Haskell packages in particular.
Regards, João Miguel
pkgrel is for Arch specific changes, changes from upstream should be part of the pkgver.
participants (5)
-
Doug Newgard
-
Eli Schwartz
-
João Miguel
-
Magnus Therning
-
ProgAndy