Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use "avocado-latest-release" repository #6057

Merged
merged 1 commit into from
Jan 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIUIC this part should be removed, am I right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, that's actually the replacement for the old instructions. This will trigger (manually, on every release) a build of the latest release.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@clebergnu Sorry, I am still confused. The description links to https://avocado-framework.readthedocs.io/en/latest/guides/contributor/chapters/releasing.html#how-to-refresh-fedora-epel-modules but this part of documentation is removed in this PR, or I am missing something?

"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
Loading