From Fedora Project Wiki
(adding release notes tracker)
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
= Pytest 8 =
= Pytest 8 =
<!-- The name of your change proposal -->
 




== Summary ==
== Summary ==
<!-- 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?". -->
 
Update to a new upstream release of pytest that is not completely compatible with previous releases. Pytest 8 is a major upstream release removing a lot of deprecated functions and introducing breaking changes.
Update to a new upstream release of pytest that is not completely compatible with previous releases. Pytest 8 is a major upstream release removing a lot of deprecated functions and introducing breaking changes.


== Owner ==
== Owner ==
<!--
 
For change proposals to qualify as self-contained, owners of all affected packages need to be included here. Alternatively, a SIG can be listed as an owner if it owns all affected packages.
This should link to your home wiki page so we know who you are.
-->
* Name: [[User:thrnciar| Tomáš Hrnčiar]]  
* Name: [[User:thrnciar| Tomáš Hrnčiar]]  
* Name: [[User:churchyard| Miro Hrončok]]  
* Name: [[User:churchyard| Miro Hrončok]]  
Line 22: Line 19:


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF41]]
<!-- 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 40: Line 37:
ON_QA -> change is fully code complete
ON_QA -> change is fully code complete
-->
-->
* FESCo issue:  
* [https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org/thread/GRCHPTO4ZHKPKA42WYEHYO2PHNN276DT/ Announced]
* Tracker bug:  
* [https://discussion.fedoraproject.org/t/f41-change-proposal-pytest-8-self-contained/111937 Discussion Thread]
* Release notes tracker:
* FESCo issue: [https://pagure.io/fesco/issue/3195 #3195]
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=2276439 #2276439]
* Release notes tracker: [https://gitlab.com/fedora/docs/fedora-linux-documentation/release-notes/-/issues/135 #135]


== Detailed Description ==
== Detailed Description ==
Line 63: Line 62:


List of packages that will likely fail to build.
List of packages that will likely fail to build.
Maintainers by package:
Maintainers by package:
* awscli2              davdunc nforro
* cffconvert          iztokf
* cffconvert          iztokf
* clamav              gnat mstevens nb orion pwouters robert sergiomb steve
* cloud-init          dustymabe gholms larsks mhayden otubo
* cloud-init          dustymabe gholms larsks mhayden otubo
* conda-build          orion
* container-workflow-tool orphan
* copr-backend        frostyx msuchy praiskup
* copr-backend        frostyx msuchy praiskup
* copr-frontend        frostyx msuchy praiskup
* copr-rpmbuild        frostyx praiskup
* copr-rpmbuild        frostyx praiskup
* fedmsg              kevin
* fedmsg              kevin
Line 78: Line 75:
* ipython              churchyard cstratak ignatenkobrain lbalhar mrunge salimma tomspur
* ipython              churchyard cstratak ignatenkobrain lbalhar mrunge salimma tomspur
* jrnl                music
* jrnl                music
* micropipenv          lbalhar
* mu                  churchyard kushal
* mu                  churchyard kushal
* pg_activity          mikelo2
* pg_activity          mikelo2
* pyinstrument        zbyszek
* python-APScheduler  mmassari zuul
* pyp2rpm              gordonmessmer kevin
* python-aiohttp-cors  kwizart
* python-aiohttp-cors  kwizart
* python-alembic      frantisekz
* python-alembic      frantisekz
* python-ansible-compat chedi gotmax23 kevin
* python-ase          besser82 marcindulak
* python-ase          besser82 marcindulak
* python-astroML      sergiopr
* python-astropy      orion sergiopr
* python-astropy      orion sergiopr
* python-atpublic      abompard jonathanspw
* python-atpublic      abompard jonathanspw
Line 93: Line 86:
* python-aws-sam-translator music
* python-aws-sam-translator music
* python-bluepyopt    ankursinha
* python-bluepyopt    ankursinha
* python-boto3        cstratak fale limb
* python-chalice      dcavalca
* python-contextily    qulogic
* python-cssutils      kevin
* python-cssutils      kevin
* python-curio        carlwgeorge
* python-dbus-next    alebastr
* python-dbus-next    alebastr
* python-dirhash      cottsay
* python-dirhash      cottsay
* python-django-extensions aekoroglu ngompa salimma
* python-django-extensions aekoroglu ngompa salimma
* python-earthpy      iztokf
* python-ecdsa        brouhaha jonathanspw orion
* python-ecdsa        brouhaha jonathanspw orion
* python-efel          ankursinha
* python-efel          ankursinha
* python-fastjsonschema thrnciar
* python-fastjsonschema thrnciar
* python-flaky         churchyard
* python-fiona         qulogic
* python-flask-whooshee msuchy
* python-fslpy        ankursinha
* python-fslpy        ankursinha
* python-geopandas    qulogic
* python-geoplot      qulogic
* python-glob2        jujens
* python-glob2        jujens
* python-graphviz      eclipseo mairacanal
* python-graphviz      eclipseo mairacanal
Line 109: Line 106:
* python-ipykernel    churchyard pcpa
* python-ipykernel    churchyard pcpa
* python-ipywidgets    lbalhar
* python-ipywidgets    lbalhar
* python-jupyter-client churchyard tomspur
* python-josepy        nb
* python-jupyter-console qulogic
* python-jupyter-server lbalhar
* python-kombu        fab frantisekz mrunge ngompa pingou pjp
* python-kombu        fab frantisekz mrunge ngompa pingou pjp
* python-lexicon      mhayden pghmcfc
* python-lexicon      mhayden pghmcfc
* python-lsp-server    gui1ty jonathanspw
* python-libpysal      qulogic
* python-mapclassify  qulogic
* python-marshmallow-enum fab
* python-marshmallow-enum fab
* python-mathics-pygments dcavalca
* python-mathics-pygments dcavalca
* python-mirrors-countme asaleh nphilipp
* python-mirrors-countme asaleh nphilipp
* python-mne          ankursinha ignatenkobrain
* python-mne          ankursinha ignatenkobrain
* python-mplcairo      qulogic
* python-mplcursors    qulogic
* python-mplcursors    qulogic
* python-nbconvert    churchyard jonathanspw lbalhar
* python-networkx      jjames plautrba
* python-nibabel      ankursinha ignatenkobrain
* python-nibabel      ankursinha ignatenkobrain
* python-nikola        jamatos maxamillion
* python-nikola        jamatos maxamillion
* python-notebook      churchyard ksurma lbalhar
* python-notebook      churchyard ksurma lbalhar
* python-oci          mhayden
* python-openapi-core  mattia music
* python-openapi-core  mattia music
* python-opentelemetry mhayden music pwouters rominf
* python-opentelemetry mhayden music pwouters rominf
* python-pandas        jonathanspw orion sergiopr
* python-papermill    ankursinha
* python-papermill    ankursinha
* python-paramiko      ignatenkobrain limb orion pghmcfc sgallagh
* python-paramiko      ignatenkobrain limb orion pghmcfc sgallagh
* python-parsel        jonathanspw
* python-parsel        jonathanspw
* python-photutils    sergiopr
* python-pem          mhayden
* python-pint          jcapitao lzachar mrunge
* python-pint          jcapitao lzachar mrunge
* python-prettytable  apevec clalance
* python-prettytable  apevec clalance
* python-primecountpy  jjames
* python-pycurl        jamacku kdudka lzaoral msekleta svashisht
* python-pydantic      gotmax23 music nikromen
* python-pydantic      gotmax23 music nikromen
* python-pyerfa        sergiopr
* python-pymeeus      fab
* python-pymeeus      fab
* python-pynetdicom    alciregi
* python-pynwb        lbazan
* python-pytest-bdd    music
* python-pysaml2      apevec
* python-pytest-cases  zbyszek
* python-pytest-cases  zbyszek
* python-pytest-cython jjames
* python-pytest-forked swt2c
* python-pytest-forked swt2c
* python-pytest-lazy-fixture ankursinha mikelo2
* python-pytest-lazy-fixture ankursinha mikelo2
Line 148: Line 139:
* python-pytest-postgresql mikelo2
* python-pytest-postgresql mikelo2
* python-pytest-relaxed jkucera
* python-pytest-relaxed jkucera
* python-pyvo          sergiopr
* python-pytest-xdist  swt2c
* python-qtsass       jonathanspw music
* python-qudida       thunderbirdtr
* python-rasterio      qulogic
* python-remoto        branto fsimonce jcaratzas ktdreyer
* python-remoto        branto fsimonce jcaratzas ktdreyer
* python-requests      abompard cstratak jcline sagarun
* python-requests      abompard cstratak jcline sagarun
* python-requests-credssp fab
* python-responses    athoscr fschwarz salimma
* python-responses    athoscr fschwarz salimma
* python-sentry-sdk    edward-evans-aiven elisre italomga nickfarrell pwouters rominf rommell
* python-sentry-sdk    edward-evans-aiven elisre italomga nickfarrell pwouters rominf rommell
* python-snakemake-executor-plugin-cluster-generic music
* python-service-identity carlwgeorge eclipseo
* python-snakemake-executor-plugin-cluster-sync music
* python-sybil        fab
* python-sybil        fab
* python-textual      jonathanspw
* python-textual      jonathanspw
* python-tox          cathay4t churchyard mrunge
* python-tpm2-pytss    jjelen
* python-trustme      carlwgeorge jcaratzas
* python-uranium      churchyard gferon
* python-uranium      churchyard gferon
* python-uvicorn      carlwgeorge
* python-uvicorn      carlwgeorge
* python-vine          frantisekz mrunge ngompa pingou
* python-vine          frantisekz mrunge ngompa pingou
* python-virtualenv    churchyard cstratak lbalhar mhayden mrunge orion
* python-virtualenv    churchyard cstratak lbalhar mhayden mrunge orion
* python-watchfiles    carlwgeorge
* python-werkzeug      abompard codeblock frantisekz hguemar tdawson
* python-werkzeug      abompard codeblock frantisekz hguemar tdawson
* python-willow        lyessaadi
* rpy                  alexlan jamatos
* rpy                  alexlan jamatos
* scipy                cstratak mmuzila nforro orion psimovec tomspur ttomecek
* scipy                cstratak mmuzila nforro orion psimovec tomspur ttomecek
* thefuck              principis
* thefuck              principis
* yt-dlp              gotmax23 mikelo2
* yubikey-manager      gbcox orion


Packages by maintainer:
Packages by maintainer:
* abompard  python-atpublic python-requests python-werkzeug
* abompard  python-atpublic python-requests python-werkzeug
* aekoroglu  python-django-extensions
* aekoroglu  python-django-extensions
* alciregi  python-pynetdicom
* alebastr  python-dbus-next
* alebastr  python-dbus-next
* alexlan    rpy
* alexlan    rpy
* ankursinha python-bluepyopt python-efel python-fslpy python-mne python-nibabel python-papermill python-pytest-lazy-fixture
* ankursinha python-bluepyopt python-efel python-fslpy python-mne python-nibabel python-papermill python-pytest-lazy-fixture
* apevec    python-prettytable
* apevec    python-prettytable python-pysaml2
* asaleh    python-mirrors-countme
* asaleh    python-mirrors-countme
* athoscr    python-responses
* athoscr    python-responses
Line 182: Line 176:
* branto    python-remoto
* branto    python-remoto
* brouhaha  python-ecdsa
* brouhaha  python-ecdsa
* carlwgeorge python-curio python-uvicorn python-watchfiles
* carlwgeorge python-service-identity python-trustme python-uvicorn
* cathay4t  python-tox
* churchyard httpie ipython mu python-attrs python-ipykernel python-notebook python-uranium python-virtualenv
* chedi      python-ansible-compat
* churchyard httpie ipython mu python-attrs python-flaky python-ipykernel python-jupyter-client python-nbconvert python-notebook python-tox python-uranium python-virtualenv
* clalance  python-prettytable
* clalance  python-prettytable
* codeblock  httpie python-werkzeug
* codeblock  httpie python-werkzeug
* cottsay    python-dirhash
* cottsay    python-dirhash
* cstratak  ipython python-requests python-virtualenv scipy
* cstratak  ipython python-boto3 python-requests python-virtualenv scipy
* davdunc    awscli2
* dcavalca  python-chalice python-mathics-pygments
* dcavalca  python-mathics-pygments
* dustymabe  cloud-init
* dustymabe  cloud-init
* eclipseo  python-graphviz
* eclipseo  python-graphviz python-service-identity
* edward-evans-aiven python-sentry-sdk
* edward-evans-aiven python-sentry-sdk
* ekohl      git-up
* ekohl      git-up
* elisre    python-sentry-sdk
* elisre    python-sentry-sdk
* fab        python-kombu python-marshmallow-enum python-pymeeus python-sybil
* fab        python-kombu python-marshmallow-enum python-pymeeus python-requests-credssp python-sybil
* fale      python-boto3
* frantisekz python-alembic python-kombu python-vine python-werkzeug
* frantisekz python-alembic python-kombu python-vine python-werkzeug
* frostyx    copr-backend copr-rpmbuild
* frostyx    copr-backend copr-frontend copr-rpmbuild
* fschwarz  python-responses
* fschwarz  python-responses
* fsimonce  python-remoto
* fsimonce  python-remoto
* gbcox      yubikey-manager
* gferon    python-uranium
* gferon    python-uranium
* gholms    cloud-init
* gholms    cloud-init
* gnat      clamav
* gotmax23  python-pydantic yt-dlp
* gordonmessmer pyp2rpm
* gotmax23  python-ansible-compat python-pydantic
* gui1ty    python-lsp-server
* hguemar    python-werkzeug
* hguemar    python-werkzeug
* ignatenkobrain ipython python-mne python-nibabel python-paramiko
* ignatenkobrain ipython python-mne python-nibabel python-paramiko
* italomga  python-sentry-sdk
* italomga  python-sentry-sdk
* iztokf    cffconvert
* iztokf    cffconvert python-earthpy
* jamacku    python-pycurl
* jamatos    python-nikola rpy
* jamatos    python-nikola rpy
* jcapitao  python-pint
* jcapitao  python-pint
* jcaratzas  python-remoto
* jcaratzas  python-remoto python-trustme
* jcline    python-requests
* jcline    python-requests
* jjames    python-primecountpy python-pytest-cython
* jjames    python-networkx
* jjelen    python-tpm2-pytss
* jkucera    python-pytest-relaxed
* jkucera    python-pytest-relaxed
* jonathanspw python-atpublic python-ecdsa python-lsp-server python-nbconvert python-pandas python-parsel python-qtsass python-textual
* jonathanspw python-atpublic python-ecdsa python-parsel python-textual
* jujens    python-glob2
* jujens    python-glob2
* kdudka    python-pycurl
* kevin      fedmsg python-cssutils
* kevin      fedmsg pyp2rpm python-ansible-compat python-cssutils
* ksurma    python-notebook
* ksurma    python-notebook
* ktdreyer  python-remoto
* ktdreyer  python-remoto
Line 228: Line 217:
* kwizart    python-aiohttp-cors
* kwizart    python-aiohttp-cors
* larsks    cloud-init
* larsks    cloud-init
* lbalhar    ipython micropipenv python-attrs python-ipywidgets python-jupyter-server python-nbconvert python-notebook python-virtualenv
* lbalhar    ipython python-attrs python-ipywidgets python-notebook python-virtualenv
* limb      python-paramiko
* lbazan    python-pynwb
* limb      python-boto3 python-paramiko
* lyessaadi  python-willow
* lzachar    python-pint
* lzachar    python-pint
* lzaoral    python-pycurl
* mairacanal python-graphviz
* mairacanal python-graphviz
* marcindulak python-ase
* marcindulak python-ase
* mattia    python-openapi-core
* mattia    python-openapi-core
* maxamillion python-nikola
* maxamillion python-nikola
* mhayden    cloud-init python-lexicon python-opentelemetry python-virtualenv
* mhayden    cloud-init python-lexicon python-oci python-opentelemetry python-pem python-virtualenv
* mikelo2    httpie pg_activity python-pytest-lazy-fixture python-pytest-postgresql
* mikelo2    httpie pg_activity python-pytest-lazy-fixture python-pytest-postgresql yt-dlp
* mmassari  python-APScheduler
* mmuzila    scipy
* mmuzila    scipy
* mrunge    ipython python-kombu python-pint python-tox python-vine python-virtualenv
* mrunge    ipython python-kombu python-pint python-vine python-virtualenv
* msekleta  python-pycurl
* msuchy    copr-backend copr-frontend
* mstevens  clamav
* music      jrnl python-aws-sam-translator python-openapi-core python-opentelemetry python-pydantic
* msuchy    copr-backend python-flask-whooshee
* nb        python-josepy
* music      jrnl python-aws-sam-translator python-openapi-core python-opentelemetry python-pydantic python-pytest-bdd python-qtsass python-snakemake-executor-plugin-cluster-generic python-snakemake-executor-plugin-cluster-sync
* nforro    scipy
* nb        clamav
* nforro    awscli2 scipy
* ngompa    python-django-extensions python-kombu python-vine
* ngompa    python-django-extensions python-kombu python-vine
* nickfarrell python-sentry-sdk
* nickfarrell python-sentry-sdk
* nikromen  python-pydantic
* nikromen  python-pydantic
* nphilipp  python-mirrors-countme
* nphilipp  python-mirrors-countme
* orion      clamav conda-build h5py python-astropy python-ecdsa python-pandas python-paramiko python-pytest-mpi python-virtualenv scipy
* orion      h5py python-astropy python-ecdsa python-paramiko python-pytest-mpi python-virtualenv scipy yubikey-manager
* orphan    container-workflow-tool
* otubo      cloud-init
* otubo      cloud-init
* pcpa      python-ipykernel
* pcpa      python-ipykernel
Line 257: Line 245:
* pingou    python-kombu python-vine
* pingou    python-kombu python-vine
* pjp        python-kombu
* pjp        python-kombu
* praiskup  copr-backend copr-rpmbuild
* plautrba  python-networkx
* praiskup  copr-backend copr-frontend copr-rpmbuild
* principis  thefuck
* principis  thefuck
* psimovec  scipy
* psimovec  scipy
* pwouters  clamav python-opentelemetry python-sentry-sdk
* pwouters  python-opentelemetry python-sentry-sdk
* qulogic    python-jupyter-console python-mplcairo python-mplcursors
* qulogic    python-contextily python-fiona python-geopandas python-geoplot python-libpysal python-mapclassify python-mplcursors python-rasterio
* rathann    python-hid-parser
* rathann    python-hid-parser
* robert    clamav
* rominf    python-opentelemetry python-sentry-sdk
* rominf    python-opentelemetry python-sentry-sdk
* rommell    python-sentry-sdk
* rommell    python-sentry-sdk
* sagarun    python-requests
* sagarun    python-requests
* salimma    ipython python-django-extensions python-responses
* salimma    ipython python-django-extensions python-responses
* sergiomb  clamav
* sergiopr  python-astropy
* sergiopr  python-astroML python-astropy python-pandas python-photutils python-pyerfa python-pyvo
* sgallagh  python-paramiko
* sgallagh  python-paramiko
* steve      clamav
* stevetraylen h5py
* stevetraylen h5py
* svashisht  python-pycurl
* swt2c      python-pytest-forked python-pytest-xdist
* swt2c      python-pytest-forked
* tdawson    python-werkzeug
* tdawson    python-werkzeug
* terjeros  h5py
* terjeros  h5py
* thrnciar  python-fastjsonschema
* thrnciar  python-fastjsonschema
* tomspur    ipython python-jupyter-client scipy
* thunderbirdtr python-qudida
* tomspur    ipython scipy
* ttomecek  scipy
* ttomecek  scipy
* zbyszek    pyinstrument python-pytest-cases
* zbyszek    python-pytest-cases
* zuul      python-APScheduler


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 334: Line 321:


== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
There is a clean upgrade path from current version to pytest 8.x.x. Fedora users using RPM-packaged Pytest will use Pytest 8.x.x by default.  
There is a clean upgrade path from current version to pytest 8.x.x. Fedora users using RPM-packaged Pytest will use pytest 8.x.x by default.  
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->


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


== How To Test ==
== How To Test ==
Line 358: Line 344:
* Find the package you want to update in this [https://copr.fedorainfracloud.org/coprs/thrnciar/pytest/packages/ copr repository] and check the build logs to determine the fail cause.
* Find the package you want to update in this [https://copr.fedorainfracloud.org/coprs/thrnciar/pytest/packages/ copr repository] and check the build logs to determine the fail cause.
* Work with the upstream to resolve the issue.
* Work with the upstream to resolve the issue.
* When updating the package, you can test it using the same copr repository where the latest version of Pytest has been built.
* When updating the package, you can test it using the same copr repository where the latest version of pytest has been built.
* Let us know if something doesn't work as it should.
* Let us know if something doesn't work as it should.


Line 372: Line 358:
  - Green has been scientifically proven to be the most relaxing color. The move to a default background color of green with green text will result in Fedora users being the most relaxed users of any operating system.
  - Green has been scientifically proven to be the most relaxing color. The move to a default background color of green with green text will result in Fedora users being the most relaxed users of any operating system.
-->
-->
Regular distro users shouldn't notice any change in Pytest behaviour, except for packages using removed functions. Such packages will fail and should be fixed by their maintainers.
Regular distro users shouldn't notice any change in pytest behaviour, except for packages using removed functions. Such packages will fail and should be fixed by their maintainers.


== Contingency Plan ==
== Contingency Plan ==


<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "Revert the shipped configuration".  Or it might not (e.g. rebuilding a number of dependent packages).  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
* Contingency mechanism: (What to do?  Who will do it?) N/A (not a System Wide Change)  <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency mechanism: (What to do?  Who will do it?) Proposal owners will introduce a pytest7 compatibility package. <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
<!-- When is the last time the contingency mechanism can be put in place?  This will typically be the beta freeze. -->
* Contingency deadline: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Contingency deadline: beta freeze <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
<!-- Does finishing this feature block the release, or can we ship with the feature in incomplete state? -->
* Blocks release? N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Blocks release? N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->

Latest revision as of 14:26, 14 October 2024

Pytest 8

Summary

Update to a new upstream release of pytest that is not completely compatible with previous releases. Pytest 8 is a major upstream release removing a lot of deprecated functions and introducing breaking changes.

Owner


Current status

Detailed Description

Pytest is a popular Python framework for writing tests. The 8th major release brings various improvements. The most notable enhancements are:

  • The diffs that pytest prints when an assertion fails were improved.
  • Added the new verbosity_assertions configuration option for fine-grained control of failed assertions verbosity.
  • Additional support for exception groups and __notes__
  • custom directory collectors
  • “new-style” hook wrappers are now used internally

Breaking changes:

  • PytestRemovedIn8Warning deprecation warnings are now errors by default
  • Several breaking changes to pytest’s collection phase, particularly around how filesystem directories and Python packages are collected, fixing deficiencies and allowing for cleanups and improvements to pytest’s internals.
  • Sanitized the handling of the default parameter when defining configuration options
  • pytest’s setup.py file is removed
  • warns() now re-emits unmatched warnings when the context closes – previously it would consume all warnings, hiding those that were not matched by the function
  • The internal FixtureManager.getfixtureclosure method has changed. Plugins which use this method or which subclass FixtureManager and overwrite that method will need to adapt to the change.

List of packages that will likely fail to build.

Maintainers by package:

  • cffconvert iztokf
  • cloud-init dustymabe gholms larsks mhayden otubo
  • copr-backend frostyx msuchy praiskup
  • copr-frontend frostyx msuchy praiskup
  • copr-rpmbuild frostyx praiskup
  • fedmsg kevin
  • git-up ekohl
  • h5py orion stevetraylen terjeros
  • httpie churchyard codeblock mikelo2
  • ipython churchyard cstratak ignatenkobrain lbalhar mrunge salimma tomspur
  • jrnl music
  • mu churchyard kushal
  • pg_activity mikelo2
  • python-APScheduler mmassari zuul
  • python-aiohttp-cors kwizart
  • python-alembic frantisekz
  • python-ase besser82 marcindulak
  • python-astropy orion sergiopr
  • python-atpublic abompard jonathanspw
  • python-attrs churchyard lbalhar
  • python-aws-sam-translator music
  • python-bluepyopt ankursinha
  • python-boto3 cstratak fale limb
  • python-chalice dcavalca
  • python-contextily qulogic
  • python-cssutils kevin
  • python-dbus-next alebastr
  • python-dirhash cottsay
  • python-django-extensions aekoroglu ngompa salimma
  • python-earthpy iztokf
  • python-ecdsa brouhaha jonathanspw orion
  • python-efel ankursinha
  • python-fastjsonschema thrnciar
  • python-fiona qulogic
  • python-fslpy ankursinha
  • python-geopandas qulogic
  • python-geoplot qulogic
  • python-glob2 jujens
  • python-graphviz eclipseo mairacanal
  • python-hid-parser rathann
  • python-ipykernel churchyard pcpa
  • python-ipywidgets lbalhar
  • python-josepy nb
  • python-kombu fab frantisekz mrunge ngompa pingou pjp
  • python-lexicon mhayden pghmcfc
  • python-libpysal qulogic
  • python-mapclassify qulogic
  • python-marshmallow-enum fab
  • python-mathics-pygments dcavalca
  • python-mirrors-countme asaleh nphilipp
  • python-mne ankursinha ignatenkobrain
  • python-mplcursors qulogic
  • python-networkx jjames plautrba
  • python-nibabel ankursinha ignatenkobrain
  • python-nikola jamatos maxamillion
  • python-notebook churchyard ksurma lbalhar
  • python-oci mhayden
  • python-openapi-core mattia music
  • python-opentelemetry mhayden music pwouters rominf
  • python-papermill ankursinha
  • python-paramiko ignatenkobrain limb orion pghmcfc sgallagh
  • python-parsel jonathanspw
  • python-pem mhayden
  • python-pint jcapitao lzachar mrunge
  • python-prettytable apevec clalance
  • python-pydantic gotmax23 music nikromen
  • python-pymeeus fab
  • python-pynwb lbazan
  • python-pysaml2 apevec
  • python-pytest-cases zbyszek
  • python-pytest-forked swt2c
  • python-pytest-lazy-fixture ankursinha mikelo2
  • python-pytest-mpi orion
  • python-pytest-postgresql mikelo2
  • python-pytest-relaxed jkucera
  • python-pytest-xdist swt2c
  • python-qudida thunderbirdtr
  • python-rasterio qulogic
  • python-remoto branto fsimonce jcaratzas ktdreyer
  • python-requests abompard cstratak jcline sagarun
  • python-requests-credssp fab
  • python-responses athoscr fschwarz salimma
  • python-sentry-sdk edward-evans-aiven elisre italomga nickfarrell pwouters rominf rommell
  • python-service-identity carlwgeorge eclipseo
  • python-sybil fab
  • python-textual jonathanspw
  • python-tpm2-pytss jjelen
  • python-trustme carlwgeorge jcaratzas
  • python-uranium churchyard gferon
  • python-uvicorn carlwgeorge
  • python-vine frantisekz mrunge ngompa pingou
  • python-virtualenv churchyard cstratak lbalhar mhayden mrunge orion
  • python-werkzeug abompard codeblock frantisekz hguemar tdawson
  • python-willow lyessaadi
  • rpy alexlan jamatos
  • scipy cstratak mmuzila nforro orion psimovec tomspur ttomecek
  • thefuck principis
  • yt-dlp gotmax23 mikelo2
  • yubikey-manager gbcox orion

Packages by maintainer:

  • abompard python-atpublic python-requests python-werkzeug
  • aekoroglu python-django-extensions
  • alebastr python-dbus-next
  • alexlan rpy
  • ankursinha python-bluepyopt python-efel python-fslpy python-mne python-nibabel python-papermill python-pytest-lazy-fixture
  • apevec python-prettytable python-pysaml2
  • asaleh python-mirrors-countme
  • athoscr python-responses
  • besser82 python-ase
  • branto python-remoto
  • brouhaha python-ecdsa
  • carlwgeorge python-service-identity python-trustme python-uvicorn
  • churchyard httpie ipython mu python-attrs python-ipykernel python-notebook python-uranium python-virtualenv
  • clalance python-prettytable
  • codeblock httpie python-werkzeug
  • cottsay python-dirhash
  • cstratak ipython python-boto3 python-requests python-virtualenv scipy
  • dcavalca python-chalice python-mathics-pygments
  • dustymabe cloud-init
  • eclipseo python-graphviz python-service-identity
  • edward-evans-aiven python-sentry-sdk
  • ekohl git-up
  • elisre python-sentry-sdk
  • fab python-kombu python-marshmallow-enum python-pymeeus python-requests-credssp python-sybil
  • fale python-boto3
  • frantisekz python-alembic python-kombu python-vine python-werkzeug
  • frostyx copr-backend copr-frontend copr-rpmbuild
  • fschwarz python-responses
  • fsimonce python-remoto
  • gbcox yubikey-manager
  • gferon python-uranium
  • gholms cloud-init
  • gotmax23 python-pydantic yt-dlp
  • hguemar python-werkzeug
  • ignatenkobrain ipython python-mne python-nibabel python-paramiko
  • italomga python-sentry-sdk
  • iztokf cffconvert python-earthpy
  • jamatos python-nikola rpy
  • jcapitao python-pint
  • jcaratzas python-remoto python-trustme
  • jcline python-requests
  • jjames python-networkx
  • jjelen python-tpm2-pytss
  • jkucera python-pytest-relaxed
  • jonathanspw python-atpublic python-ecdsa python-parsel python-textual
  • jujens python-glob2
  • kevin fedmsg python-cssutils
  • ksurma python-notebook
  • ktdreyer python-remoto
  • kushal mu
  • kwizart python-aiohttp-cors
  • larsks cloud-init
  • lbalhar ipython python-attrs python-ipywidgets python-notebook python-virtualenv
  • lbazan python-pynwb
  • limb python-boto3 python-paramiko
  • lyessaadi python-willow
  • lzachar python-pint
  • mairacanal python-graphviz
  • marcindulak python-ase
  • mattia python-openapi-core
  • maxamillion python-nikola
  • mhayden cloud-init python-lexicon python-oci python-opentelemetry python-pem python-virtualenv
  • mikelo2 httpie pg_activity python-pytest-lazy-fixture python-pytest-postgresql yt-dlp
  • mmassari python-APScheduler
  • mmuzila scipy
  • mrunge ipython python-kombu python-pint python-vine python-virtualenv
  • msuchy copr-backend copr-frontend
  • music jrnl python-aws-sam-translator python-openapi-core python-opentelemetry python-pydantic
  • nb python-josepy
  • nforro scipy
  • ngompa python-django-extensions python-kombu python-vine
  • nickfarrell python-sentry-sdk
  • nikromen python-pydantic
  • nphilipp python-mirrors-countme
  • orion h5py python-astropy python-ecdsa python-paramiko python-pytest-mpi python-virtualenv scipy yubikey-manager
  • otubo cloud-init
  • pcpa python-ipykernel
  • pghmcfc python-lexicon python-paramiko
  • pingou python-kombu python-vine
  • pjp python-kombu
  • plautrba python-networkx
  • praiskup copr-backend copr-frontend copr-rpmbuild
  • principis thefuck
  • psimovec scipy
  • pwouters python-opentelemetry python-sentry-sdk
  • qulogic python-contextily python-fiona python-geopandas python-geoplot python-libpysal python-mapclassify python-mplcursors python-rasterio
  • rathann python-hid-parser
  • rominf python-opentelemetry python-sentry-sdk
  • rommell python-sentry-sdk
  • sagarun python-requests
  • salimma ipython python-django-extensions python-responses
  • sergiopr python-astropy
  • sgallagh python-paramiko
  • stevetraylen h5py
  • swt2c python-pytest-forked python-pytest-xdist
  • tdawson python-werkzeug
  • terjeros h5py
  • thrnciar python-fastjsonschema
  • thunderbirdtr python-qudida
  • tomspur ipython scipy
  • ttomecek scipy
  • zbyszek python-pytest-cases
  • zuul python-APScheduler

Benefit to Fedora

Fedora offers cutting-edge technologies for Python and pytest is one of the most important Python packages. By doing this update we bring users the latest features that pytest offers and also we enable Fedora 41 to receive future updates as well.

Scope

  • Proposal owners: update pytest to 8.x.x, provide help
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives:

Upgrade/compatibility impact

There is a clean upgrade path from current version to pytest 8.x.x. Fedora users using RPM-packaged Pytest will use pytest 8.x.x by default.


How To Test

  • Find the package you want to update in this copr repository and check the build logs to determine the fail cause.
  • Work with the upstream to resolve the issue.
  • When updating the package, you can test it using the same copr repository where the latest version of pytest has been built.
  • Let us know if something doesn't work as it should.

User Experience

Regular distro users shouldn't notice any change in pytest behaviour, except for packages using removed functions. Such packages will fail and should be fixed by their maintainers.

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) Proposal owners will introduce a pytest7 compatibility package.
  • Contingency deadline: beta freeze
  • Blocks release? N/A (not a System Wide Change)

Documentation

Pytest changelog

This page is the documentation.

Release Notes