Wiki: https://fedoraproject.org/wiki/Changes/DeprecatePython-dateutil

Discussion Thread: https://discussion.fedoraproject.org/t/180976

**This is a proposed Change for Fedora Linux.**
This document represents a proposed Change. As part of the Changes process,
proposals are publicly announced in order to receive community feedback.
This proposal will only be implemented if approved by the Fedora
Engineering Steering Committee.

== 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: [[User:mattia| Mattia Verga]]
* Email: [email protected]

== 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 [https://github.com/dateutil/dateutil/issues/1404
unmaintained] and possibly with [
https://github.com/dateutil/dateutil/issues/1450 unaddressed security
issues]. The plan is to try to continue packaging until feasible (it is
currently [https://bugzilla.redhat.com/show%20bug.cgi?id=2423882 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 [
https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/
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: [
https://forge.fedoraproject.org/releng/tickets/issues #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)

== Release Notes ==

\n
-- 
_______________________________________________
devel-announce mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://forge.fedoraproject.org/infra/tickets/issues/new
-- 
_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it: 
https://forge.fedoraproject.org/infra/tickets/issues/new

Reply via email to