-
Notifications
You must be signed in to change notification settings - Fork 181
Releasing Uyuni versions
-
Python3
-
osc package:
zypper in osc
-
tito:
Install tito from https://build.opensuse.org/project/show/systemsmanagement:Uyuni:Utils
-
tito-wrapper:
Clone the repository (repo to be published in GitHub in the future) and call
tito-wrapper
from the root of the Git repository.I suggest you create a link to
tito-wrapper
at~/bin
, so you can call it without specifying the path. -
An OBS account able to create projects at https://build.opensuse.org/project/show/systemsmanagement:Uyuni and submit packages to https://build.opensuse.org/project/show/systemsmanagement:Uyuni:Stable
...and the account configured at
~/.osrc
, or at the place where you have the configuration file forosc
-
python-libarchive module for Python3 installed (required by the tool
uyuni-check-version
- Check all the tests: everything should be green, in particular the acceptance testsuite or otherwise release must be approved by QA (later).
-
Lock the
master
branch (check the checkbox forRestrict who can push to matching branches
) -
Lock the
main
branch for the uyuni-tools as well (check the checkbox forRestrict who can push to matching branches
) - Send an email to galaxy-devel informing that the branch
master
is locked, and adjust the topic on the slack#team-susemanager
channel - Ask the Doc Squad to submit an update of the doc package to systemsmanagement:Uyuni:Master, a PR for the main documention and ReportDB documentation at the documentation repository, gh-pages branch and a PR for the documentation API repository, gh-pages branch.
- Confirm that the documentation is ready.
- After the branch freeze, ask Orion to prepare the PR for the code translations from
master-weblate
tomaster
. If nobody from Orion is available, ask Pascal Arlt. - Quick review changelogs with
tito-wrapper
, and request changes if needed. - Starting from the
master
branch at your local git clone (make sure it's updated!)-
Adjust the version number in
web/conf/rhn_web.conf
(web.version.uyuni
) -
Check if the
susemanager-schema
package has a migration path to the new version (first checkschema/spacewalk/susemanager-schema.spec
and take note of the Version value (in formatX.Y.Z
), then see if there is a directoryschema/spacewalk/upgrade/susemanager-schema-X.Y.Z-to-susemanager-schema-X.Y.Z+1
with contents). E.g.: if current version for package is4.4.10
, then after tagging the package version will be4.4.11
, so there should be a foldersusemanager-schema-4.4.10-to-susemanager-schema-4.4.11
If not:
- Create a new directory for the database migration scripts in
schema/spacewalk/upgrade
- Create an empty file called
.gitkeep
in it (otherwise the empty directory couldn't be added to git) - Add the directory to git, commit, push back to the remote of current branch
- Create a new directory for the database migration scripts in
-
Check if the
susemanager-schema
package has a migration path between the last SUSE Manager version (as of today 4.3.X) and the latest version of thesusemanager-schema
there, and the newestX.Y.0
version forsusemanager-schema
at Uyuni.For example, if latest SUSE Manager 4.3 schema version is
4.3.15
, and Uyuni schemas are4.4.X
, then the following folder must exist inmaster
:susemanager-schema-4.3.15-to-susemanager-schema-4.4.0
If not:
- Create a new directory for the database migration scripts in
schema/spacewalk/upgrade
- Create an empty file called
.gitkeep
in it (otherwise the empty directory couldn't be added to git) - Add the directory to git, commit, push back to the remote of current branch
- Create a new directory for the database migration scripts in
-
Now repeat the same procedure, this time for the
uyuni-reportdb-schema
package (located atschema/reportdb
). There must be migration paths to the new Uyuni reportdb schema versions, and to from the latest SUSE Manager. -
Now you can start listing which packages need tagging:
-
tito-wrapper -c
If there are errors, fix them. You can get more info about the commits for each package withtito report --untagged-commits
, you can also focus on errors withtito-wrapper -g
- Enter in every subproject that needs tagging and then:
-
Tag it:
tito tag
The entries for the changelog should be there when everybody followed this. All Bug, CVE and Fate numbers should be there.
Notice an empty point is automatically created and you must remove it if you won't use it, as well as the empty line below it.
-
Follow the
tito
instructions: push tags to remote
-
-
-
- Check that the job uyuni-Master-releng-2obs job has packaged the whole tagging and submitted the changes from
master
branch into https://build.opensuse.org/project/show/systemsmanagement:Uyuni:Master (changes will propagate to the client tools for linked packages) - Run
rel-eng/uyuni-check-version
at the Git repository, to check what other packages need changes and adjust them. - Prepare the release notes PR, send it to be reviewed.
- Merge the release notes PR, submit the release notes to systemsmanagement:Uyuni:Master
- Prepare the PR for the website repository, master branch, including announcement at the main page, updates to the stable page, news page, new doc folder (PDFs) with doc and release notes.
- Prepare the email announcement and the twitter announcement, add them as comments to this card.
- Prepare a new snapshot as
systemsmanagement:Uyuni:Snapshots:YYYY.MM
. You can use systemsmanagement:Uyuni:Snapshots:2023.03 as base, but make sure you adjust the meta configuration to match the version and the expect Leap version used as base OS. - Modify the meta configuration for
systemsmanagement:Uyuni:Stable
, so the promotion is done against the new Snapshot.
- Check all the tests: everything should be green, in particular the acceptance testsuite or otherwise release must be approved by QA.
- Specifically, make sure everything is still building and server and proxy are installable.
- Run
rel-eng/uyuni-check-version
at the Git repository, to make sure nothing is missing - Go to https://build.opensuse.org/project/show/systemsmanagement:Uyuni:Master and https://build.opensuse.org/project/show/systemsmanagement:Uyuni:Master:Other and the client projects until everything is built.
- Release the packages:
osc release systemsmanagement:Uyuni:Master osc release systemsmanagement:Uyuni:Master:ContainerUtils osc release systemsmanagement:Uyuni:Master:openSUSE_Leap_15-Uyuni-Client-Tools osc release systemsmanagement:Uyuni:Master:SLE12-Uyuni-Client-Tools osc release systemsmanagement:Uyuni:Master:SLE15-Uyuni-Client-Tools osc release systemsmanagement:Uyuni:Master:SLMicro6-Uyuni-Client-Tools osc release systemsmanagement:Uyuni:Master:CentOS7-Uyuni-Client-Tools osc release systemsmanagement:Uyuni:Master:EL8-Uyuni-Client-Tools osc release systemsmanagement:Uyuni:Master:EL9-Uyuni-Client-Tools osc release systemsmanagement:Uyuni:Master:Ubuntu2004-Uyuni-Client-Tools osc release systemsmanagement:Uyuni:Master:Ubuntu2204-Uyuni-Client-Tools osc release systemsmanagement:Uyuni:Master:Ubuntu2404-Uyuni-Client-Tools osc release systemsmanagement:Uyuni:Master:Debian11-Uyuni-Client-Tools osc release systemsmanagement:Uyuni:Master:Debian12-Uyuni-Client-Tools
- Wait until all packages are released, then release to the Snapshot:
osc release systemsmanagement:Uyuni:Stable
- Merge the PRs for the site, the main doc and ReportDB, and the API doc.
- Review that the site, main doc and ReportDB, and the API doc were published
- Create a git branch (
Uyuni-XXXX.YY
), and push it - Announce: mailing lists, twitter and Gitter (update the topic for the
users
channel) -
Unlock the
master
branch (uncheck the checkbox forRestrict who can push to matching branches
) -
Unlock the
main
branch of uyuni-tools (uncheck the checkbox forRestrict who can push to matching branches
) - Send an email to galaxy-devel informing that the branch
master
is unlocked, and adjust the topic on the slack#team-susemanager
channel
- Update the test container images
ℹ️ We wait 24h release to give time to the opensuse mirrors to be in sync.