From Fedora Project Wiki
No edit summary
(Add tracking bug)
 
(13 intermediate revisions by 3 users not shown)
Line 12: Line 12:
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. -->
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. -->
* Email: immanetize AT fedoraproject.org
* Email: immanetize AT fedoraproject.org
* Name: [[User:sgallagh| Stephen Gallagher]]
* Email: sgallagh@redhat.com
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> -->
* Name: [[User:zbyszek | Zbigniew Jędrzejewski-Szmek ]]
* Email: zbyszek@in.waw.pl
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
Line 22: Line 26:


== Current status ==
== Current status ==
* Targeted release: [[Releases/22 | Fedora 222 ]]  
* Targeted release: [[Releases/22 | Fedora 22 ]]  
* Last updated: (DATE)
* Last updated: 2015-01-20
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Bugzilla states meaning as usual:
Bugzilla states meaning as usual:
Line 32: Line 36:
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
-->
-->
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1191526 #1191526]


== Detailed Description ==
== 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.
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 ==
== Benefit to Fedora ==
Fedora can offer newer dateutil libraries, and newer packages that depend on dateutil.
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 ==
== Scope ==
* Proposal owners:
* Proposal owners:
Line 54: Line 76:
Existing functionality can be supported by the backwards compatibility package, but it is expected that most packages will be compatible with the newer version.
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.
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 ==
== How To Test ==
Line 123: Line 145:
* yokadi
* yokadi
* yum-plugin-changelog
* yum-plugin-changelog
Tracking bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1126521 #1126521]


== Contingency Plan ==
== Contingency Plan ==


<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages). If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. -->
* Contingency mechanism: Revert commits and continue shipping older versions of python-dateutil and dependent packages.
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
 
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
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: N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
 
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
* Contingency deadline: Beta Freeze
* Blocks release? N/A (not a System Wide Change), Yes/No <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks release? No
* Blocks product? product <!-- Applicable for Changes that blocks specific product release/Fedora.next -->


== Documentation ==
== Documentation ==
* https://github.com/dateutil/dateutil/blob/master/NEWS
* https://github.com/dateutil/dateutil/blob/master/NEWS
* https://github.com/dateutil/dateutil/blob/master/README.rst
* https://github.com/dateutil/dateutil/blob/master/README.rst
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)


== Release Notes ==
== Release Notes ==
python-dateutil has been updated to version 2.4, allowing new versions of popular software in Fedora.
python-dateutil has been updated to version 2.4, allowing new versions of popular software in Fedora.


[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF22]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 151: Line 171:


<!-- Select proper category, default is Self Contained Change -->
<!-- Select proper category, default is Self Contained Change -->
[[Category:SelfContainedChange]]
[[Category:SystemWideChange]]
<!-- [[Category:SystemWideChange]] -->

Latest revision as of 13:00, 11 February 2015

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

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.

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

Release Notes

python-dateutil has been updated to version 2.4, allowing new versions of popular software in Fedora.