On 11/14/2014 12:05 AM, Matej Stuchlik wrote:
commit 6875a63831616c6c8e722632e24faaa1a09cc831 Author: Matej Stuchlik mstuchli@redhat.com Date: Thu Nov 13 15:04:28 2014 +0100
Add python2_version_nodots macro
macros.python2 | 1 + python.spec | 5 ++++- 2 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/macros.python2 b/macros.python2 index 982b51f..d090296 100644 --- a/macros.python2 +++ b/macros.python2 @@ -2,3 +2,4 @@ %python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") %python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))") %python2_version %(%{__python2} -c "import sys; sys.stdout.write(sys.version[:3])") +%python2_version_nodots %(%{__python2} -c "import sys; sys.stdout.write(sys.version[:3].replace('.',''))")
I just saw this commit go by on python-owners.
These macros are going to fail when Python 2.7.10 is released next year. Anything currently depending on the new "no dots" version in particular may also fail when it moves from 3 digits to 4 (since 2710 sorts lexically lower than 279).
The version with dots can be fixed by using "'.'.join(sys.version_info[:3])" instead of ignoring the explicit "Do not extract version information out of it" guidance for sys.version.
The version without dots can be addressed by including the leading zero: "{0.major}{0.minor}{0.micro:02d}".format(sys.version_info)
Cheers, Nick.
I think this is more of a problem with unclear macro names. As we currently use them (e.g. [0]) and as they were intended [1], both python2_version and python2_version_nodots are supposed to contain major and minor version numbers only, which they do and as far as I can see will continue to do so even if micro > 9.
It's true that they would stop working if the minor version ever got to > 9 however, so I'll change the definition as you advise, using version_info, just without the leading zero. :)
Thanks for noticing this! Matt
[0] from python-click.spec: PYTHONPATH=$(pwd) py.test-%{python2_version} tests --tb=long --verbose
[1] https://bugzilla.redhat.com/show_bug.cgi?id=731800
----- Original Message -----
From: "Nick Coghlan" ncoghlan@redhat.com To: "Fedora Python SIG" python-devel@lists.fedoraproject.org Sent: Monday, November 17, 2014 5:17:48 AM Subject: Re: [python] Add python2_version_nodots macro
On 11/14/2014 12:05 AM, Matej Stuchlik wrote:
commit 6875a63831616c6c8e722632e24faaa1a09cc831 Author: Matej Stuchlik mstuchli@redhat.com Date: Thu Nov 13 15:04:28 2014 +0100
Add python2_version_nodots macro
macros.python2 | 1 + python.spec | 5 ++++- 2 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/macros.python2 b/macros.python2 index 982b51f..d090296 100644 --- a/macros.python2 +++ b/macros.python2 @@ -2,3 +2,4 @@ %python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())") %python2_sitearch %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))") %python2_version %(%{__python2} -c "import sys; sys.stdout.write(sys.version[:3])") +%python2_version_nodots %(%{__python2} -c "import sys; sys.stdout.write(sys.version[:3].replace('.',''))")
I just saw this commit go by on python-owners.
These macros are going to fail when Python 2.7.10 is released next year. Anything currently depending on the new "no dots" version in particular may also fail when it moves from 3 digits to 4 (since 2710 sorts lexically lower than 279).
The version with dots can be fixed by using "'.'.join(sys.version_info[:3])" instead of ignoring the explicit "Do not extract version information out of it" guidance for sys.version.
The version without dots can be addressed by including the leading zero: "{0.major}{0.minor}{0.micro:02d}".format(sys.version_info)
Cheers, Nick.
-- Nick Coghlan Red Hat Hosted & Shared Services Software Engineering & Development, Brisbane
HSS Provisioning Architect _______________________________________________ python-devel mailing list python-devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/python-devel
On 11/18/2014 08:24 PM, Matej Stuchlik wrote:
I think this is more of a problem with unclear macro names. As we currently use them (e.g. [0]) and as they were intended [1], both python2_version and python2_version_nodots are supposed to contain major and minor version numbers only, which they do and as far as I can see will continue to do so even if micro > 9.
Oops, I failed to account for the fact that the "." was one of the 3 characters being read :)
It's true that they would stop working if the minor version ever got to > 9 however,
My current assumption is we'll go 3.9 -> 4.0, even though there won't be a 3.0 style compatibility break for 4.0. Recommended practices for new Python development will have changed enough by that point that the version bump will appropriately recognise the 15 years or so since the original 3.0 release.
so I'll change the definition as you advise, using version_info, just without the leading zero. :)
Sounds good.
Cheers, Nick.
python-devel@lists.fedoraproject.org