On 14. 10. 22 21:36, Maxwell G via devel wrote:
On 22/10/06, Ben Cotton wrote:
https://fedoraproject.org/wiki/Changes/DeprecatePythonToml
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 == The {{package|python-toml}} (`python3-toml`) package will be [https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packag... deprecated] in [[Releases/38|Fedora 38]]. The [https://pypi.org/project/toml/ upstream toml package] is considered unmaintained (see [[#Detailed_Description|description]]) and Python 3.11 contains [https://peps.python.org/pep-0680/ a TOML-reading library in the standard library]. Existing Fedora packages depend on {{package|python-toml}}, so we cannot remove it yet. Packagers are encouraged to work with upstreams to switch to [https://peps.python.org/pep-0680/ tomllib]/[https://pypi.org/project/tomli/ tomli] for reading toml or [https://pypi.org/project/tomli/ tomli-w] for writing it. But {{package|python-toml}} remains available until it is a leaf package, it will be removed then (possibly not yet in Fedora 38).
From the table of contents:
1.4 Detailed Description
1.4.1 List of components still (Build)Requiring python3-toml 1.4.2 Migrating to tomllib 1.4.3 Migrating to tomli 1.4.4 Migrating to tomllib on Python 3.11+ and falling back to tomli 1.4.5 Migrating to tomllib on Python 3.11+ and falling back to toml 1.4.6 Migrating to tomli-w
Perhaps the "Migrating to tomllib on Python 3.11+ and falling back to tomli" approach should be more strongly recommended? tomllib is based off of tomli's code and is yet another thing that has to be bootstrapped during Python rebuilds. python-toml AND python-tomli have been removed from ELN/RHEL 10, as they're both made redundant by tomllib.
Sure, "Migrating to tomllib on Python 3.11+ and falling back to tomli" is the recommended approach. How do I make that more visible?
I've removed the "fallback to toml" option entirely now when toml is in EPEL 8 (thanks for that).
I wonder if it would make sense to also phase out python-tomli at some point.
I was thinking about deprecating that one as well, but I thought perhaps it's too soon for some upstreams. When we deal with RHEL 10, patching tomli imports to make them tomllib imports seems "trivial" (unlike migrating from toml).
One slight correction: Neither python-tomli nor python-toml has not been removed from ELN, they will only be removed once not depended upon by other ELN pacakges.
https://tiny.distro.builders/view-rpm--view-eln--python3-tomli.html https://tiny.distro.builders/view-rpm--view-eln--python3-toml.html
FWIW, the list of packages that directly require tomli is relatively small.
$ ./python_toml_deps.py python3-tomli Runtime dependents of python3-tomli:
- pyp2spec
I can deal with that one.
- python3-check-manifest
- python3-flit
- python3-flit-core
Flit has been dealt with upstream:
https://github.com/pypa/flit/commit/dba0f317c52
- python3-pep517
- python3-pytest
https://github.com/pytest-dev/pytest/commit/2e8a319828
- python3-setuptools_scm
- python3-sphinx-theme-builder
- python3-towncrier
- python3-versioningit
Buildtime dependents of python3-tomli:
- bst-external
- hatch
- pyp2spec
- pytest
- python-diff-cover
- python-flit
- python-pep517
- python-pyproject-metadata
- python-setuptools_scm
- python-sphinx-theme-builder
- python-towncrier
- python-versioningit
- python3-mypy
- sagemath
Source RPM names:
- bst-external
- hatch
- pyp2spec
- pytest
- python-check-manifest
- python-diff-cover
- python-flit
- python-pep517
- python-pyproject-metadata
- python-setuptools_scm
- python-sphinx-theme-builder
- python-towncrier
- python-versioningit
- python3-mypy
- sagemath
I am slowly walking trough upstream projects and dealing with the tomli dependency. Chances are, we might get rid of it naturally without deprecation.