Deprecate python-pytoml
Summary
The python-pytoml
(python3-pytoml
) package will be deprecated in Fedora 33. Pytoml is deprecated upstream in favor of toml (python-toml
), but existing Fedora packages depend on it, so we cannot remove it yet. Packagers are encouraged to work with upstream to switch to python-toml
, but python-pytoml
remains available until it is a leaf package, it will be removed then (possibly not yet in Fedora 33).
Owner
- Name: Miro Hrončok
- Email: mhroncok@redhat.com
Current status
- Targeted release: Fedora 33
- Last updated: 2020-07-07
- FESCo issue: #2427
- Tracker bug: #1854484
- Release notes tracker: #525
Detailed Description
The python-pytoml
package is deprecated upstream:
> The pytoml project is no longer being actively maintained. Consider using the toml package instead.
We'd like to drop it from Fedora, but several packages still require it. Before we attempt to remove the package, we need to stop new packages to (Build)Require python3-pytoml
, hence we want to have it deprecated.
Packagers are encouraged to switch to python3-toml
with upstream involvement. Downstream patches to switch from pytoml to toml are not encouraged.
Note that repoquery
gives many packages that BuildRequire python3-toml
:
$ repoquery --repo=rawhide{,-source} --whatrequires python3-pytoml ilua-0:0.2.1-1.fc33.src pyproject-rpm-macros-0:0-15.fc33.noarch pyproject-rpm-macros-0:0-15.fc33.src python-black-0:19.10~b0-3.fc33.src python-chaospy-0:3.2.12-1.fc33.src python-copr-0:1.102-1.fc33.src python-decopatch-0:1.4.6-3.fc33.src python-elementpath-0:1.4.0-4.fc33.src python-flit-0:2.3.0-3.fc33.src python-latexcodec-0:2.0.1-1.fc33.src python-makefun-0:1.6.11-3.fc33.src python-numpoly-0:0.2.3-2.fc33.src python-openqa_client-0:4.1.0-2.fc33.src python-pint-0:0.13-1.fc33~bootstrap.src python-pybtex-docutils-0:0.2.2-4.fc33.src python-pytest-cases-0:1.11.1-3.fc33.src python-pytest-harvest-0:1.7.2-3.fc33.src python-pytest-steps-0:1.7.2-2.fc33.src python-readthedocs-sphinx-ext-0:2.0.0-1.fc33.src python-requests-download-0:0.1.2-3.fc33.src python-sphinx-copybutton-0:0.2.12-1.fc33.src python-sphinxcontrib-bibtex-0:1.0.0-4.fc33.src python-wikitcms-0:2.6.3-2.fc33.src python-xmlschema-0:1.0.18-3.fc33.src python-xmlsec-0:1.3.8-1.fc33.src python3-flit-0:2.3.0-3.fc33.noarch python3-flit-core-0:2.3.0-3.fc33.noarch
But many of them are only there because the dependency was generated by pyproject-rpm-macros
BuildRequires generator which was since already updated to use python3-toml
. When rebuilt with updated pyproject-rpm-macros
, the dependency will be replaced with python3-toml
.
$ repoquery --repo=rawhide{,-source} --whatrequires pyproject-rpm-macros ansible-lint-0:4.2.0-4.fc33.src ilua-0:0.2.1-1.fc33.src python-PyGithub-0:1.51-2.fc33.src python-black-0:19.10~b0-3.fc33.src python-chaospy-0:3.2.12-1.fc33.src python-copr-0:1.102-1.fc33.src python-decopatch-0:1.4.6-3.fc33.src python-elementpath-0:1.4.0-4.fc33.src python-latexcodec-0:2.0.1-1.fc33.src python-makefun-0:1.6.11-3.fc33.src python-numpoly-0:0.2.3-2.fc33.src python-openqa_client-0:4.1.0-2.fc33.src python-pep517-0:0.7.0-4.fc33.src python-pint-0:0.13-1.fc33~bootstrap.src python-pybtex-docutils-0:0.2.2-4.fc33.src python-pytest-cases-0:1.11.1-3.fc33.src python-pytest-harvest-0:1.7.2-3.fc33.src python-pytest-steps-0:1.7.2-2.fc33.src python-readthedocs-sphinx-ext-0:2.0.0-1.fc33.src python-requests-download-0:0.1.2-3.fc33.src python-sphinx-copybutton-0:0.2.12-1.fc33.src python-sphinxcontrib-bibtex-0:1.0.0-4.fc33.src python-tox-current-env-0:0.0.2-5.fc33.src python-wikitcms-0:2.6.3-2.fc33.src python-xmlschema-0:1.0.18-3.fc33.src python-xmlsec-0:1.3.8-1.fc33.src
The only really affected package is python-flit
. Upstream already discusses the transition: https://github.com/takluyver/flit/issues/255
Once all dependencies are removed, we plan to retire python-pytoml
, whether it will be in Fedora 33 or later.
Feedback
The intent was announced at https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/message/MOAHRKMZRFNR34WHPICHCP6MR3IWY4FW/ but there was no feedback. The primary point of contact for the python-pytoml
and python-toml
packages is on board.
Benefit to Fedora
An upstream deprecated package will not be depended upon by new packages.
Scope
- Proposal owners: Deprecate
python3-pytoml
. Work with flit upstream to make the transition as well. Once the dependency is removed from flit, rebuild remaining packages usingpyproject-rpm-macros
and retirepython-pytoml
(possibly later than Fedora 33).
- Other developers: No action needed. Don't add new dependencies on
python3-pytoml
.
- Release engineering: N/A (not a System Wide Change)
- Policies and guidelines: N/A (not a System Wide Change)
- Trademark approval: N/A (not needed for this Change)
Upgrade/compatibility impact
The package will remain available. Only new packages cannot depend on it.
Once retired, we don't plan to provide python3-pytoml
from python3-toml
, because it cannot work as drop-in replacement (the Python module has a different name). The package will eventually be obsoleted by fedora-obsolete-packages
once Python is updated to 3.10 to avoid broken upgrades.
How To Test
$ repoquery --repo=rawhide --provides python3-pytoml ... deprecated() ...
User Experience
No changes.
Dependencies
N/A (not a System Wide Change)
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
- Blocks product? product
Documentation
N/A (not a System Wide Change)