Release Management

Releases Overview

Before reading this document and being involved in TripleO release management, it’s suggested to read the OpenStack Release Management guide.

Most of TripleO projects follows the independent release model. We will be creating stable branches based on our long term supported releases going forward. The details can be found on the releases repository.

All information about previous releases can be found on https://releases.openstack.org. This page will document the process of releasing TripleO projects.

The tagging convention can be discussed with the PTL or the Release Liaison of TripleO.

For puppet-tripleo, we also need to update metadata.json file:

"version": "X.Y.Z",

For other projects, there is no need to update anything since the release will be ready by pbr.

Note

Puppet OpenStack modules release management is documented here: https://docs.openstack.org/puppet-openstack-guide/releases.html#how-to-release-puppet-modules

Once this is done, you can submit a patch in openstack/releases and per project to modify the YAML. The openstack/releases project provides tooling to update these files. See the new-release command. You can also update the yaml files manually as necessary. Example with tripleo-heat-templates, edit deliverables/pike/tripleo-heat-templates.yaml:

---
launchpad: tripleo
release-type: python-pypi
team: tripleo
type: other
repository-settings:
  openstack/tripleo-heat-templates: {}
releases:
  - version: 15.0.0
    projects:
      - repo: openstack/tripleo-heat-templates
        hash: 1ffbc6cf70c8f79cb3a1e251c9b1e366843ab97c
  - version: 15.1.0
    projects:
      - repo: openstack/tripleo-heat-templates
        hash: ec8955c26a15f3c9e659b7ae08223c544820af03
  - version: 16.0.0
    projects:
      - repo: openstack/tripleo-heat-template
        hash: <MY NEW HASH>

Once the file is edited, you can submit it and OpenStack release team will review it. Note that the patch requires +1 from TripleO PTL or TripleO Release Liaison.

The process of branching is also done by Release tools, and you need to change the YAML to specify where we want to branch. Example with tripleo-heat-templates, edit deliverables/ocata/tripleo-heat-templates.yaml:

---
launchpad: tripleo
release-type: python-pypi
team: tripleo
type: other
repository-settings:
  openstack/tripleo-heat-templates: {}
branches:
  - name: stable/xena
    location: 16.0.0
releases:
  - version: 15.0.0
    projects:
      - repo: openstack/tripleo-heat-templates
        hash: 1ffbc6cf70c8f79cb3a1e251c9b1e366843ab97c
  - version: 15.1.0
    projects:
      - repo: openstack/tripleo-heat-templates
        hash: ec8955c26a15f3c9e659b7ae08223c544820af03
  - version: 16.0.0
    projects:
      - repo: openstack/tripleo-heat-template
        hash: <MY NEW HASH>

Keep in mind that tags, branches, release notes, announcements are generated by the tooling and nothing has to be done manually, except what is documented here.

Releases for RDO

Due to TripleO’s switch to the independent model, the TripleO project needs to cut tags at the end of cycles that will not be supported in the long term. These tags are used by the RDO release process to include a build of the TripleO rpms in the RDO release. The process to create the intermediate release would be as follows.

Update required metadata

Some projects like puppet-tripleo and puppet-pacemaker require the metadata be updated in the repository prior to cutting a tag. If the metadata is not updated, the tagging patch to openstack/releases will fail CI.

For puppet-tripleo and puppet-pacemaker, update the version information to represent the next tag version (e.g. 16.1.0).

Get latest promoted content

After the previous metadata updates are available in the latest promoted content, fetch the version information from RDO which contains the git repository hashes.

An example where this could be found is:

https://trunk.rdoproject.org/centos8-master/current-tripleo/versions.csv

Note

You will needed to adjust the centos8 to centos9 as necessary.

Prepare version tags

Based on the versions.csv data, an openstack/releases patch needs to be created to tag the release with the provided hashes. You can determine which TripleO projects are needed by finding the projects tagged with “team: tripleo”. An example review. Please be aware of changes between versions and create the appropriate version number as necessary (e.g. major, feature, or bugfix).

Note

If this is a long term release, this patch should include a stable branch.

Notify RDO team of tags

Once the release has been created, make sure the RDO team not has been notified of the new tags. They will update the RDO release items to ensure that the given openstack release will contained the pinned content.