From Fedora Project Wiki

< Changes

Revision as of 10:26, 25 June 2020 by Churchyard (talk | contribs) (Initial proposal)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Deprecate python-pytoml

Summary

The Package-x-generic-16.pngpython-pytoml (Package-x-generic-16.pngpython3-pytoml) package will be deprecated in Fedora 33. Pytoml is deprecated upstream in favor of toml (Package-x-generic-16.pngpython-toml), but existing Fedora packages depend on it, so we cannot remove it yet. Packagers are encouraged to work with upstream to switch to Package-x-generic-16.pngpython-toml, but Package-x-generic-16.pngpython-pytoml remains available until it is a leaf package, it will be removed then (possibly not yet in Fedora 33).

Owner

Current status

  • Targeted release: Fedora 33
  • Last updated: 2020-06-25
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

The Package-x-generic-16.pngpython-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 Package-x-generic-16.pngpython3-pytoml, hence we want to have it deprecated.

Packagers are encouraged to switch to Package-x-generic-16.pngpython3-toml with upstream involvement. Downstream patches to switch from pytoml to toml are not encouraged.

Note that repoquery gives many packages that BuildRequire Package-x-generic-16.pngpython3-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 Package-x-generic-16.pngpyproject-rpm-macros BuildRequires generator which was since already updated to use Package-x-generic-16.pngpython3-toml. When rebuilt with updated Package-x-generic-16.pngpyproject-rpm-macros, the dependency will be replaced with Package-x-generic-16.pngpython3-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 Package-x-generic-16.pngpython-flit. Upstream already discusses the transition: https://github.com/takluyver/flit/issues/255

Once all dependencies are removed, we plan to retire Package-x-generic-16.pngpython-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 Package-x-generic-16.pngpython-pytoml and Package-x-generic-16.pngpython-toml packages is on board.

Benefit to Fedora

An upstream deprecated package will not be depended upon by new packages.

Scope

  • Proposal owners: Deprecate Package-x-generic-16.pngpython3-pytoml. Work with flit upstream to make the transition as well. Once the dependency is removed from flit, rebuild remaining packages using Package-x-generic-16.pngpyproject-rpm-macros and retire Package-x-generic-16.pngpython-pytoml (possibly later than Fedora 33).
  • Other developers: No action needed. Don't add new dependencies on Package-x-generic-16.pngpython3-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 Package-x-generic-16.pngpython3-toml, because it cannot work as drop-in replacement (the Python module has a different name). The package will eventually be obsoleted by Package-x-generic-16.pngfedora-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)

Release Notes