python-dateutil 2.x
Summary
The package providing dateutil
python libraries is currently on version 1.5. Early releases in the 2.x series of python-dateutil would work only for python3, so the package was not updated in Fedora. Now, python-dateutil is at version 2.4 and does work with python2. Fedora packages can be updated to use the newer version.
Owner
- Name: Pete Travis
- Email: immanetize AT fedoraproject.org
- Name: Stephen Gallagher
- Email: sgallagh@redhat.com
- Release notes owner:
- Name: Zbigniew Jędrzejewski-Szmek
- Email: zbyszek@in.waw.pl
Current status
Detailed Description
Many newer python packages require the newer version of python-dateutil, but some still need python-dateutil 1.5 to function properly. Maintainers will assess affected packages, and can use the parallel installable python-dateutil15 package, which already exists in the distribution, if they cannot migrate.
Migrating to python-dateutil 2.4
Many upstream projects have set requirements for python-dateutil 1.5 because the next release was python3 only. The current release will have both python2 and python3 subpackages, and usage of the modules has changed little. Maintainers are encouraged to test with the new version, communicate the above with upstream, and reach out to change owners as needed.
Staying on python-dateutil15
Some packages might need to stay on the older version. Again, we encourage you to test; this version is effectively unmaintained upstream and has no python3 subpackage.
python-dateutil15 is provided via a python egg. To use it, use *Requires: python-dateutil = 1.5* and apply a patch with something like this:
import sys py_ver = sys.version[:3] dateutil_egg_path = "/usr/lib/python" + py_ver + "/site-packages/python_dateutil-1.5-py" + py_ver + ".egg/" sys.path.insert(0, dateutil_egg_path) from dateutil import stuff and things
Benefit to Fedora
Fedora can offer newer dateutil libraries, and newer packages that depend on dateutil.
The older version of python-dateutil is py2 only, while the current version is available for both python2 and python3. Updating will allow more packages to use python3.
Scope
- Proposal owners:
Coordinate update efforts and assist maintainers in assessing, testing, and updating their packages.
- Other developers:
Maintainers of packages that depend on python-dateutils should test with version 2.4, or the current release at freeze. If their package is not compatible with this version, they should change the packages Requires: to use python-dateutil15 and ensure that it works with the parallel-installable egg that it provides.
- Release engineering: As each package should be assessed individually, a mass rebuild is not appropriate and release engineering has no requirements for this change.
- Policies and guidelines: https://fedoraproject.org/wiki/Packaging:Python_Eggs#Multiple_Versions is relevant.
Upgrade/compatibility impact
Existing functionality can be supported by the backwards compatibility package, but it is expected that most packages will be compatible with the newer version.
Post-F22, the compatibility package may be retired. *python3-dateutil* currently exists as a separate package, and it will be retired when *python-dateutil* grows a py3 subpackage.
How To Test
Some ideas:
- Use the package with newer python-dateutil and see if it breaks :)
- Review code that uses python-dateutil modules for incompatible changes.
User Experience
Third party developers may need to review their work for compatibility, and use the appropriate package. End users of packages that depend on python-dateutils should not be impacted.
Dependencies
- barman
- bugwarrior
- buildbot-master
- calibre
- condor-plumage
- dmlite-shell
- fedocal
- freeipa-python
- gtg
- libopensync-plugin-moto
- nagios-plugins-lcgdm-common
- openerp
- openerp7
- openerp-client
- pyqtrailer
- python-arrow
- python-bloom
- python-botocore
- python-bugzilla2fedmsg
- python-catkin_pkg
- python-collada
- python-croniter
- python-django-horizon
- python-django-tastypie
- python-fedmsg-meta-fedora-infrastructure
- python-freezegun
- python-gertty
- python-icalendar
- python-matplotlib
- python-mwlib
- python-nikola-extras
- python-OWSLib
- python-pandas
- python-proteus
- python-pypump
- python-rhsm
- python-tahrir
- python-tahrir-api
- python-taskw
- python-tgscheduler
- python-vcstools
- python-vobject
- python-wstool
- pytrailer
- ReviewBoard
- s3cmd
- subscription-manager
- sugar-toolkit
- sugar-toolkit-gtk3
- supybot
- tryton
- trytond
- TurboGears
- vertica-python
- wuja
- yokadi
- yum-plugin-changelog
Tracking bug: #1126521
Contingency Plan
- Contingency mechanism: Revert commits and continue shipping older versions of python-dateutil and dependent packages.
Alternatively, if a relative minority of packages cannot be updated to 2.x or use the 1.5 egg, python-dateutil15 can explicitly Conflict with python-dateutil.
- Contingency deadline: Beta Freeze
- Blocks release? No
Documentation
- https://github.com/dateutil/dateutil/blob/master/NEWS
- https://github.com/dateutil/dateutil/blob/master/README.rst
Release Notes
python-dateutil has been updated to version 2.4, allowing new versions of popular software in Fedora.