Jump to: navigation, search

Difference between revisions of "QA/releases"

< QA
(Created page with "= Project Releases = The QA PTL, or a member of a projects release group has == tempest == With the start of branchless tempest there are no long any tempest releases, but in...")
 
(Tempest)
(23 intermediate revisions by 8 users not shown)
Line 1: Line 1:
 +
OpenStack QA releases its tooling as per each tool release model and also needs to take care of the new branch set on devstack and grenade.
 +
This page explain the process and tasks QA team needs to do on every OpenStack release.
 +
 
= Project Releases =
 
= Project Releases =
The QA PTL, or a member of a projects release group has
 
== tempest ==
 
  
With the start of branchless tempest there are no long any tempest releases, but instead incremental tags for each OpenStack release milestones. The tag should be incremented to coincide with either a new OpenStack release, or the EOL of a supported stable branch. For example, the tempest-2 tag was added at the Juno release and was used to mark adding support for the Kilo release. The next tag tempest-3 will be used to either signify the start of L development or the EOL of icehouse, whichever occurs first.
+
== Feature Freeze ==
 +
 
 +
QA projects follow different release models (explained in the next section) so feature
 +
freeze is not applicable to all of them. We do feature freeze for below projects only:
 +
 
 +
* Tempest: Week R-3 (Hard StringFreeze) of cycle release schedule. Example [https://releases.openstack.org/victoria/schedule.html Victoria Release Schedule]
 +
* Devstack: Week R-3 (Hard StringFreeze) of cycle release schedule.
 +
* Grenade: Week R-3 (Hard StringFreeze) of cycle release schedule.
 +
* Patrole: Week R-3 (Hard StringFreeze) of cycle release schedule.
 +
 
 +
 
 +
== Project with release mode: cycle-with-intermediary ==
 +
 
 +
=== Tempest ===
 +
 
 +
* Step0: Read and follow the "How to pin upper-constraints in tox.ini" steps.
 +
** https://docs.openstack.org/tempest/latest/requirement_upper_constraint_for_tempest.html
 +
* Step1: Add Release note to mark the release
 +
** Example:
 +
*** Intermediate release https://review.openstack.org/#/c/514873/2
 +
*** Cycle release –https://review.opendev.org/#/c/685401/
 +
*** EOL stable release – https://review.opendev.org/#/c/703255/
 +
* Step2: Push release tag to openstack/release repo
 +
** Example:
 +
*** Intermediate - https://review.opendev.org/#/c/688613/
 +
*** Cycle release- https://review.opendev.org/#/c/685406/
 +
* Step3: Add release notes page after release patch is merged
 +
** Example:
 +
*** Cycle Release- https://review.opendev.org/#/c/687123/
 +
* Step4: Add releasenotes page link in openstck/release
 +
** Example: https://review.opendev.org/#/c/687619/
 +
* Step5: Remove the End of Support branch job from tempest gate if release is for end of support for any stable branch
 +
** Example: https://review.opendev.org/#/c/703646/
 +
 
 +
=== Patrole ===
 +
 
 +
* Step1: Add Release note to mark the release
 +
** Example: https://review.opendev.org/#/c/685429/
 +
* Step2: Push release tag to openstack/release repo
 +
** Example: https://review.opendev.org/#/c/685430/
 +
* Step3: Add release notes page after release patch is merged
 +
** Example: https://review.opendev.org/#/c/687124/
 +
* Step4: Add releasenotes page link in openstck/release
 +
** Example: https://review.opendev.org/#/c/687582/
 +
* Step5: Remove the End of Support branch job from tempest gate if release is for end of support for any stable branch:
 +
 
 +
== Project with release mode: independent ==
 +
 
 +
Below projects are with independent release and not associated with OpenStack cycle release.
 +
 
 +
* hacking
 +
** Example: https://review.opendev.org/#/c/715578/
 +
* os-testr
 +
** Example: https://review.opendev.org/#/c/713142/
 +
* bashate
 +
** Example: https://review.opendev.org/#/c/710560/
 +
* devstack-tools
 +
** Example: https://review.opendev.org/#/c/710561/
 +
* eslint-config-openstack
 +
 
 +
== Project with no release==
  
The procedure for pushing a new tempest tag is:
+
Below projects are with no release and maintained as master version only.
  
* Identify the commit you would like to tag as the next tag and write down the sha1. This can just be the current HEAD commit but make sure you use use the sha1 for the commit from the log and not some other shorthand as that will likely change
+
* coverage2sql
* Push the version bump in setup.cfg. For example, see: http://git.openstack.org/cgit/openstack/tempest/commit/?id=66d8831d173cd4713bff8875bd516ad132db9070 this step must occur before you push the tag or you risk breaking pbr's semver check
+
* devstack-plugin-ceph
* Once the version bump is in master you can tag the release and push it to gerrit with:
+
* devstack-plugin-cookiecutter
 +
* devstack-plugin-open-cas
 +
* devstack-plugin-nfs
 +
* devstack-vagrant
 +
* karma-subunit-reporter
 +
* openstack-health
 +
* os-performance-tools
 +
* stackviz
 +
* tempest-stress
 +
* tempest-plugin-cookiecutter
  
        git tag -s 3  $(sha1_to_tag) && git push gerrit 3
 
  
this will add the tag to the git repo and generate a tarball at:
+
= Projects with only Branches =
  
== tempest-lib ==
+
For the most part, Devstack and Grenade only have branches, which need to be cut when other projects get '''stable/*''' branches during a
 +
release.
  
The mechanics for pushing a new tempest-lib release are basically the same (pushing a tag to gerrit) however the operations that get performed during this process are different. Also tempest-lib conforms to more traditional semver scheme and adheres to the mantra "release early, release often"
+
* Devstack
 +
** Step1: Wait for stable/* branch to exist on the projects in Devstack repo
 +
** Step2: Propose to openstack/releases to create a stable/foo branch for Devstack
 +
*** Example: https://review.opendev.org/#/c/685400/
 +
** Step3: Update .gitreview for stable/foo – patch from OpenStack Release Bot
 +
*** Example: https://review.openstack.org/#/c/647855/
 +
** Step4: Update branches for stable/foo
 +
*** Example: https://review.openstack.org/#/c/647867/
 +
** Step5: Update DEVSTACK_SERIES on master Devstack
 +
*** Example: https://review.opendev.org/#/c/687112/ 
 +
** Step6: Update lib/tempest to hardcode max microversions and extensions on stable/foo
 +
*** Example:
 +
**** https://review.opendev.org/#/c/687115/
 +
**** https://review.opendev.org/#/c/687176/
 +
** Step7: After Devstack has been branched.  Add a new stable branch job in the Tempest pipeline.
 +
*** Example: https://review.opendev.org/#/c/686781
 +
** Step8: After Devstack has been branched.  Configure devstack-gate to run the new stable branch jobs.
 +
*** Example: https://review.opendev.org/#/c/686776/
 +
** Step9: After Devstack has been branched.  Add the new stable branch to the list of branches in the periodic-stable job templates in openstack-zuul-jobs.
 +
*** Example: https://review.opendev.org/#/c/687122/
  
== grenade ==
+
* Grenade
Release branch procedure:
+
** Step1: Wait for stable/branch to exist on Devstack
 +
** Step2: Propose  to openstack/releases to create a stable/foo branch
 +
*** Example: https://review.opendev.org/#/c/686771/
 +
** Step3: Update .gitreview for stable/x – from OpenStack Release Bot
 +
*** Example: https://review.opendev.org/#/c/686991/
 +
** Step5: Update devstack-gate logic to use the new branches
 +
*** Example: new- https://review.openstack.org/#/c/591594/
  
 +
* devstack-plugin-container: hanled by devstack-plugin-container team.
  
== Devstack ==
+
Once all done then you deserve to go for beer \o/
Release Branch Procedure:
 

Revision as of 10:52, 18 September 2020

OpenStack QA releases its tooling as per each tool release model and also needs to take care of the new branch set on devstack and grenade. This page explain the process and tasks QA team needs to do on every OpenStack release.

Project Releases

Feature Freeze

QA projects follow different release models (explained in the next section) so feature freeze is not applicable to all of them. We do feature freeze for below projects only:

  • Tempest: Week R-3 (Hard StringFreeze) of cycle release schedule. Example Victoria Release Schedule
  • Devstack: Week R-3 (Hard StringFreeze) of cycle release schedule.
  • Grenade: Week R-3 (Hard StringFreeze) of cycle release schedule.
  • Patrole: Week R-3 (Hard StringFreeze) of cycle release schedule.


Project with release mode: cycle-with-intermediary

Tempest

Patrole

Project with release mode: independent

Below projects are with independent release and not associated with OpenStack cycle release.

Project with no release

Below projects are with no release and maintained as master version only.

  • coverage2sql
  • devstack-plugin-ceph
  • devstack-plugin-cookiecutter
  • devstack-plugin-open-cas
  • devstack-plugin-nfs
  • devstack-vagrant
  • karma-subunit-reporter
  • openstack-health
  • os-performance-tools
  • stackviz
  • tempest-stress
  • tempest-plugin-cookiecutter


Projects with only Branches

For the most part, Devstack and Grenade only have branches, which need to be cut when other projects get stable/* branches during a release.

  • devstack-plugin-container: hanled by devstack-plugin-container team.

Once all done then you deserve to go for beer \o/