No edit summary |
m (Mvadkert moved page Changes/DeprecateSTI to Changes/DisableSTI: Renamed to disablement) |
||
(23 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
= Disablement of STI tests = | |||
{{ | {{Change_Proposal_Banner}} | ||
== Summary == | |||
Drop support for Standard Test Interface (STI) tests in Fedora CI and Zuul CI for Fedora 43 and later. | |||
For Fedora 43 and later: | |||
* STI tests will not be run | |||
For EPEL: | |||
* keep running STI tests for EPEL dist-git pull requests until Fedora 43 branch date. | |||
* STI tests have not been included in Bodhi updates, and support for it will not be added. | |||
For Fedora 42 and earlier: | |||
* keep running the STI tests in both dist-git and Bodhi updates. | |||
All users of STI tests will need to [https://tmt.readthedocs.io/en/stable/questions.html#how-do-i-migrate-sti-tests-to-tmt migrate to the new tmt format] during the Fedora 43 development. | |||
* | '''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+file:tests/tests*%5C.yml%24+&patternType=keyword&sm=0 this sourcegraph query]. | ||
All | All references to STI will be removed from the Fedora CI documentation. | ||
== Owner == | == Owner == | ||
Line 25: | Line 28: | ||
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:mvadkert| Miroslav Vadkerti]], [[User:lecris| Cristian Le]] | * Name: [[User:mvadkert| Miroslav Vadkerti]], [[User:lecris| Cristian Le]] | ||
* Email: mvadkert@redhat.com, fedora@lecris.me | * Email: mvadkert@redhat.com, fedora@lecris.me | ||
Line 33: | Line 36: | ||
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address> | * FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address> | ||
--> | --> | ||
== Current status == | == Current status == | ||
[[Category: | [[Category:ChangeReadyForFesco]] | ||
<!-- 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 45: | Line 47: | ||
[[Category:SelfContainedChange]] | [[Category:SelfContainedChange]] | ||
* Targeted release: [https://docs.fedoraproject.org/en-US/releases/ | * Targeted release: [https://docs.fedoraproject.org/en-US/releases/f43/ Fedora Linux 43] | ||
* Last updated: <!-- this is an automatic macro — you don't need to change this line --> {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}} | * Last updated: <!-- this is an automatic macro — you don't need to change this line --> {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}} | ||
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page | <!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page | ||
Line 53: | Line 55: | ||
ON_QA -> change is fully code complete | ON_QA -> change is fully code complete | ||
--> | --> | ||
* [Announced] | * [https://lists.fedoraproject.org/archives/list/devel-announce@lists.fedoraproject.org/thread/YMKN6JYFMFCNSN75WTKHSQ5FGBHHLSZI/ Announced] | ||
* [ | * [https://discussion.fedoraproject.org/t/f42-change-proposal-deprecation-of-sti-tests-self-contained/141622 Discussion thread] | ||
* FESCo issue: | * FESCo issue: [https://pagure.io/fesco/issue/3338 #3338] | ||
* Tracker bug: <will be assigned by the Wrangler> | * Tracker bug: <will be assigned by the Wrangler> | ||
* Release notes tracker: <will be assigned by the Wrangler> | * Release notes tracker: <will be assigned by the Wrangler> | ||
Line 68: | Line 70: | ||
* Test Management Tool (tmt) | * 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. | 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 == | == Feedback == | ||
Line 107: | Line 117: | ||
== Scope == | == Scope == | ||
* Proposal owners: | * Proposal owners: [[User:mvadkert| Miroslav Vadkerti]], [[User:lecris| Cristian Le]] | ||
<!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | <!-- What work do the feature owners have to accomplish to complete the feature in time for release? Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?--> | ||
Line 131: | Line 142: | ||
This is a change to the development experience, no changes to Fedora distribution are made. | This is a change to the development experience, no changes to Fedora distribution are made. | ||
== How To Migrate == | |||
== How To | |||
<!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done. This can be based off of the above section if early testing has been completed. If it needs to be tested with different hardware or software configurations, indicate them. The more specific you can be, the better the community testing can be. | <!-- This does not need to be a full-fledged document. Describe the dimensions of tests that this change implementation is expected to pass when it is done. This can be based off of the above section if early testing has been completed. If it needs to be tested with different hardware or software configurations, indicate them. The more specific you can be, the better the community testing can be. | ||
Line 152: | Line 158: | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
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-tests-to-tmt 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/rpms+file:%5C.fmf/version%24+&patternType=keyword&sm=0 other project's tmt tests] (identified by having a `.fmf` folder) using `tmt tests show` and `tmt plans show` | |||
== User Experience == | == User Experience == | ||
Line 165: | Line 202: | ||
--> | --> | ||
For Fedora | For Fedora 43 and later, packagers who have setup gating on STI tests will have to migrate to be able to push their packages to stable repositories. | ||
For Fedora 42 | For Fedora 42, 41 and 40, STI tests will continue to run. The developers are encouraged to backport the STI test migration to the earlier branches, or remove them from those branches. | ||
== Dependencies == | == Dependencies == | ||
Line 173: | Line 210: | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
N/A | |||
== Contingency Plan == | == Contingency Plan == | ||
Line 182: | Line 219: | ||
* Contingency deadline: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | * Contingency deadline: N/A (not a System Wide Change) <!-- 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? | * Blocks release? No (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
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 43. See the description for the list of the affected components. | |||
== Documentation == | == Documentation == | ||
Line 189: | Line 227: | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | ||
* [https://tmt.readthedocs.io/en/stable/questions.html#how-do-i-migrate-sti-tests-to-tmt 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-dns upstream]+[https://src.fedoraproject.org/rpms/aardvark-dns downstream] tests | |||
== Release Notes == | == Release Notes == |
Latest revision as of 23:52, 21 January 2025
Disablement of STI tests
Summary
Drop support for Standard Test Interface (STI) tests in Fedora CI and Zuul CI for Fedora 43 and later.
For Fedora 43 and later:
- STI tests will not be run
For EPEL:
- keep running STI tests for EPEL dist-git pull requests until Fedora 43 branch date.
- STI tests have not been included in Bodhi updates, and support for it will not be added.
For Fedora 42 and earlier:
- keep running the STI tests in both dist-git and Bodhi updates.
All users of STI tests will need to migrate to the new tmt format during the Fedora 43 development.
The change will affect 281 components. The list of components affected can be found via this sourcegraph query.
All references to STI will be removed from the Fedora CI documentation.
Owner
- Name: Miroslav Vadkerti, Cristian Le
- Email: mvadkert@redhat.com, fedora@lecris.me
Current status
- Targeted release: Fedora Linux 43
- Last updated: 2025-01-21
- Announced
- Discussion thread
- FESCo issue: #3338
- Tracker bug: <will be assigned by the Wrangler>
- Release notes tracker: <will be assigned by the Wrangler>
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 asplans
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,
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: Miroslav Vadkerti, Cristian Le
- Other developers:
- Release engineering: #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 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
# /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
3. Migrate individual tests
# /tests/foo.fmf test: ./foo.sh
For more complex needs feel free to discuss in the #fedora-ci
or #tmt
matrix channels. You can also explore other project's tmt tests (identified by having a .fmf
folder) using tmt tests show
and tmt plans show
User Experience
For Fedora 43 and later, packagers who have setup gating on STI tests will have to migrate to be able to push their packages to stable repositories.
For Fedora 42, 41 and 40, STI tests will continue to run. The developers are encouraged to backport the STI test migration to the earlier branches, or remove them from those branches.
Dependencies
N/A
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? 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 43. See the description for the list of the affected components.
Documentation
- How to migrate STI tests to tmt
- Example test repo implemented in both STI and tmt format (see for example the
smoke/venv.fmf
file andsmoke_default
test intests.yml
file) - Tmt specs (reference for the available keys defining
plans
ortests
) - Example project with shared upstream+downstream tests