Skip to content

Releasing Uyuni versions

Julio González Gil edited this page Sep 22, 2020 · 23 revisions

Requirements

Procedure

Some days before the release:

  1. Warn everyone about the upcoming release (email to uyuni-devel mailing list, topic at IRC)
  2. Ask Doc team to submit the susemanager-docs_en package

At the day you start the update:

  1. Get a green cucumber testsuite.

  2. Lock master branch at https://github.com/uyuni-project/uyuni/settings/branch_protection_rules/2243617 (add yourself to Restrict who can push to matching branches)

  3. Increase version number in web/conf/rhn_web.conf (x.y.z+1)

  4. Check if the schema directory exists with the correct versions (first check schema/spacewalk/susemanager-schema.spec and take note of the version in format X.Y.Z, then see if there is a directory schema/spacewalk/upgrade/susemanager-schema-X.Y.Z-to-susemanager-schema-X.Y.Z+1 with contents). E.g.: if current version for package is 4.0.10, then there should be a folder susemanager-schema-4.0.10-to-susemanager-schema-4.0.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
  5. Now you can start listing which packages need tagging:

    tito report --untagged-commits
    

    See the home directory for every package:

    cat rel-eng/packages

    And for every package:

    1. Tag it:

      tito tag

      The entries for the changelog should be there, including. all bugs, CVE and Fate numbers. Notice an empty point is automatically created and you must remove it if you won't use it.

    2. Follow the tito instructions: push tags to remote

  6. Create a tag 'Uyuni-X.Y.Z' being 'X.Y.Z' the version you configured at web/conf/rhn_web.conf

  7. Reconfigure https://ci.suse.de/view/Manager/view/Manager-Head/job/manager-Head-2obs/ to use the new tag.

  8. Unlock the branch

  9. 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 packages until everything is built.

  10. Promote the packages with the help of release-uyuni script. For example if you want a new version 4.0.1 for openSUSE Leap 42.3 run:

    NOTE: I need to adapt the script, for now the releasing needs to be done manually. I will document it soon if I am not able to fix the script quickly.

    ./release-uyuni -u 4.0.1 -l 42.3

    Wait until the script is complete, and check there are no errors.

  11. This will release the packages to systemsmanagement:Uyuni:Stable and systemsmanagement:Uyuni:Snapshots:4.0.1 (notice the version will depend on the previous call to release-uyuni. Have a look at both projects to check that everything is fine.

  12. Promote client tools sets:

    
    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:CentOS6-Uyuni-Client-Tools
    osc release systemsmanagement:Uyuni:Master:CentOS7-Uyuni-Client-Tools
    osc release systemsmanagement:Uyuni:Master:CentOS8-Uyuni-Client-Tools
    osc release systemsmanagement:Uyuni:Master:Ubuntu1604-Uyuni-Client-Tools
    osc release systemsmanagement:Uyuni:Master:Ubuntu1804-Uyuni-Client-Tools
    osc release systemsmanagement:Uyuni:Master:Ubuntu2004-Uyuni-Client-Tools
    osc release systemsmanagement:Uyuni:Master:Debian9-Uyuni-Client-Tools
    osc release systemsmanagement:Uyuni:Master:Debian10-Uyuni-Client-Tools
    
  13. Reconfigure https://ci.suse.de/view/Manager/view/Manager-Head/job/manager-Head-2obs/ to use master branch again.

  14. Announce the new release at twitter, IRC channel and uyuni-announce and uyuni-devel mailing lists.

Clone this wiki locally