Jump to: navigation, search

Difference between revisions of "StarlingX/Release Plan"

 
(70 intermediate revisions by 5 users not shown)
Line 1: Line 1:
[[File:Stx  Release Plan.png||]]
+
<big><big> '''Releases''' </big></big>
  
=== Release Plan ===
+
StarlingX is released periodically; one beta release in 2018 and two releases/year starting in 2019.  A release consists of a branch in the source code repositories that enables repeatable builds over time.
 +
----
 +
== Release Definition ==
 +
A StarlingX milestone/release is a tagged branch in the source code repositories that:
 +
* is considered stable and can be used for repeatable builds
 +
* will have no additional features added
 +
* will backport bug fixes for critical/high issues only
 +
* will be maintained in the canonical repositories for a specified minimum period
 +
* The list of repos included is maintained in stx-manifest/default.xml (or similar) for any given release. (Note: this file included non-StarlingX-managed repos, only repos from the "starlingx" and "stx-staging" remotes are included.)
 +
* The actual release is a tag on the corresponding branch, i.e. r/stx.2.0 release branch will be initially tagged as v2.0.0.rc0, the actual release will be tagged as v2.0.0
 +
* In addition to source, the corresponding binaries will be made available on the StarlingX CENGN mirror (see the [[StarlingX/Build#Starling_X_Mirror|the build team page]] for more details).
  
The community has decided to adapt the quarterly release cadence. We agreed to follow the time-based release process. If your code is ready, it gets released.  If it's not ready, you wait for the next release
+
== Release Cadence and Schedule ==
 +
'''Releases are published in a time based fashion:'''
 +
* Two StarlingX releases are planned per year / per 12-month period
  
We are going to support the quarterly release cadence using monthly branches. The branches will be named "stx.<year>.<month>, for example "stx.2018.07" for the branch for July 2018. We will be pulling branches monthly to allow the project's testing team to have a stable environment to run long duration tests.
+
=== Formal Releases ===
 +
* Released two times per year
 +
* Branch name format r/stx.X.0
 +
** 'r/stx' is the branch name prefix (release)
 +
** 'X' is the major release identifier
 +
* Release Candidate builds are tagged as X.0 and stored on CENGN at: http://mirror.starlingx.cengn.ca/mirror/starlingx/rc/
 +
* Formal releases are tagged as X.0.y and stored on CENGN at: http://mirror.starlingx.cengn.ca/mirror/starlingx/release/
  
Each quarter we will use the 2nd month's branch as the branch for the quarterly release.  The releases will be named "stx.<year>.<month>.<patch number>, with the patch number starting at zero and increasing with each new patch (fix) on the branch. So the release for Q3 of 2018 will be named "stx.2018.08.0x", where "x" is the number of patches against that branch.  Note that the release is named after the month the branch was pulled in, not the month the release ships in.
+
=== Branch Logistics (Historic Only) ===
 +
* StarlingX master builds docker images from OpenStack master during the development cycle
 +
* Once the OpenStack release branch is created (ex: Stein), switch the builds to the release branch
 +
* Once the StarlingX release branch is created, the master StarlingX builds will switch back to OpenStack master in the default.xml manifest
 +
* The StarlingX release branch will continue building from the stable OpenStack release branch (ex: Stein)
 +
* StarlingX maintenance (dot) releases will periodically pick up the latest from the stable OpenStack release branch (ex: Stein)
 +
[[File:Stx-branch-logistics.png]]
  
The timeline for Q3 of 2018 looks like this:
+
== Release Milestones ==
Week of July 9th - pull stx.2018.07 branch for testing
+
StarlingX follows the OpenStack release milestones. The criteria for each milestone is defined to align more closely with the StarlingX deliverables/development cycle
Week of August 6th - pull stx.2018.08 branch as the Q3 release branch
+
* Milestone-1:  
Week of September 10th - pull stx.2018.09 branch for testing
+
** Release priorities and major features defined.
 +
** High level resourcing secured.
 +
** Blog Post planning starting
 +
*** Feature PLs / TSC to make recommendations on which features warrant a blog post
 +
* Milestone-2:
 +
** ''Spec freeze; no new specs accepted for the release. The focus is on closing current specs''
 +
*** Update: PTG 2021: Agreed that we will no longer have a spec freeze milestone.
 +
** Feature plans defined and feature development well underway
 +
** Release test plan defined - including test automation deliverables
 +
* Milestone-3:
 +
** Feature freeze: All feature code merged and feature testing completing within an acceptable timeframe
 +
** No blocking issues from Automated Sanity and Regression
 +
** No critical issues severely impacting system stability or release test activities
 +
** Release regression testing starting
 +
** Documentation plan defined; including a prioritized list of the various documentation items
 +
** Blog Posts available
 +
* RC1 (aka RC period start):
 +
** Release branch created & first release candidate tagged
 +
** RC binaries (and supporting build artifacts) posted on the StarlingX CENGN mirror
 +
*** RC builds will be posted daily on CENGN during the RC period.  
 +
*** The daily builds will not be explicitly tagged until the end of the RC period.
 +
** Final Release Testing Start
 +
** Only Bug fixes are allowed in the release branch.
 +
*** Bugs fixes must be sourced in master first before getting cherry-picked to the release branch.
 +
** Draft Release Notes available
 +
** Blog Posts available (if not done at Milestone-3)
 +
* Final Release
 +
** Release Testing Complete and Pass Rate meets project criteria (> 95% ?)
 +
** All release gating issues are addressed or reviewed/accepted for deferral
 +
** Release tagged on release branch
 +
** Release binaries (and supporting build artifacts) posted on the StarlingX CENGN mirror
 +
** Final documentation posted on docs.startlingx.io
  
Any defects found in a branch should be fixed on master. Fixes needed for a release or to unblock testing shall be cherry picked into the branch as needed.
+
== Release Maintenance ==
 +
* Formal releases are maintained for a minimum of 12 months to maintain support for two previous StarlingX releases.
 +
* During the maintenance window, the release team will evaluate whether a maintenance release is required (upon request)
 +
** The maintenance release will be tagged on the release branch.
 +
** The maintenance release will undergo a mini regression test cycle.
 +
** The corresponding binaries will be posted on the StarlingX CENGN mirror.
 +
* After the 12-month maintenance window, the release will be considered End of Life.
 +
 
 +
== List of Releases ==
 +
'''Planned'''
 +
{| class="wikitable"
 +
|-
 +
! Version !! Milestone-1 !! Milestone-2 !! Milestone-3 !! RC1 !! Release Date !! End of Life Date
 +
|-
 +
| stx.1.0 || N/A || N/A || Sep 26 2018 || Sep 28 2018 || Oct 24 2018 || N/A
 +
|-
 +
| stx.2.0 || Jan 18 2019 || Apr 29 2019 || June 21 2019 || Aug 5-9 2019 || Aug 30 2019 || Aug 2020
 +
|-
 +
| stx.3.0 || Jul 17 2019 || Sep 19 2019 || Nov 15 2019 || Nov 2? 2019 || Dec 13 2019 || Dec 2020
 +
|-
 +
| stx.4.0 || Jan 24 2020 || Apr 2 2020 || Jul 8 2020 || Jul 8 2020 || Aug 5 2020 || Aug 2021
 +
|-
 +
| stx.5.0 ||  Nov 6 2020 || Dec 18 2020 || Mar 3 2021 || Apr 20 2021 || May 27 2021 || May 2022
 +
|-
 +
| stx.6.0 ||  Jul 12 2021 || Aug 23 2021 || Oct 4 2021 || Nov 11 2021 ||  Dec 13 2021 || Dec 2022
 +
|-
 +
| stx.7.0 ||  Jan 31 2022 || Mar 9 2022 || Jun 24 2022 || Jul 27 2022 ||  Sep 9 2022 || Sep 2023
 +
|-
 +
| stx.8.0 ||  Sep 23 2022 || Oct 20 2022 || Jan 31 2023 || Feb 11 2023 ||  Feb 22 2023 || Sep 2024
 +
|-
 +
| stx.9.0 ||  Mar 29 2023 || May 24 2023 || Feb 21 2024 || Mar 8 2024 ||  TBD || TBD
 +
|-
 +
| stx.10.0 || TBD || TBD || TBD || TBD ||  TBD || TBD
 +
|}
 +
 
 +
== Release Planning References ==
 +
* For team members and other information, visit the StarlingX Releases sub-project wiki page [https://wiki.openstack.org/wiki/StarlingX/Releases here]
 +
* Release Planning Etherpad: https://etherpad.openstack.org/p/stx-releases
 +
* stx.2.0 Release Plan: [https://docs.google.com/spreadsheets/d/1HUwbsaSerzFRuvXVB_qvoGdI0Chx1YiiA2WYHwvIoYI/edit?usp=sharing here]
 +
* stx.3.0 Release Plan: [https://docs.google.com/spreadsheets/d/1ZFR-9-riwhIwiBYBmWmi1qOVyHtgJ8Xk_FaF2jp5rY0/edit#gid=0 here]
 +
* stx.4.0 Release Plan: [https://docs.google.com/spreadsheets/d/1a93wt0XO0_JvajnPzQwnqFkXfdDysKVnHpbrEc17_yg/edit#gid=0 here]
 +
* stx.5.0 Release Plan: [https://docs.google.com/spreadsheets/d/1JbOQELqXG_GDoP1jo6YoRDytpTkJEs89TVimzvrqc_A/edit#gid=0 here]
 +
* stx.6.0 Release Plan: [https://docs.google.com/spreadsheets/d/13p0BMlBgJXUVForOFsblAJq9jA1-FMBlmhV5TIc70IE/edit#gid=0 here]
 +
* stx.7.0 Release Plan: [https://docs.google.com/spreadsheets/d/171PJAu9SykXm9h9Ny2IsZ8YMbhvEwOzuTbISWUMQhiE/edit#gid=0 here]
 +
* stx.8.0 Release Plan: [https://docs.google.com/spreadsheets/d/1cjhRQm717zOTo2ngs5SEs3elhJwSRxFAI-ruqJaBe80/edit#gid=0 here]
 +
* stx.9.0 Release Plan: [https://docs.google.com/spreadsheets/d/1aTjYzUkExodfayt-rjTv466jE-DP8b_YjrTHhXW6G9w/edit#gid=0 here]
 +
* stx.10.0 Release Plan: [https://docs.google.com/spreadsheets/d/1FMNIfVSRSsdDuWizZzWhZvvcSfYCoiXgW-a3ZxK4-8g/edit#gid=0 here]

Latest revision as of 22:31, 26 March 2024

Releases

StarlingX is released periodically; one beta release in 2018 and two releases/year starting in 2019. A release consists of a branch in the source code repositories that enables repeatable builds over time.


Release Definition

A StarlingX milestone/release is a tagged branch in the source code repositories that:

  • is considered stable and can be used for repeatable builds
  • will have no additional features added
  • will backport bug fixes for critical/high issues only
  • will be maintained in the canonical repositories for a specified minimum period
  • The list of repos included is maintained in stx-manifest/default.xml (or similar) for any given release. (Note: this file included non-StarlingX-managed repos, only repos from the "starlingx" and "stx-staging" remotes are included.)
  • The actual release is a tag on the corresponding branch, i.e. r/stx.2.0 release branch will be initially tagged as v2.0.0.rc0, the actual release will be tagged as v2.0.0
  • In addition to source, the corresponding binaries will be made available on the StarlingX CENGN mirror (see the the build team page for more details).

Release Cadence and Schedule

Releases are published in a time based fashion:

  • Two StarlingX releases are planned per year / per 12-month period

Formal Releases

Branch Logistics (Historic Only)

  • StarlingX master builds docker images from OpenStack master during the development cycle
  • Once the OpenStack release branch is created (ex: Stein), switch the builds to the release branch
  • Once the StarlingX release branch is created, the master StarlingX builds will switch back to OpenStack master in the default.xml manifest
  • The StarlingX release branch will continue building from the stable OpenStack release branch (ex: Stein)
  • StarlingX maintenance (dot) releases will periodically pick up the latest from the stable OpenStack release branch (ex: Stein)

Stx-branch-logistics.png

Release Milestones

StarlingX follows the OpenStack release milestones. The criteria for each milestone is defined to align more closely with the StarlingX deliverables/development cycle

  • Milestone-1:
    • Release priorities and major features defined.
    • High level resourcing secured.
    • Blog Post planning starting
      • Feature PLs / TSC to make recommendations on which features warrant a blog post
  • Milestone-2:
    • Spec freeze; no new specs accepted for the release. The focus is on closing current specs
      • Update: PTG 2021: Agreed that we will no longer have a spec freeze milestone.
    • Feature plans defined and feature development well underway
    • Release test plan defined - including test automation deliverables
  • Milestone-3:
    • Feature freeze: All feature code merged and feature testing completing within an acceptable timeframe
    • No blocking issues from Automated Sanity and Regression
    • No critical issues severely impacting system stability or release test activities
    • Release regression testing starting
    • Documentation plan defined; including a prioritized list of the various documentation items
    • Blog Posts available
  • RC1 (aka RC period start):
    • Release branch created & first release candidate tagged
    • RC binaries (and supporting build artifacts) posted on the StarlingX CENGN mirror
      • RC builds will be posted daily on CENGN during the RC period.
      • The daily builds will not be explicitly tagged until the end of the RC period.
    • Final Release Testing Start
    • Only Bug fixes are allowed in the release branch.
      • Bugs fixes must be sourced in master first before getting cherry-picked to the release branch.
    • Draft Release Notes available
    • Blog Posts available (if not done at Milestone-3)
  • Final Release
    • Release Testing Complete and Pass Rate meets project criteria (> 95% ?)
    • All release gating issues are addressed or reviewed/accepted for deferral
    • Release tagged on release branch
    • Release binaries (and supporting build artifacts) posted on the StarlingX CENGN mirror
    • Final documentation posted on docs.startlingx.io

Release Maintenance

  • Formal releases are maintained for a minimum of 12 months to maintain support for two previous StarlingX releases.
  • During the maintenance window, the release team will evaluate whether a maintenance release is required (upon request)
    • The maintenance release will be tagged on the release branch.
    • The maintenance release will undergo a mini regression test cycle.
    • The corresponding binaries will be posted on the StarlingX CENGN mirror.
  • After the 12-month maintenance window, the release will be considered End of Life.

List of Releases

Planned

Version Milestone-1 Milestone-2 Milestone-3 RC1 Release Date End of Life Date
stx.1.0 N/A N/A Sep 26 2018 Sep 28 2018 Oct 24 2018 N/A
stx.2.0 Jan 18 2019 Apr 29 2019 June 21 2019 Aug 5-9 2019 Aug 30 2019 Aug 2020
stx.3.0 Jul 17 2019 Sep 19 2019 Nov 15 2019 Nov 2? 2019 Dec 13 2019 Dec 2020
stx.4.0 Jan 24 2020 Apr 2 2020 Jul 8 2020 Jul 8 2020 Aug 5 2020 Aug 2021
stx.5.0 Nov 6 2020 Dec 18 2020 Mar 3 2021 Apr 20 2021 May 27 2021 May 2022
stx.6.0 Jul 12 2021 Aug 23 2021 Oct 4 2021 Nov 11 2021 Dec 13 2021 Dec 2022
stx.7.0 Jan 31 2022 Mar 9 2022 Jun 24 2022 Jul 27 2022 Sep 9 2022 Sep 2023
stx.8.0 Sep 23 2022 Oct 20 2022 Jan 31 2023 Feb 11 2023 Feb 22 2023 Sep 2024
stx.9.0 Mar 29 2023 May 24 2023 Feb 21 2024 Mar 8 2024 TBD TBD
stx.10.0 TBD TBD TBD TBD TBD TBD

Release Planning References