Skip to content

Commit

Permalink
Use "avocado-latest-release" repository
Browse files Browse the repository at this point in the history
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: #6044
Reference: https://fedoraproject.org/wiki/Changes/RetireModularity
Signed-off-by: Cleber Rosa <crosa@redhat.com>
  • Loading branch information
clebergnu committed Jan 14, 2025
1 parent 108ae8f commit 68f6133
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 119 deletions.
101 changes: 6 additions & 95 deletions docs/source/guides/contributor/chapters/releasing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.
Expand Down Expand Up @@ -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``.
35 changes: 14 additions & 21 deletions docs/source/guides/user/chapters/installing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@ the "venv" itself::
$ pip3 install avocado-framework


.. _installing-from-packages:

Installing from packages
------------------------

Expand All @@ -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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
6 changes: 5 additions & 1 deletion docs/source/releases/next.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
===============
Expand Down
8 changes: 6 additions & 2 deletions examples/testplans/release/release.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down

0 comments on commit 68f6133

Please sign in to comment.