Wiki - https://fedoraproject.org/wiki/Changes/FlatpaksNoPpc64le
Discussion Thread -
https://discussion.fedoraproject.org/t/f42-change-proposal-stop-building-fl…
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 ==
We will stop building the Fedora Flatpak runtimes and applications for
the PowerPC 64 LE architecture.
Users of Flatpaks on ppc64le will have to switch back to the
corresponding Fedora RPM package.
== Owner ==
* Name: [[User:yselkowitz| Yaakov Selkowitz]]
* Email: yselkowitz(a)fedoraproject.org
== Detailed Description ==
Flatpaks were enabled for ppc64le as of Fedora 39 because the Atomic
Desktops were available thereon and were going to include flatpak
versions of applications in their ISOs rather than as RPMs inside of
the ostree. (Fedora 39 was also the first version where building
flatpaks for ppc64le was feasible, as previous versions relied on
different tooling which used OSBS to build images.) However, flatpak
builds on ppc64le have been consistently slower than x86_64 and
aarch64, and a significant number of applications cannot be built on
ppc64le (for example, anything based on QtWebEngine).
With Atomic Desktops for ppc64le being proposed for removal in a
separate Change, and extremely few overall users of any desktop
variants on this architecture (per discussion on said change), there
would appear to be no further need for Flatpaks to be built for
ppc64le either.
== Feedback ==
None so far.
== Benefit to Fedora ==
Not building for ppc64le means faster builds, less infrastructure
load, and less maintenance. We can focus on the architectures where
hardware is more easily available and where we have a lot of users
already (i.e. x86_64 and aarch64).
== Scope ==
* Proposal owners: Remove the ppc64le architecture from
flatpak-runtime-scripts, and create PRs for releng changes.
* Other developers: N/A
* Release engineering: [https://pagure.io/releng/issue/12517 #12517]
* 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 ==
Users of Flatpaks on ppc64le will have to switch back to installing
the RPM in a package mode installation, or adding packages to their
own images using Bootable Containers which are available for ppc64le.
Note that this change is only about the Flatpak runtime and
application images and thus all the RPM packages will still be
available.
== Early Testing (Optional) ==
N/A
== How To Test ==
N/A
== User Experience ==
N/A
== Dependencies ==
[[Changes/AtomicDesktopsNoPpc64le]]
== Contingency Plan ==
* Contingency mechanism: (What to do? Who will do it?) No change will
be made, and Flatpaks will continue to be built for ppc64le.
* Contingency deadline: Final freeze
* Blocks release? No
== Documentation ==
Fedora Flatpaks are no longer built for the PowerPC 64 LE architecture.
== Release Notes ==
Fedora Flatpaks are no longer built for the PowerPC 64 LE architecture.
--
Aoife Moloney
Fedora Operations Architect
Fedora Project
Matrix: @amoloney:fedora.im
IRC: amoloney
Wiki - https://fedoraproject.org/wiki/Changes/Retire_PyO3_v0.19,_v0.20,_and_v0.21
Discussion Thread -
https://discussion.fedoraproject.org/t/f42-change-proposal-retire-py03-v0-1…
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 Rust SIG currently maintains five (5) versions of PyO3, the Rust
bindings for CPython / PyPy. This proposal is about dropping the three
oldest versions (v0.19, v0.20, and v0.21), while keeping the two most
recent ones (v0.22, v0.23).
== Owner ==
* Name: [[User:Decathorpe| Fabio Valentini]] for the Rust SIG
* Email: decathorpe (at) gmail (dot) com
* Name: [[User:Salimma | Michel Lind]]
== Detailed Description ==
Old branches of PyO3 are not guaranteed to keep working with newer
versions of CPython due to API and / or ABI changes (for interfaces
outside the "Limited API"). PyO3 upstream also does not backport
bugfixes to older branches - so we cannot maintain old branches of
PyO3 downstream indefinitely.
The number of Python packages that depend on these three old versions
is already small, and all of them either already have stable releases
with support for PyO3 v0.22+, or have pull requests for porting to
PyO3 v0.22+ that are being worked on:
* pyo3 v0.19:
** python-pendulum: already ported to pyo3 v0.22
[https://github.com/python-pendulum/pendulum/commit/483443a upstream],
not yet part of a release
** python-watchfiles: already ported to pyo3 v0.23 in
[https://github.com/samuelcolvin/watchfiles/releases/tag/v1.0.0
version 1.0.0 and later], which also add support for the free-threaded
Python interpreter
* pyo3 v0.20:
** python-bcrypt: already ported to pyo3 v0.22+ in
[https://github.com/pyca/bcrypt/commit/ab0dc11 version 4.2.0 and
later]
** python-libcst: [https://github.com/Instagram/LibCST/pull/1180
work-in-progress port] to pyo3 v0.22
* pyo3 v0.21:
** fapolicy-analyzer:
[https://github.com/ctc-oss/fapolicy-analyzer/pull/1027
work-in-progress port] to pyo3 v0.22
== Feedback ==
N/Y
== Benefit to Fedora ==
Dropping support for old versions of PyO3 pushes dependent Python
projects to use versions of PyO3 that officially support the latest
CPython versions. Ongoing maintenance cost for removed old versions is
eliminated, resulting in less work for members of the Rust SIG, and
fewer old packages in Fedora.
== Scope ==
* Proposal owners:
Retire the following packages:
rust-pyo3_0.19
rust-pyo3-build-config0.19
rust-pyo3-ffi0.19
rust-pyo3-macros0.19
rust-pyo3-macros-backend0.19
rust-pyo3_0.20
rust-pyo3-build-config0.20
rust-pyo3-ffi0.20
rust-pyo3-macros0.20
rust-pyo3-macros-backend0.20
rust-pyo3_0.21
rust-pyo3-build-config0.21
rust-pyo3-ffi0.21
rust-pyo3-macros0.21
rust-pyo3-macros-backend0.21
Rust SIG members can provide Pull Requests for updating dependent
Python packages to versions that bump the PyO3 dependency to v0.22 or
later, or backporting upstream changes if they have not yet been
released.
* Other developers:
Maintainers of affected Python packages (or Python Packagers SIG
members) need to update affected packages and / or merge Pull
Requests.
* Release engineering:
N/A
* Policies and guidelines:
N/A (not needed for this Change)
* Trademark approval:
N/A (not needed for this Change)
* Alignment with the Fedora Strategy:
Maybe?
== Upgrade/compatibility impact ==
Native Python extensions built using PyO3 / Rust are statically
linked, and do not pull in Rust libraries at install. The packages
that are retired as part of this Change are not installed on user
systems.
== How To Test ==
Dependent Python packages should continue to work fine when updated
and / or built with PyO3 v0.22 or v0.23.
There should be no packages in the Fedora repositories that pull in
older versions (v0.21, v0.20, or v0.19).
== User Experience ==
Building these Python extensions with recent versions of PyO3 should
improve support for the latest versions of CPython, including official
support for Python 3.13+ and / or support for running on a
free-threaded Python interpreter.
== Dependencies ==
Affected Python packages:
* fapolicy-analyzer
* python-bcrypt
* python-libcst
* python-pendulum
* python-watchfiles
== Contingency Plan ==
* Contingency mechanism:
If any dependent package cannot be updated and / or ported to use PyO3
v0.22+, the retirement for the respective PyO3 packages can be
postponed to a later release of Fedora.
* Contingency deadline:
Final Freeze.
* Blocks release?
N/A (not a System Wide Change)
== Documentation ==
* [https://github.com/PyO3/pyo3/releases/tag/v0.22.0 PyO3 0.22 Release Notes]
* [https://github.com/PyO3/pyo3/releases/tag/v0.23.0 PyO3 0.23 Release Notes]
== Release Notes ==
The packages for obsolete versions of PyO3 (v0.21, v0.20, and v0.19),
the Rust bindings for CPython and PyPy, were removed from Fedora. All
Python packages that contain native Python extensions written in Rust
are now built with PyO3 v0.22 or later, bringing official support for
Python 3.13 and / or support for running on a "free-threaded" Python
interpreter.
--
Aoife Moloney
Fedora Operations Architect
Fedora Project
Matrix: @amoloney:fedora.im
IRC: amoloney
Wiki - https://fedoraproject.org/wiki/Changes/DeprecateSTI
Discussion Thread -
https://discussion.fedoraproject.org/t/f42-change-proposal-deprecation-of-s…
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 ==
Display a deprecation warning for Fedora 41 for all STI tests.
Deprecate execution of STI tests in all CI pipelines for Fedora 42.
* CI for bodhi updates
* CI for dist-git pull requests
All users of STI tests will need to
[https://tmt.readthedocs.io/en/stable/questions.html#how-do-i-migrate-sti-te…
migrate to the new tmt format].
'''The change will affect 281 components'''. The list of components
affected can be found via
[https://sourcegraph.com/search?q=context:global+repo:src.fedoraproject.org+…
this sourcegraph query].
All references to STI will be removed from the Fedora CI documentation.
== Owner ==
* Name: [[User:mvadkert| Miroslav Vadkerti]], [[User:lecris| Cristian Le]],
* Email: mvadkert(a)redhat.com, fedora(a)lecris.me
== Detailed Description ==
For some time CI testing in Fedora can be defined using two different formats:
* Standard Test Interface (STI)
* Test Management Tool (tmt)
As tmt has matured to a state it can fully replace the STI
functionality, we are proposing to drop STI as the supported format.
STI format is not actively developed and is causing us a maintenance
burden. More and more STI test failures are starting to appear as the
Fedora packages evolve out of sync with the test scripts.
Tmt provides various advantages over STI that would make it easier to
manage in the long term:
* Better organization of `tests` and test environments (referred to as
`plans` in tmt)
* Local reproducible environment thanks to testing-farm reproducer
script, allowing to thinker locally without pushing to dist-git
* Tests can be defined in the local dist-git repo, inside the srpm
archive, [https://src.fedoraproject.org/projects/tests/%2A `tests/*`]
dist-git namespace, or in the upstream repo, allowing it to be reused
more freely between packages and with upstream directly
* Tmt tests are integrated with packit allowing it to be executed with
upstream and better migrate to the new dist-git environment
Hopefully this list can help inspire some better ways of reorganizing
the tests during the migration.
== Feedback ==
== Benefit to Fedora ==
Having two formats for executing the tests is an unnecessary
duplication and causes confusion for the Fedora maintainers and
community.
STI tests have limited functionality and are harder to develop and
maintain, when compared to tmt.
== Scope ==
* Proposal owners: [[User:mvadkert| Miroslav Vadkerti]],
[[User:lecris| Cristian Le]]
* Other developers:
* Release engineering: [https://pagure.io/releng/issues #Releng issue number]
* Policies and guidelines: N/A (not needed for this Change)
* Trademark approval: N/A (not needed for this Change)
* Alignment with the Fedora Strategy:
== Upgrade/compatibility impact ==
This is a change to the development experience, no changes to Fedora
distribution are made.
== How To Migrate ==
To find out if you package has STI tests, check if `tests/tests*.yml`
files are present in your dist-git repository.
Follow the [https://tmt.readthedocs.io/en/stable/questions.html#how-do-i-migrate-sti-te…
sti to tmt migration guide]. For the majority of tests involve just
executing the already provided script you only need to:
1. Initialize `tmt` structure using `tmt init`
2. Create a minimal plan
<pre>
# /plan.fmf
# Boilerplate to indicate tmt to run any tests files it finds in the repo
discover:
how: fmf
execute:
how: tmt
# Prepare test environment, e.g. install packages
# Note: the current packages in the spec file will already be
installed by default
prepare:
how: install
packages:
- foo
- bar
</pre>
3. Migrate individual tests
<pre>
# /tests/foo.fmf
test: ./foo.sh
</pre>
For more complex needs feel free to discuss in the
[https://matrix.to/#/#fedora-ci:fedoraproject.org `#fedora-ci`] or
[https://matrix.to/#/#tmt:fedoraproject.org `#tmt`] matrix channels.
You can also explore
[https://sourcegraph.com/search?q=context:global+repo:src.fedoraproject.org/…
other project's tmt tests] (identified by having a `.fmf` folder)
using `tmt tests show` and `tmt plans show`
== User Experience ==
For Fedora 41 users will be presented with a deprecation warning in
the Testing Farm artifacts.
For Fedora 42 users who have setup gating on STI tests will be
obligated to migrate to be able to push their packages to stable
repositories.
== Dependencies ==
N/A
== Contingency Plan ==
* Contingency mechanism: N/A (not a System Wide Change)
* Contingency deadline: N/A (not a System Wide Change)
* Blocks release? No (not a System Wide Change)
We will keep the STI support until all references to STI tests are
gone in case all users have not migrated to tmt until Fedora 42. See
the description for the list of the affected components.
== Documentation ==
* [https://tmt.readthedocs.io/en/stable/questions.html#how-do-i-migrate-sti-te…
How to migrate STI tests to tmt]
* [https://src.fedoraproject.org/tests/python/tree/main Example test
repo implemented in both STI and tmt format] (see for example the
`smoke/venv.fmf` file and `smoke_default` test in `tests.yml` file)
* [https://tmt.readthedocs.io/en/stable/spec.html Tmt specs]
(reference for the available keys defining `plans` or `tests`)
* Example project with shared
[https://github.com/containers/aardvark-dnsupstream]+[https://src.fedoraproject.org/rpms/aardvark-dns downstream]
tests
== Release Notes ==
--
Aoife Moloney
Fedora Operations Architect
Fedora Project
Matrix: @amoloney:fedora.im
IRC: amoloney
Wiki - https://fedoraproject.org/wiki/Changes/DeprecatePythonPytestRunner
Discussion Thread -
https://discussion.fedoraproject.org/t/f42-change-proposal-deprecate-python…
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 {{package|python-pytest-runner}}
({{package|python3-pytest-runner}}) package will be
[https://docs.fedoraproject.org/en-US/packaging-guidelines/deprecating-packa…
deprecated] in [https://docs.fedoraproject.org/en-US/releases/f42/
Fedora Linux 42]. Dependent packages are encouraged to switch to using
`pytest` directly.
== Owner ==
* Name: [[User:salimma|Michel Lind]], [[User:music|Ben Beasley]]
* Email: michel(a)michel-slm.name, code(a)musicinmybrain.net
== Detailed Description ==
pytest-runner has been considered
[https://github.com/pytest-dev/pytest-runner/commit/78a492cb9f611a4fccaf6556…
deprecated upstream since 2019]
and the repo upstream was archived over a year ago (December 3, 2023).
Per upstream,
{{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`.
See also https://github.com/pypa/setuptools/issues/1684.
|source=pytest-runner github|}}
=== 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 {{package|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 ==
<code>
$ fedrq pkgs python3-pytest-runner -F provides | grep deprecated
deprecated()
</code>
== 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)
== Documentation ==
N/A (not a System Wide Change)
== Release Notes ==
--
Aoife Moloney
Fedora Operations Architect
Fedora Project
Matrix: @amoloney:fedora.im
IRC: amoloney