From Fedora Project Wiki
(initial change proposal draft for deprecating python3-pytest-runner)
 
(→‎Owner: merge owners)
 
(6 intermediate revisions by 2 users not shown)
Line 8: Line 8:
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. Note that motivation for the change should be in the Benefit to Fedora section below, and this part should answer the question "What?" rather than "Why?". -->
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. Note that motivation for the change should be in the Benefit to Fedora section below, and this part should answer the question "What?" rather than "Why?". -->


The {{package:python-pytest-runner}} ({{package:python3-pytest-runner}}) package will be [https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/ deprecated] in [https://docs.fedoraproject.org/en-US/releases/f42/ Fedora Linux 42]. Dependent packages are encouraged to switch to using `pytest` directly.
The {{package|python-pytest-runner}} ({{package|python3-pytest-runner}}) package will be [https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packages/ deprecated] in [https://docs.fedoraproject.org/en-US/releases/f42/ Fedora Linux 42]. Dependent packages are encouraged to switch to using `pytest` directly.




Line 16: Line 16:
This should link to your home wiki page so we know who you are.  
This should link to your home wiki page so we know who you are.  
-->
-->
* Name: [[User:salimma|Michel Lind]]
* Name: [[User:salimma|Michel Lind]], [[User:music|Ben Beasley]]
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. -->
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. -->
* Email: michel@michel-slm.name
* Email: michel@michel-slm.name, code@musicinmybrain.net
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
-->
-->


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:ChangeReadyForWrangler]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 57: Line 56:
Per upstream,
Per upstream,


<blockquote>
{{quote|
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`.
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.
See also https://github.com/pypa/setuptools/issues/1684.
</blockquote>
|source=pytest-runner github|}}


=== How to migrate to pytest ===
=== How to migrate to pytest ===
Line 67: Line 66:
* Remove 'pytest' and any other testing requirements from 'tests_require', 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
* Use a requirement-test.txt file to hold test dependencies
* Invoke tests with ``pytest``
* Invoke tests with `pytest`
* Another good option is to configure a ``tox.ini`` next to your ``setup.cfg`` https://tox.readthedocs.io/en/latest/
* Another good option is to configure a `tox.ini` next to your `setup.cfg`. https://tox.readthedocs.io/en/latest/


== Feedback ==
== Feedback ==
Line 78: Line 77:
== Scope ==
== Scope ==
* Proposal owners:
* Proposal owners:
** Mark {{package:python-pytest-runner}} as deprecated in `rawhide`
** Mark {{package|python-pytest-runner}} as deprecated in `rawhide`
** Send PRs to affected packages to remove dependencies on this package
** Send PRs to affected packages to remove dependencies on this package
* Other developers:
* Other developers:
** If your package depends on {{package:python-pytest-runner}, adjust it to drop the dependency
** If your package depends on {{package|python-pytest-runner}, adjust it to drop the dependency
* Release engineering: no impact anticipated
* Release engineering: no impact anticipated


Line 119: Line 118:
-->
-->


```
<code>
$ fedrq pkgs python3-pytest-runner -F provides | grep deprecated
$ fedrq pkgs python3-pytest-runner -F provides | grep deprecated
deprecated()
deprecated()
```
</code>


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->

Latest revision as of 22:27, 24 December 2024


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