Re: clarification: python2 modules allowed to go into python2-foo?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 18, 2012 at 11:04:02AM +0200, Thomas Spura wrote:
> Hi,
> 
> currently we are discussing, if it makes more sense to provide a
> python-ipython package or a python2-ipython package, because we are
> restructuring the package structure of ipython anyway right now [1].
> The current python guidelines [2] don't mention, if new python2
> providing modules still must/may/should be in a python-foo package, or
> if it would be better to put them directly into an python2-foo
> package.
> 

See:

http://fedoraproject.org/wiki/Packaging:NamingGuidelines#Addon_Packages_.28python_modules.29

and also the first sentence of the python3 module naming section.

"An rpm with a python prefix or suffix means a python2 rpm so we need
a different prefix to denote python3 packages."


> Reasoning for python2-foo:
> When /usr/bin/python will provide python3,

It's unclear to me that this is in the cards.  It's certainly not going to
happen in the next year.  I'd bet that it won't even happen in the next two
years.  There's several pieces that can be used to help with that decision:

Case 1)
* Most tools switch over to using python3 by default
* We get to the point where python3 is installed on all standard Fedora installs
* We get to the point where python(2) is not installed on standard installs.

Case 2)
* PEP 394 http://www.python.org/dev/peps/pep-0394/ is updated to recommend
  that /usr/bin/python points to /usr/bin/python3
* Fedora follows suit
* Some of the criteria in Case 1 has also been satisfied

Case 3)
* We reach 2015 and upstream python announces that there will be no further
  releases of python2
* We *have not* switched python2 code to a different interpreter that
  targets python2

> this means, that the normal
> python-foo MUST be build with python3 as python needs to refer to the
> current default /usr/bin/python --version.

This is not a given.  Right now, the python- prefix is defined as applying
to python2.  Full stop.  I think if we were to switch to /usr/bin/python ==
python3 for Fedora 18, then we'd continue to define python-foo as being for
python2.  The reason is that python3 has not become "python" in people's
minds yet.  People will still yum install python (rather than the python2
virtual provide) and continue to look for python-foo packages.

> Reasoning for python-foo:
> The majority of modules providing python modules have a python-foo
> structure. So when switching to /usr/bin/python = python3, it would
> also make sense to ONLY do that with the main python package, but all
> python-foo package still provide python2 modules and when you want to
> have python3 modules, you MUST require python3-foo. The drawback is,
> that you cannot rely on "The package which is named python-foo will be
> build with the default python interpreter."
> 
That is not a given now.  I don't think I really like the idea of it in the
future either.  If we're going to rename python-foo to python2-foo at some
point in the future, I'd rather we leave python3-foo as python3-foo.  Do not
create python-foo Virtual Provides or packages as that just leads to user
confusion at any transition points.

> I'd vote for python2-foo for new packages and renaming the old
> python-foo packages unless they build for $current supported python
> versions (atm: python2 AND python3) at the same time (and python3-foo
> for python3 modules etc).

Splitting the package names so that some are python2-foo and some are
python-foo is a bad idea.

* User confusion -- I want to report a bug against "import foo".  Do I find
  that in bugzillla as python2-foo or python-foo?
* Any package which ships modules needs to install into different
  directories for python2 vs python3 so it needs to have two
  separate subpackages (whether or not the actual code would run on either)
* Any package which does not ship modules does not need python in the name:
  applications like gramps are just "gramps", not python-gramps.

So if we decide to rename the python-* modules to python2-* we should have
a flag day or series of flag days.  For instance,

* Fedora 27: All python-* modules are renamed to python2-* with Virtual
  Provides of python-*
* Fedora 35: All python2-* modules drop their python-* Virtual Provides

>  That pythonX-foo package, where X is the
> first digit of the default python interpreter MUST provide python-foo.
> This will allow us to be ready for
> python3,python4,python5,python4711...
> 
As said above, I'm not for tying an actual name or a virtual provide to the
default python interpreter.  I'm also not generally for Provides: python-foo
meaning the value of /usr/bin/python OR the value of yum install python OR
the value of what python version gets installed exclusively if you do
a standard Fedora install.

I would be for renaming all python-* to python2-* at some appropriate time
in the future as a flag day with Virtual Provides of python-foo for
backwards compat at that time.  We could have a second flag day at some
point after that to remore (and not replace) the Virtual Provides.

> What is your opinion towards this?
> 
> Greetings,
>      Tom
> 
> P.S.: For the case of ipython, we can still leave it at ipython
> without any pythonX- in front of it to avoid this, but it would be
> great to have a general guidelines for this and I'm happy to help
> renaming old packages/move forward to python4711.
> 
Just a note (for others who might not be as familiar with where the lines
are drawn): I think the deepest we'd want to go in Fedora is one major
number.  python2, python3, python4.  This is because we port modules forward
to the most recent python version (what we ship in the python/python3
package) within that category.  If we had to ship a python3.3-3.3.1 package
for backwards compat for some singular modules, I think we'd want to
consider those as a special case and treat them along the lines of the EPEL
python27 packages (rather than name all of our package python27-foo,
python33-foo).  With current upstream versioning standards, we'd never ship
python271-foo packages.  The micro level versions are supposed to remain
compatible within the series.

-Toshio

Attachment: pgpYoUGiUW_s9.pgp
Description: PGP signature

--
packaging mailing list
packaging@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/packaging

[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite Forum]     [KDE Users]

  Powered by Linux