From Fedora Project Wiki

Revision as of 21:34, 24 December 2024 by Salimma (talk | contribs) (→‎Detailed Description: fix quote again)


Deprecate python-pytest-runner

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

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

  • Targeted release: Fedora Linux 42
  • Last updated: 2024-12-24
  • [<link to devel-announce post will be added by Wrangler> Announced]
  • [<will be assigned by the Wrangler> Discussion thread]
  • 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

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.
  • Use a requirement-test.txt file to hold 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