Skip to content

Releasing Uyuni versions

Julio González Gil edited this page Apr 21, 2021 · 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
  3. Increase WebUI version number in web/conf/rhn_web.conf (x.y.z+1)
  4. Push the changes using the Jenkins Job manager-Head-2obs
  5. Run rel-eng/uyuni-check-version to check what other packages need changes and adjust them.

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. 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
  4. 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

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

  6. Force a submission to OBS using https://ci.suse.de/view/Manager/view/Manager-Head/job/manager-Head-2obs/. Then disable the job.

  7. 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.

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

    ./release-uyuni -u 2021.03 -l 15-.2

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

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

    NOTE: I need to adapt the script, for now the releasing needs to be done manually:

    1. Create the Snapshot project manually (for example systemsmanagement:Uyuni:Snapshots:2021.03, use a previous snapshot for reference)
    2. Configure the meta information at systemsmanagement:Uyuni:Stable to promote to systemsmanagement:Uyuni:Snapshots:2021.03
    3. Release to Stable with osc release systemsmanagement:Uyuni:Master, go the stable project and wait until the release is complete
    4. Release the Snapshot with osc release systemsmanagement:Uyuni:Stable, go the snapshot project and wait until the release is complete
  9. Promote client tools:

    
    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:EL8-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
    
  10. Wait until all client tools are released.

  11. Enable https://ci.suse.de/view/Manager/view/Manager-Head/job/manager-Head-2obs/ to use master branch again.

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

Clone this wiki locally