So, I've started packaging up a bunch of python3 only packages for EPEL7 for packages that were already in RHEL7. I've started by packaging the latest version of the modules:
python34-py.noarch 1.4.30-2.el7 epel-testing python34-setuptools.noarch 19.2-3.el7 epel-testing
But these are much newer than the python2 versions:
python-py.noarch 1.4.27-1.el7 python-setuptools.noarch 0.9.8-4.el7
I'm afraid I was motivated by the possibilities of supporting newer python3 code, but Matthias RUnge makes the valid point that this may cause confusion and other problems[1].
What's the consensus here?
1 - https://bugzilla.redhat.com/show_bug.cgi?id=1294865#c3
On Tue, Jan 05, 2016 at 08:07:22PM -0700, Orion Poplawski wrote:
So, I've started packaging up a bunch of python3 only packages for EPEL7 for packages that were already in RHEL7. I've started by packaging the latest version of the modules:
python34-py.noarch 1.4.30-2.el7 epel-testing python34-setuptools.noarch 19.2-3.el7 epel-testing
But these are much newer than the python2 versions:
python-py.noarch 1.4.27-1.el7 python-setuptools.noarch 0.9.8-4.el7
I'm afraid I was motivated by the possibilities of supporting newer python3 code, but Matthias RUnge makes the valid point that this may cause confusion and other problems[1].
What's the consensus here?
Matthias Runge is correct that there will be a confusion factor. That will be especially pronounced for libraries which are used specifically for compatibility between python2 and python3 (python-six, python-backports-*, python-future if someone packages it eventually). This confusion is cut down slightly by having a different naming scheme (34 rather than just 3) for these packages than the equivalents in Fedora. However, as the naming difference is small, the amount that it helps with the confusion is also small. We would have been in a lot better place today if we had separate packaging of python2 and python3 packages in Fedora so that they were never in sync there but that's not something we can probably change now....
Despite the confusion, my feeling is that we want the newer versions. People who want to run python3 are willing to live more on the bleeding edge. What I've observed is that they want newer versions of libraries as well. Building packages that nobody wants to use because they are too old isn't that helpful to those who want to use the system packages for their development. For us packagers, getting applications to run on python3 frequently needs newer versions of supporting libraries due to bugfixes for python3 going into those libraries. Attempting to pin the python34 versions to the versions that ship with RHEL or in EPEL as the python2 version will quickly become a hindrance to us in those efforts as well.
If we deem the confusion factor to be too great we could resort to the Debian library route and name packages with the library version number as well: python34-setuptools19, for example. But that carries its own set of problems: 1) Although we have a way (via setuptools/pkg_resources) to make both packaging of alternate modules and usage of the modules work it isn't as easy as working with modules packaged in the normal way. 2) If it's standard for us to package python34 modules as compat packages, our support burden will increase as people create packages for multiple versions of the upstream library. We (EPEL) need to figure out some policies on retiring old packages when they're no longer maintained. 3) If we're retiring unmaintained older versions of packages during the lifetime of a RHEL release then we probably need to figure out if our present method for determining the default python module (what version you get if you just do "import setuptools") is the best. The current way is basically, whichever version entered EPEL first is the default, all others are forward compat packages.
-Toshio
"TK" == Toshio Kuratomi a.badger@gmail.com writes:
TK> We would have been in a lot better place today if we had separate TK> packaging of python2 and python3 packages in Fedora so that they TK> were never in sync there but that's not something we can probably TK> change now....
Nothing has ever prevented a packager from keeping separate packages for different python versions, but people really want the "one spec file for everything" approach for whatever reason. And, to be fair, for many modules there really is no reason to separate the py2 and py3 versions since the code isn't any different.
- J<
On 6 January 2016 at 13:48, Toshio Kuratomi a.badger@gmail.com wrote:
Despite the confusion, my feeling is that we want the newer versions. People who want to run python3 are willing to live more on the bleeding edge. What I've observed is that they want newer versions of libraries as well. Building packages that nobody wants to use because they are too old isn't that helpful to those who want to use the system packages for their development. For us packagers, getting applications to run on python3 frequently needs newer versions of supporting libraries due to bugfixes for python3 going into those libraries. Attempting to pin the python34 versions to the versions that ship with RHEL or in EPEL as the python2 version will quickly become a hindrance to us in those efforts as well.
+1 from me for adopting newer package versions as baseline in the python3X stacks.
As Toshio notes, many of the components currently shipped don't support Python 3 yet, so they're going to *have* to be rebased before they can be part of a Python 3 stack: http://fedora.portingdb.xyz/
If we deem the confusion factor to be too great we could resort to the Debian library route and name packages with the library version number as well: python34-setuptools19, for example. But that carries its own set of problems: 1) Although we have a way (via setuptools/pkg_resources) to make both packaging of alternate modules and usage of the modules work it isn't as easy as working with modules packaged in the normal way. 2) If it's standard for us to package python34 modules as compat packages, our support burden will increase as people create packages for multiple versions of the upstream library. We (EPEL) need to figure out some policies on retiring old packages when they're no longer maintained. 3) If we're retiring unmaintained older versions of packages during the lifetime of a RHEL release then we probably need to figure out if our present method for determining the default python module (what version you get if you just do "import setuptools") is the best. The current way is basically, whichever version entered EPEL first is the default, all others are forward compat packages.
It's also worth keeping in mind that the parallel install model adopting for the python3X releases in EPEL means there's a chance to rebase the "default" version of other packages each time "X" is incremented. While that won't be a big difference for the python34 and python35 stacks, there will presumably be more significant version bumps once python36 rolls around.
Regards, Nick.
-----Original Message----- From: Nick Coghlan [mailto:ncoghlan@gmail.com] Sent: Wednesday, January 06, 2016 05:42 To: Fedora Python SIG Cc: EPEL Development List Subject: Re: [EPEL-devel] Which python3 versions to package for EPEL7?
On 6 January 2016 at 13:48, Toshio Kuratomi a.badger@gmail.com wrote:
Despite the confusion, my feeling is that we want the newer versions. People who want to run python3 are willing to live more on the bleeding edge. What I've observed is that they want newer versions of libraries
as
well. Building packages that nobody wants to use because they are too
old
isn't that helpful to those who want to use the system packages for
their
development. For us packagers, getting applications to run on python3 frequently needs newer versions of supporting libraries due to bugfixes
for
python3 going into those libraries. Attempting to pin the python34
versions
to the versions that ship with RHEL or in EPEL as the python2 version
will
quickly become a hindrance to us in those efforts as well.
+1 from me for adopting newer package versions as baseline in the python3X stacks.
Ditto, though none of my packaging is public :( so I only get +0.1 at most.
And while I'm here, thanks to all on this effort!!! I was an early adopter of Py3 and having recently started using EPEL I was a little sad at the dearth of Py3 there. It's so hard to wander off the Fedora path, everything seems so ... umm long ago.
-- John Florian
python-devel@lists.fedoraproject.org