----- Original Message ----- > On Thu, Aug 06, 2015 at 10:03:00AM -0400, Robert Kuska wrote: > > ----- Original Message ----- > > > From: "Jason L Tibbitts III" <ti...@math.uh.edu> > > > To: devel-annou...@lists.fedoraproject.org > > > Sent: Tuesday, August 4, 2015 11:34:06 PM > > > Subject: [Guidelines change] Changes to the packaging guidelines > > > > > > Here are the recent changes to the packaging guidelines. > > > > > > ----- > > > > > > The big change is that the Python guidelines have been extensively > > > reorganized and partially rewritten, and new macros are available which > > > simplify packaging by removing some of the boilerplate which was > > > previously required. > > > > > > The main guideline page has been slimmed down to show the more basic > > > info and a clean and simple spec using the new macros which is free of > > > multiline conditionals. > > > > > > boilerplate previously associated with python packages. Some of the > > > more esoteric information has been moved to an appendix page to keep the > > > main page of reasonable size. > > > > > > The new guidelines are currently only functional on Fedora 22 and newer > > > releases, but are currently in updates-testing for Fedora 21 and EPEL7. > > > The older guidelines are preserved in a separate page and we'll try to > > > keep them updated with new requirements. > > > > > > The new guidelines page: > > > * https://fedoraproject.org/wiki/Packaging:Python > > > > Sorry for late reply. > > > > From the Python packaging: > > > > # Must do the python2 install first because the scripts in /usr/bin are > > # overwritten with every setup.py install, and in general we want the > > # python3 version to be the default. > > %py2_install > > %py3_install > > > > I don't think that binaries of python module should be already switched to > > the state that non versioned binary is python3 binary. > This problem is covered extensively in the guidelines: > > If the executables provide the same functionality independent of > whether they are run on top of Python 2 or Python 3, then only one > version of the executable should be packaged. On releases up to and > including F21, this was the python 2 implementation. Python3 should > be used in F22 and later if supported by upstream. [...] > Transitioning from python2 to python3 is left to individual package > maintainers[...] > > The switch as "default" was accepted as > https://fedoraproject.org/wiki/Changes/Python_3_as_Default. > > > While /usr/bin/python points to /usr/bin/python2 and python-foo provides > > python2 version > > of the foo package I would expect binary foo to run on python2. > Fedora is finally switching to Python 3. E.g. /usr/bin/dnf now uses Python 3, > and a lot of other things also.
I'm not sure I understand what you're saying 100 %, so let's make this clear: 1. If the package ships a binary that does the same regardless of Python version used to invoke it, then /usr/bin/foo should be invoked with Python 3. This usually applies to "applications", like dnf. 2. If the package ships a binary that does different things on different Python versions, then the unversioned binary should point to Python 2 version. This is done in order to stay in line with "/usr/bin/python" pointing to Python 2. This usually applies to e.g. test runners, coverage tools, etc. > > This applies for modules binaries such as pytest (nosetests, pip, ...) > > where is > > difference between running python2 and python3 version of the binary. > For those cases guidelines say that both versions should be packaged. > > > Currently we should have non versioned binaries to run on python3 only for > > python > > applications (devassistant) where both python2 and python3 version of the > > application > > provide same functionality. > Yes. > > > Therefore I suggest to switch order of pyX_install macros. > Eeee, no. Let's use Python 3 by default. Yes. Because the example in the guidelines is an example of packaging a Python library (point 2. above), hence the unversioned binary should still use Python 2. Even the guidelines say that: " For example, the python3 version of "coverage" must ship executables /usr/bin/coverage-3 and /usr/bin/coverage-3.4 (assuming python3 is currently version 3.4), while the python2 version must provide /usr/bin/coverage, /usr/bin/coverage-2 and /usr/bin/coverage-2.7 (assuming python2 version 2.7). " > Zbyszek -- Regards, Slavek Kabrda -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct