[opensuse-packaging] Best strategy for dealing with Python version numbers
Hi! RPM/DPKG uses a different version ordering than Python. In particular, Python has a different logic for pre-releases. While DPKG/RPM uses the tilde for lowering version numbers meaning that RC versions have to be constructed as something like "1.0.0~rc2", Python uses "1.0.0rc2". This means, that for Python, "1.0.0rc2" is a lower version than "1.0.0" while for DPKG/RPM, "1.0.0rc2" is actually higher than "1.0.0". Since lots of Python packages with the rc-suffix exist, I assume there is a consensus in openSUSE on how to map Python RC versions to RPM RC versions, isn't there? What's the suggested strategy? Are there any example packages? Adrian
[1] https://www.python.org/dev/peps/pep-0440/#pre-releases -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 02/10/2018 01:39, John Paul Adrian Glaubitz wrote:
Hi!
RPM/DPKG uses a different version ordering than Python. In particular, Python has a different logic for pre-releases. While DPKG/RPM uses the tilde for lowering version numbers meaning that RC versions have to be constructed as something like "1.0.0~rc2", Python uses "1.0.0rc2".
This means, that for Python, "1.0.0rc2" is a lower version than "1.0.0" while for DPKG/RPM, "1.0.0rc2" is actually higher than "1.0.0".
Since lots of Python packages with the rc-suffix exist, I assume there is a consensus in openSUSE on how to map Python RC versions to RPM RC versions, isn't there?
What's the suggested strategy? Are there any example packages?
Adrian
My alpha / beta / rc packages all use ~ its a bit of a pain because you need to pass -n to the setup macro's etc, but otherwise users wont be able to upgrade from 1.0.0rc2 too 1.0.0 as rpm would treat it as a downgrade. cheers -- Simon Lees (Simotek) http://simotek.net Emergency Update Team keybase.io/simotek SUSE Linux Adelaide Australia, UTC+10:30 GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B
On Tuesday 2018-10-09 06:25, Simon Lees wrote:
On 02/10/2018 01:39, John Paul Adrian Glaubitz wrote:
This means, that for Python, "1.0.0rc2" is a lower version than "1.0.0" while for DPKG/RPM, "1.0.0rc2" is actually higher than "1.0.0".
Which was a sensible decision at the time, because of openssl versions like 0.9.8 and 0.9.8i, and Python being practically non-existent. The real problem though, is ... people. For millenia, they needlessy have been complicating the number axis of a particular counting system by adding downgrade specifiers such as "quarter to four", "two dozen eggs minus one", and ultimately "1.0 rc 2", when they ought to have known better and use 15:45, 23, and 0.99orsomething.2.
Since lots of Python packages with the rc-suffix exist, I assume there is a consensus in openSUSE on how to map Python RC versions to RPM RC versions, isn't there?
Debian introduced ~, so surely they mandate its use, do they not? openSUSE copied ~, so copied the mandate. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Hi Simon! On 10/9/18 6:25 AM, Simon Lees wrote:
My alpha / beta / rc packages all use ~ its a bit of a pain because you need to pass -n to the setup macro's etc, but otherwise users wont be able to upgrade from 1.0.0rc2 too 1.0.0 as rpm would treat it as a downgrade.
Right, that was my concern. Can you link one of your RC version packages so I can have a look? Thanks, Adrian -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Hi Adrian, On 01.10.18 18:09, John Paul Adrian Glaubitz wrote:
Hi!
RPM/DPKG uses a different version ordering than Python. In particular, Python has a different logic for pre-releases. While DPKG/RPM uses the tilde for lowering version numbers meaning that RC versions have to be constructed as something like "1.0.0~rc2", Python uses "1.0.0rc2".
This means, that for Python, "1.0.0rc2" is a lower version than "1.0.0" while for DPKG/RPM, "1.0.0rc2" is actually higher than "1.0.0".
Since lots of Python packages with the rc-suffix exist, I assume there is a consensus in openSUSE on how to map Python RC versions to RPM RC versions, isn't there?
The set-version OBS source service has a schema for this convertion. See https://github.com/openSUSE/obs-service-set_version/blob/master/set_version#... . The cloud team uses that service to package the latest git upstream versions from OpenStack. Best, Tom -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 26/11/2018 22:07, Thomas Bechtold wrote:
Hi Adrian,
On 01.10.18 18:09, John Paul Adrian Glaubitz wrote:
Hi!
RPM/DPKG uses a different version ordering than Python. In particular, Python has a different logic for pre-releases. While DPKG/RPM uses the tilde for lowering version numbers meaning that RC versions have to be constructed as something like "1.0.0~rc2", Python uses "1.0.0rc2".
This means, that for Python, "1.0.0rc2" is a lower version than "1.0.0" while for DPKG/RPM, "1.0.0rc2" is actually higher than "1.0.0".
Since lots of Python packages with the rc-suffix exist, I assume there is a consensus in openSUSE on how to map Python RC versions to RPM RC versions, isn't there?
The set-version OBS source service has a schema for this convertion. See https://github.com/openSUSE/obs-service-set_version/blob/master/set_version#... . The cloud team uses that service to package the latest git upstream versions from OpenStack.
Best,
Tom I've had that service not work effectively when upstream tags alpha's and beta's that rpm ends up considering out of order. The only solution i've found that works with some upstreams is to set and update the Major and Minor versions manually and use whatever the equivalent for "git log --oneline | wc -l" to give a constantly rising version number.
-- Simon Lees (Simotek) http://simotek.net Emergency Update Team keybase.io/simotek SUSE Linux Adelaide Australia, UTC+10:30 GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (4)
-
Jan Engelhardt
-
John Paul Adrian Glaubitz
-
Simon Lees
-
Thomas Bechtold