Deprecate python-dateutil
Summary
Python-dateutil is an extension to the standard Python datetime features, widely used by a lot of other projects. However, upstream is unmaintained and possibly with unaddressed security issues. The plan is to try to continue packaging until feasible, but mark the package as deprecated in Fedora and try to convince other dependent project to switch over from it.
Owner
- Name: Mattia Verga
- Email: mattia.verga@proton.me
Current status
- Targeted release: Fedora Linux 45
- Last updated: 2026-03-25
- Announced
- Discussion thread
- FESCo issue: #3574
- Tracker bug: #2451364
- Release notes tracker: #322
Detailed Description
Python-dateutil is an extension to the standard Python datetime features, widely used by a lot of other projects. The following is a list of Fedora packages depending on it:
- 389-ds-base.src : python3dist(python-dateutil)
- awscli2.noarch : python3.14dist(python-dateutil) >= 2.1
- azure-cli.src : python3dist(python-dateutil) >= 2.8
- barman.src : python3dist(python-dateutil)
- bidscoin.noarch : python3.14dist(python-dateutil)
- borgbackup.src : python3dist(python-dateutil)
- buildbot.src : python3dist(python-dateutil) >= 1.5
- buildbot-master.noarch : python3.14dist(python-dateutil) >= 1.5
- calibre.src : python3dist(python-dateutil)
- ceph-mgr-modules-core.noarch : python3-dateutil
- conan.noarch : python3.14dist(python-dateutil) >= 2.8
- copr-backend.noarch : python3-dateutil
- copr-frontend.noarch : python3dist(python-dateutil)
- crosswords-puzzle-sets-keesing.noarch : python3dist(python-dateutil)
- crosswords-puzzle-sets-pzzl.noarch : python3dist(python-dateutil)
- did.noarch : python3.14dist(python-dateutil)
- electron-cash.noarch : python3.14dist(python-dateutil)
- ginga.src : python3dist(python-dateutil) >= 2.8.2
- gnome-feeds.noarch : python3-dateutil
- grass.src : python3-dateutil
- hyperkitty.noarch : python3.14dist(python-dateutil) >= 2
- jrnl.noarch : (python3.14dist(python-dateutil) < 3~~ with python3.14dist(python-dateutil) >= 2.8)
- khal.noarch : python3.14dist(python-dateutil)
- limnoria.noarch : python3-dateutil
- mailman3.noarch : python3.14dist(python-dateutil) >= 2
- obs-service-obs_scm-common.noarch : python3-dateutil
- oci-cli.noarch : python3.14dist(python-dateutil) >= 2.5.3
- openapi-python-client.noarch : python3.14dist(python-dateutil) >= 2.8.1
- pcs.noarch : python3-dateutil >= 2.7.0
- pdd.noarch : python3-dateutil
- pdfarranger.noarch : python3.14dist(python-dateutil) >= 2.4
- pgadmin4.src : python3dist(python-dateutil) >= 2
- picard.src : (python3dist(python-dateutil) >= 2.7 with python3dist(python-dateutil) < 3)
- python-Mastodon.src : python3dist(python-dateutil)
- python-OWSLib.src : python3dist(python-dateutil)
- python-adal.src : (python3dist(python-dateutil) < 3~~ with python3dist(python-dateutil) >= 2.1)
- python-aniso8601.src : python3-dateutil
- python-arrow.src : python3dist(python-dateutil) >= 2.7
- python-azure-multiapi-storage.src : python3dist(python-dateutil)
- python-azure-storage-common.src : python3dist(python-dateutil)
- python-beancount.src : python3dist(python-dateutil) >= 2.6
- python-beanprice.src : python3dist(python-dateutil) >= 2.6
- python-botocore.src : (python3dist(python-dateutil) < 3~~ with python3dist(python-dateutil) >= 2.1)
- python-bravado.src : python3dist(python-dateutil)
- python-bravado-core.src : python3dist(python-dateutil)
- python-catkin_pkg.src : python3-dateutil
- python-celery.src : python3dist(python-dateutil) >= 2.8.2
- python-collada.src : python3dist(python-dateutil)
- python-cron-converter.src : python3dist(python-dateutil)
- python-croniter.src : python3dist(python-dateutil)
- python-dateparser.src : python3dist(python-dateutil) >= 2.7
- python-datetimerange.src : (python3dist(python-dateutil) < 3~~ with python3dist(python-dateutil) >= 2.4.2)
- python-deepdiff.src : python3dist(python-dateutil)
- python-django-extensions.src : python3dist(python-dateutil)
- python-elasticsearch.src : python3dist(python-dateutil)
- python-faker.src : python3-dateutil
- python-feedgen.src : python3dist(python-dateutil)
- python-freezegun.src : python3dist(python-dateutil) >= 2.7
- python-ghp-import.src : python3dist(python-dateutil) >= 2.8.1
- python-github3py.src : python3dist(python-dateutil) >= 2.6
- python-gnocchiclient.src : python3dist(python-dateutil)
- python-guessit.src : python3dist(python-dateutil)
- python-hdmf.src : python3dist(python-dateutil)
- python-holidays.src : (python3dist(python-dateutil) < 3~~ with python3dist(python-dateutil) >= 2.9^post0)
- python-hyperkitty.src : python3dist(python-dateutil) >= 2
- python-hypothesis.src : python3dist(python-dateutil) >= 1.4
- python-ibm-cloud-sdk-core.src : (python3dist(python-dateutil) < 3~~ with python3dist(python-dateutil) >= 2.9)
- python-ibm-vpc.src : (python3dist(python-dateutil) < 3~~ with python3dist(python-dateutil) >= 2.5.3)
- python-icalendar.src : python3dist(python-dateutil)
- python-influxdb-client.src : python3dist(python-dateutil) >= 2.5.3
- python-ipyparallel.src : python3dist(python-dateutil) >= 2.1
- python-javaproperties.src : python3dist(python-dateutil)
- python-jupyter-client.src : python3dist(python-dateutil) >= 2.8.2
- python-marshmallow.src : python3-dateutil
- python-matplotlib.src : python3dist(python-dateutil) >= 2.7
- python-nihtest.src : python3dist(python-dateutil)
- python-oci.src : python3dist(python-dateutil) >= 2.5.3
- python-odata-query.src : (python3dist(python-dateutil) < 3~~ with python3dist(python-dateutil) >= 2.8.1)
- python-opensearch-py.src : python3dist(python-dateutil)
- python-orjson.src : (python3dist(python-dateutil) < 3~~ with python3dist(python-dateutil) >= 2)
- python-oslo-log.src : python3dist(python-dateutil) >= 2.7
- python-pandas.src : python3dist(python-dateutil) >= 2.8.2
- python-pelican.src : python3dist(python-dateutil) >= 2.8.2
- python-pendulum.src : python3dist(python-dateutil) >= 2.6
- python-pg8000.src : python3dist(python-dateutil) >= 2.8.2
- python-pikepdf.src : python3dist(python-dateutil) >= 2.8.1
- python-pskc.src : python3dist(python-dateutil)
- python-pwntools.src : python3-dateutil
- python-py-tes.src : python3dist(python-dateutil) >= 2.6.1
- python-pydantic-core.src : python3dist(python-dateutil)
- python-pyghmi.src : python3dist(python-dateutil) >= 2.8.1
- python-pyinfra.src : (python3dist(python-dateutil) < 3~~ with python3dist(python-dateutil) > 2.0)
- python-pykwalify.src : python3dist(python-dateutil) >= 2.8
- python-pynwb.src : python3dist(python-dateutil) >= 2.8.2
- python-rst-linker.src : python3dist(python-dateutil)
- python-snaptime.src : python3-dateutil
- python-sphinxcontrib-doxylink.src : (python3dist(python-dateutil) < 3~~ with python3dist(python-dateutil) >= 2.8.2)
- python-sqlalchemy-utils.src : python3dist(python-dateutil) >= 2.6
- python-sqlite-utils.src : python3dist(python-dateutil)
- python-sushy.src : python3dist(python-dateutil) >= 2.7
- python-tcx2gpx.src : python3dist(python-dateutil)
- python-tcxparser.src : python3dist(python-dateutil)
- python-tempora.src : python3dist(python-dateutil)
- python-time-machine.src : python3dist(python-dateutil)
- python-typepy.src : python3-dateutil
- python-vobject.src : python3-dateutil
- python-webdav4.src : python3dist(python-dateutil) >= 2.8.1
- python-xnat.src : python3dist(python-dateutil)
- python-yaql.src : python3dist(python-dateutil) >= 2.4.2
- python3-Mastodon.noarch : python3.14dist(python-dateutil)
- python3-OWSLib.noarch : python3.14dist(python-dateutil)
- python3-barman.noarch : python3.14dist(python-dateutil)
- python3-django-tastypie.noarch : python3-dateutil
- python3-dnf-plugins-core.noarch : python3-dateutil
- python3-gertty.noarch : python3-dateutil
- python3-ginga+recommended.noarch : python3.14dist(python-dateutil) >= 2.8.2
- python3-idstools.noarch : python3-dateutil
- python3-influxdb.noarch : python3.14dist(python-dateutil) >= 2.6
- python3-ipalib.noarch : python3-dateutil
- python3-koji.noarch : python3.14dist(python-dateutil)
- python3-kubernetes.noarch : python3.14dist(python-dateutil) >= 2.5.3
- python3-lib389.noarch : python3.14dist(python-dateutil)
- python3-osbs-client.noarch : python3.14dist(python-dateutil)
- python3-prov.noarch : python3.14dist(python-dateutil) >= 2.2
- python3-snapm.noarch : python3.14dist(python-dateutil)
- python3-subscription-manager-rhsm.x86_64 : python3-dateutil
- python3-visidata.noarch : python3.14dist(python-dateutil)
- roca-detect.noarch : python3.14dist(python-dateutil)
- s3cmd.noarch : python3-dateutil
- salt.noarch : python3.14dist(python-dateutil)
- samba.src : python3-dateutil
- snapm.src : python3dist(python-dateutil)
- starcal.noarch : python3-dateutil
- stratis-cli.noarch : python3.14dist(python-dateutil)
- subscription-manager.src : python3-dateutil
- sugar-toolkit-gtk3.i686 : python3-dateutil
- syslog-ng.src : python3-dateutil
- syslog-ng-python-modules.x86_64 : python3-dateutil
- teampulls.noarch : (python3.14dist(python-dateutil) < 3~~ with python3.14dist(python-dateutil) >= 2.8.2)
- toot.noarch : (python3.14dist(python-dateutil) < 3~~ with python3.14dist(python-dateutil) >= 2.8.1)
- visidata.src : python3dist(python-dateutil)
However, upstream is unmaintained and possibly with unaddressed security issues. The plan is to try to continue packaging until feasible (it is currently FTB with Python 3.15), but mark the package as deprecated in Fedora and try to convince other dependent project to switch over from it.
Feedback
Benefit to Fedora
Raise attention to unmaintained and possibly unsecure package and try to move away dependent packages from it.
Scope
- Proposal owners:
Mark package as deprecated.
- Other developers:
Optional: get in touch with other dependent packages upstream and raise attention to python-dateutil package status, asking them to move away from it.
- Release engineering: #Releng issue number
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
- Alignment with the Fedora Strategy:
Upgrade/compatibility impact
While we'll try to fix the FTB with Python 3.15 to avoid breaking dependent packages, we don't want to continue patching the project downstream, so we'll likely orphan the package when the burden gets too high.
Early Testing (Optional)
Do you require 'QA Blueprint' support? Y/N
How To Test
User Experience
Dependencies
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change), Yes/No
Documentation
N/A (not a System Wide Change)
