From 68f61336439e1bbd81cd7211e4d7d9e7a4f9a47f Mon Sep 17 00:00:00 2001 From: Cleber Rosa Date: Tue, 29 Oct 2024 11:07:11 -0400 Subject: [PATCH] Use "avocado-latest-release" repository In both the installation instructions, and in the release guide. This reflects changes in distros and the availability of features such as Fedora (and EPEL) modules. Fixes: https://github.com/avocado-framework/avocado/issues/6044 Reference: https://fedoraproject.org/wiki/Changes/RetireModularity Signed-off-by: Cleber Rosa --- .../guides/contributor/chapters/releasing.rst | 101 ++---------------- .../guides/user/chapters/installing.rst | 35 +++--- docs/source/releases/next.rst | 6 +- examples/testplans/release/release.json | 8 +- 4 files changed, 31 insertions(+), 119 deletions(-) diff --git a/docs/source/guides/contributor/chapters/releasing.rst b/docs/source/guides/contributor/chapters/releasing.rst index 043d0a25b7..3a3f6d2c83 100644 --- a/docs/source/guides/contributor/chapters/releasing.rst +++ b/docs/source/guides/contributor/chapters/releasing.rst @@ -25,11 +25,10 @@ following commands:: Just follow the steps and have a nice release! -How to refresh Fedora/EPEL modules ----------------------------------- +How to refresh Fedora rawhide +----------------------------- -This is an outline of the steps to update the Fedora/EPEL ``avocado:latest`` -module stream when there is a new upstream release of ``avocado``. +This is an outline of the steps to update the Fedora rawhide packages. This example is based on updating from 82.0 to 83.0. Update downstream python-avocado package @@ -42,10 +41,9 @@ Update downstream python-avocado package #. Clone your personal fork repository to your local workspace. -#. Checkout the ``latest`` branch--which is the stream branch used by the - ``avocado:latest`` module definition. - Make sure your ``latest`` branch is in sync with the most recent commits - from the official dist-git repo you forked from. +#. Checkout the ``latest`` branch, and make sure your ``latest`` + branch is in sync with the most recent commits from the official + dist-git repo you forked from. #. Locate the official upstream commit hash and date corresponding to the upstream GitHub release tag. @@ -108,90 +106,3 @@ Update downstream python-avocado package #. When you have successful builds for all releases, ``git add``, ``git commit``, and ``git push`` your updates. - - -Update downstream avocado module -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -#. Use pagure to create a personal fork of the downstream Fedora dist-git - ``avocado`` module source repository - https://src.fedoraproject.org/modules/avocado - if you don’t already have one. - -#. Clone your personal fork repository to your local workspace. - -#. Checkout the ``latest`` branch--which the stream branch used for the - ``avocado:latest`` module definition. - Make sure your ``latest`` branch is in sync with the latest commits to - the official dist-git repo you forked from. - -#. If there are any new or removed ``python-avocado`` sub-packages, - adjust the ``avocado.yaml`` modulemd file accordingly. - -#. Test with a scratch module build for the latest supported Fedora - release (f33), including the SRPM created earlier:: - - fedpkg module-scratch-build --requires platform:f33 --buildrequires platform:f33 --file avocado.yaml --srpm .../python-avocado/python-avocado-83.0-1.fc33.src.rpm - - You can use https://release-engineering.github.io/mbs-ui/ to monitor the - build progress. - -#. If the module build fails, go back and fix the modulemd file and try again. - Depending on the error, it may necessary to go back and revise the package - SPEC file. - -#. Repeat the scratch module build for all other supported Fedora releases, - Fedora Rawhide, and EPEL8 (``platform:el8``). - If you’re feeling confident, you can skip this step. - -#. When you have successful scratch module builds for all releases, - ``git add``, ``git commit``, ``git push`` your update. - Note: if ``avocado.yaml`` didn’t need modifying, it is still necessary to - make a new commit since official module builds are tracked internally by - their git commit hash. - Recall that ``git commit`` has an ``--allow-empty`` option. - -Release revised module -~~~~~~~~~~~~~~~~~~~~~~ - -#. Create PRs to merge the ``python-avocado`` rpm and ``avocado`` module changes - into the ``latest`` branches of the master dist-git repositories. - If you have commit privileges to the master repositories, you could also opt - to push directly. - -#. After the ``python-avocado`` rpm and ``avocado`` module changes have been merged... - -#. From the ``latest`` branch of your module repository in your local workspace, - submit the module build using ``fedpkg module-build``. - The MBS (Module Build Service) will use stream expansion to automatically - build the module for all current Fedora/EPEL releases. - Again, you can use https://release-engineering.github.io/mbs-ui/ - to monitor the progress of the builds. - -#. If you want to test the built modules at this point, use ``odcs`` - (On Demand Compose Service) to create a temporary compose for your - Fedora release:: - - odcs create module avocado:latest:3120200121201503:f636be4b - - You can then use ``wget`` to download the repofile from the URL referenced - in the output to ``/etc/yum.repos.d/`` and then you’ll be able to install - your newly built ``avocado:latest`` module. - Don't forget to remove the odcs repofile when you are done testing. - -#. Use https://bodhi.fedoraproject.org/ to create new updates for - ``avocado:latest`` (using options type=enhancement, severity=low, - default for everything else) for each Fedora release and EPEL8 -- - except Rawhide which happens automatically. - -#. Bodhi will push the updates to the testing repositories in a day or two. - Following the push and after the Fedora mirrors have had a chance - to sync, you'll be able to install the new module by including the - ``dnf`` option ``--enablerepo=updates-testing-modular`` - (``epel-testing-modular`` for EPEL). - -#. After receiving enough bodhi karma votes (three by default) or after - enough days have elapsed (seven for Fedora, twelve for EPEL), bodhi - will push the updated modules to the stable repositories. - At that point, the updated modules will be available by default without any - extra arguments to ``dnf``. diff --git a/docs/source/guides/user/chapters/installing.rst b/docs/source/guides/user/chapters/installing.rst index bc230d2cbf..157eb37d90 100644 --- a/docs/source/guides/user/chapters/installing.rst +++ b/docs/source/guides/user/chapters/installing.rst @@ -41,6 +41,8 @@ the "venv" itself:: $ pip3 install avocado-framework +.. _installing-from-packages: + Installing from packages ------------------------ @@ -49,35 +51,26 @@ Installing from packages Fedora ~~~~~~ -Avocado modules are available on standard Fedora repos starting with -version 29. To subscribe to the latest version stream, run:: - - $ dnf module enable avocado:latest +Avocado is available as a standard Fedora package. Simply run:: -Or, to use the LTS (Long Term Stability) version stream, run:: + $ dnf install python3-avocado - $ dnf module enable avocado:103lts +The exact version of Avocado is dependent on the Fedora version and +its release constraints. If you're looking to have the latest Avocado +release, please use Avocado's COPR repo, by running:: -Then proceed to install a module profile or individual packages. If you're -unsure about what to do, simply run:: - - $ dnf module install avocado + $ dnf copr enable @avocado/avocado-latest-release + $ dnf install python3-avocado Enterprise Linux ~~~~~~~~~~~~~~~~ -Avocado modules are also available on EPEL (Extra Packages for Enterprise Linux) -repos, starting with version 8. To enable the EPEL repository, run:: - - $ dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm - -Then to enable the module, run:: - - $ dnf module enable avocado:latest - -And finally, install any number of packages, such as:: +The latest release of Avocado is available on the same COPR repo +described previously. To install the latest Avocado release on +Enterprise Linux 9, run:: - $ dnf install python3-avocado python3-avocado-plugins-output-html python3-avocado-plugins-varianter-yaml-to-mux + $ dnf copr enable @avocado/avocado-latest-release + $ dnf install python3-avocado Latest Development RPM Packages from COPR ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/source/releases/next.rst b/docs/source/releases/next.rst index 7de08ff121..25f8347572 100644 --- a/docs/source/releases/next.rst +++ b/docs/source/releases/next.rst @@ -11,7 +11,11 @@ Release documentation: `Avocado 109.0 Users/Test Writers ================== -* +* The installation of Avocado from distribution's packages, changed + when compared to the previous version due to changes in repositories + and support for "package modules" in some distributions. Please + refer to the installation guide instructions + (:ref:`installing-from-packages`) for updated instructions Utility Modules =============== diff --git a/examples/testplans/release/release.json b/examples/testplans/release/release.json index 4f6e48c29d..8ebdbdb784 100644 --- a/examples/testplans/release/release.json +++ b/examples/testplans/release/release.json @@ -16,8 +16,12 @@ "description": "Run the GitHub Action 'Release' on the master branch at https://github.com/avocado-framework/avocado/actions/workflows/release.yml . All the jobs must pass. This action will update the `master` branch and a tag `VERSION`.\nIMPORTANT NOTE: the automatic tag won't be signed anymore by the release developer." }, { - "name": "Update the Fedora and EPEL RPM packages and module", - "description": "Follow the instructions on:\n\nhttps://avocado-framework.readthedocs.io/en/latest/guides/contributor/chapters/releasing.html#how-to-refresh-fedora-epel-modules\n\nand work with the package maintainer by sending a PR to update the Avocado version on the `avocado:latest` stream." + "name": "Trigger an COPR build for avocado-latest-release", + "description": "Log into https://copr.fedorainfracloud.org/coprs/g/avocado/avocado-latest-release/add_build/ and submit a new build using SCM as the source type, the clone URL being https://github.com/avocado-framework/avocado.git, the committish being the version tag (such as 109.0) and make srpm as the mechanism to build a SRPM." + }, + { + "name": "Update the Fedora RPM packages", + "description": "Follow the instructions on:\n\nhttps://avocado-framework.readthedocs.io/en/latest/guides/contributor/chapters/releasing.html#how-to-refresh-fedora-rawhide\n\nand work with the package maintainer by sending a PR to update the Avocado package on rawhide." }, { "name": "Update website",