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.