From Fedora Project Wiki

Revision as of 10:25, 27 January 2025 by Amoloney (talk | contribs)


Deprecate python-pytest-runner

Summary

The python-pytest-runner (python3-pytest-runner) package will be deprecated in Fedora Linux 42. Dependent packages are encouraged to switch to using pytest directly.


Owner

Current status

Detailed Description

pytest-runner has been considered deprecated upstream since 2019 and the repo upstream was archived over a year ago (December 3, 2023).

Per upstream,

pytest-runner depends on deprecated features of setuptools and relies on features that break security mechanisms in pip. For example setup_requires and tests_require bypass pip --require-hashes. See also https://github.com/pypa/setuptools/issues/1684.


How to migrate to pytest

  • Remove 'pytest-runner' from your 'setup_requires', preferably removing the setup_requires option.
  • Remove 'pytest' and any other testing requirements from 'tests_require', preferably removing the setup_requires option.
  • See our guidelines for how to specify test dependencies
  • Invoke tests with pytest
  • Another good option is to configure a tox.ini next to your setup.cfg. https://tox.readthedocs.io/en/latest/

Feedback

Benefit to Fedora

The security benefits mostly do not apply to us, as we install dependencies from RPM packages. But preventing additional packages from depending on a package with a dead upstream that might increasingly become incompatible with newer setuptools releases would avoid us accumulating tech debt and having to deal with potential test runner failures in the future.

Scope

  • Proposal owners:
    • Mark python-pytest-runner as deprecated in rawhide
    • Send PRs to affected packages to remove dependencies on this package
  • Other developers:
    • If your package depends on {{package|python-pytest-runner}, adjust it to drop the dependency
  • Release engineering: no impact anticipated
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with the Fedora Strategy: N/A

Upgrade/compatibility impact

N/A. This just deprecates the package, and stops it from being used in new dependencies.


Early Testing (Optional)

Do you require 'QA Blueprint' support? N

How To Test

$ fedrq pkgs python3-pytest-runner -F provides | grep deprecated 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


Documentation

N/A (not a System Wide Change)

Release Notes