Rev 6592: (vila) Use LooseVersion from distutils to check Pyrex/Cython version in in file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/
Patch Queue Manager
pqm at pqm.ubuntu.com
Thu Apr 3 07:45:32 UTC 2014
At file:///srv/pqm.bazaar-vcs.org/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 6592 [merge]
revision-id: pqm at pqm.ubuntu.com-20140403074532-0sdwrky6ie4y20l4
parent: pqm at pqm.ubuntu.com-20140212182222-beouo25gaf1cny76
parent: v.ladeuil+lp at free.fr-20140402161532-1y6ukrw0agxk6r8l
committer: Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2014-04-03 07:45:32 +0000
message:
(vila) Use LooseVersion from distutils to check Pyrex/Cython version in
order to handle non-integers in the version string. (Andrew Starr-Bochicchio)
modified:
bzrlib/tests/test_setup.py test_setup.py-20051208073730-4a59a6368c4efa04
doc/en/release-notes/bzr-2.7.txt bzr2.7.txt-20130727124539-wnx897hy9l2h9f7x-1
setup.py setup.py-20050314065409-02f8a0a6e3f9bc70
=== modified file 'bzrlib/tests/test_setup.py'
--- a/bzrlib/tests/test_setup.py 2012-03-29 11:24:16 +0000
+++ b/bzrlib/tests/test_setup.py 2014-04-02 16:12:44 +0000
@@ -16,6 +16,7 @@
"""Test for setup.py build process"""
+from distutils import version
import os
import sys
import subprocess
@@ -79,3 +80,13 @@
self.log('stderr: %r', stderr)
self.assertEqual(0, p.returncode,
'invocation of %r failed' % args)
+
+
+class TestDistutilsVersion(tests.TestCase):
+
+ def test_version_with_string(self):
+ # We really care about two pyrex specific versions and our ability to
+ # detect them
+ lv = version.LooseVersion
+ self.assertTrue(lv("0.9.4.1") < lv('0.17.beta1'))
+ self.assertTrue(lv("0.9.6.3") < lv('0.10'))
=== modified file 'doc/en/release-notes/bzr-2.7.txt'
--- a/doc/en/release-notes/bzr-2.7.txt 2014-02-07 10:20:38 +0000
+++ b/doc/en/release-notes/bzr-2.7.txt 2014-04-02 16:15:32 +0000
@@ -36,6 +36,9 @@
ignore invalid references (i.e. using invalid option names) while
expanding option values. (Vincent Ladeuil, #1235099)
+* Fix pyrex version checking to be more robust.
+ (Andrew Starr-Bochicchio, #1030521 )
+
Documentation
*************
=== modified file 'setup.py'
--- a/setup.py 2012-02-29 12:35:23 +0000
+++ b/setup.py 2014-03-30 17:59:29 +0000
@@ -105,6 +105,7 @@
from distutils import log
from distutils.core import setup
+from distutils.version import LooseVersion
from distutils.command.install_scripts import install_scripts
from distutils.command.install_data import install_data
from distutils.command.build import build
@@ -202,7 +203,7 @@
from distutils.command.build_ext import build_ext
else:
have_pyrex = True
- pyrex_version_info = tuple(map(int, pyrex_version.rstrip("+").split('.')))
+ pyrex_version_info = LooseVersion(pyrex_version)
class build_ext_if_possible(build_ext):
@@ -299,7 +300,7 @@
libraries=['Ws2_32'])
add_pyrex_extension('bzrlib._walkdirs_win32')
else:
- if have_pyrex and pyrex_version_info[:3] == (0,9,4):
+ if have_pyrex and pyrex_version_info == LooseVersion("0.9.4.1"):
# Pyrex 0.9.4.1 fails to compile this extension correctly
# The code it generates re-uses a "local" pointer and
# calls "PY_DECREF" after having set it to NULL. (It mixes PY_XDECREF
@@ -317,7 +318,7 @@
add_pyrex_extension('bzrlib._chk_map_pyx')
ext_modules.append(Extension('bzrlib._patiencediff_c',
['bzrlib/_patiencediff_c.c']))
-if have_pyrex and pyrex_version_info < (0, 9, 6, 3):
+if have_pyrex and pyrex_version_info < LooseVersion("0.9.6.3"):
print("")
print('Your Pyrex/Cython version %s is too old to build the simple_set' % (
pyrex_version))
More information about the bazaar-commits
mailing list