Jump to: navigation, search

Difference between revisions of "StarlingX/Release Plan"

(Monthly Milestones)
m (Release Milestones)
(24 intermediate revisions by 3 users not shown)
Line 7: Line 7:
 
* is considered stable and can be used for repeatable builds
 
* is considered stable and can be used for repeatable builds
 
* will have no additional features added
 
* will have no additional features added
* will backport bug fixes for critical issues only
+
* will backport bug fixes for critical/high issues only
 
* will be maintained in the canonical repositories for a specified minimum period
 
* 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 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/2018.10 release branch will be initially tagged as 2018.10.0
+
* 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).
 
* 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).
  
Line 16: Line 16:
 
'''Releases are published in a time based fashion:'''
 
'''Releases are published in a time based fashion:'''
 
* The initial (beta) StarlingX release was released in October 2018.
 
* The initial (beta) StarlingX release was released in October 2018.
* In 2019, StarlingX releases will align with openstack releases. StarlingX will have two releases a year, following a cycle-trailing model relative to openstack core releases.
+
* In 2019 and moving forward, StarlingX releases will align with OpenStack releases. StarlingX will have two releases a year, following a cycle-trailing model relative to the OpenStack release cycle.
** The goal is to release the StarlingX release 6 weeks (TBC) after the corresponding openstack release.
+
** The goal is to release StarlingX 4-6 weeks after the corresponding OpenStack release.
** Background: During the Openstack Berlin Summit in Nov 2019, the StarlingX TSC discussed a proposal to have StarlingX track openstack master during the development cycle and align on the latest openstack release once available. To support this direction, the StarlingX release cadence was updated accordingly.
+
** Background: During the OpenStack Berlin Summit in Nov 2018, the StarlingX TSC discussed a proposal to have StarlingX track OpenStack master during the development cycle and align on the latest OpenStack release once available. To support this direction, the StarlingX release cadence was updated accordingly.
  
 
=== Formal Releases ===
 
=== Formal Releases ===
 
* Released two times per year
 
* Released two times per year
* Branch name format r/YYYY.MM[.n]
+
* Branch name format r/X.0
 
** 'r/' is the branch name prefix (release)
 
** 'r/' is the branch name prefix (release)
** .n is a sequence number appended if more than one branch is created in a given month
+
** 'X' is the major release identifier
r/2018.10
+
* Release Candidate is tagged as vX.Y.Z.rcN
* Release Candidate is tagged as YYYY.MM.rcX
+
* Release is tagged as vX.Y.Z
* Release is tagged as YYYY.MM.0
 
  
=== Monthly Milestones (under review) ===
+
=== Branch Logistics ===
* Informal milestones to be used by the test team for a pre-defined sanity/regression test cycle.
+
* StarlingX master builds docker images from OpenStack master during the development cycle
* Created each month in the 2nd week of the month a branch will be pulled.
+
* Once the OpenStack release branch is created (ex: Stein), switch the builds to the release branch
* Branch name format m/YYYY.MM
+
* Once the StarlingX release branch is created, the master StarlingX builds will switch back to OpenStack master in the default.xml manifest
** 'm/' is the branch name prefix (milestone)
+
* The StarlingX release branch will continue building from the stable OpenStack release branch (ex: Stein)
** .n is a sequence number appended if more than one branch is created in a given month
+
* StarlingX maintenance (dot) releases will periodically pick up the latest from the stable OpenStack release branch (ex: Stein)
m/2018.07
+
[[File:Stx-branch-logistics.png]]
* Milestone is tagged as YYYY.MM.0
 
  
 
== Release Milestones ==
 
== 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
+
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:  
 
* Milestone-1:  
 
** Release priorities and major features defined.  
 
** Release priorities and major features defined.  
 
** High level resourcing secured.
 
** High level resourcing secured.
 
* Milestone-2:  
 
* Milestone-2:  
** Spec Freeze
+
** Spec freeze; no new specs accepted for the release. The focus is on closing current specs
** Feature Development underway  
+
** Feature plans defined and feature development well underway  
** TBD: others?  Doc deliverables?  Test Automation deliverables?
+
** Release test plan defined - including test automation deliverables
 
* Milestone-3:  
 
* Milestone-3:  
** Feature Freeze: All Feature Code Submitted and Feature Testing Complete
+
** Feature freeze: All feature code merged and feature testing completing within 2 weeks
 
** No blocking issues from Automated Sanity and Regression  
 
** No blocking issues from Automated Sanity and Regression  
** Release Test Plan Defined  (any specific test automation deliverables?)
+
** No critical issues severely impacting system stability or release test activities
** Preliminary Documentation Available
+
** Release regression testing underway
** TBD: any criteria for  # of open bugs for the milestone declaration?
+
** Documentation plan defined; including a prioritized list of the various documentation items
 
* RC1 (aka RC period start):
 
* RC1 (aka RC period start):
** Release Branch Created & First Release Candidate Tagged
+
** Release branch created & first release candidate tagged
 
** RC binaries (and supporting build artifacts) posted on the StarlingX CENGN mirror
 
** RC binaries (and supporting build artifacts) posted on the StarlingX CENGN mirror
*** To be discussed: how often do we build an "RC" ISO and post during the RC period?
+
*** RC builds will be posted daily on CENGN during the RC period.
** Release Testing Start
+
*** The daily builds will not be explicitly tagged until the end of the RC period
** Only Bug fixes are allowed in the release branch
+
** 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
 
* Final Release
 
* Final Release
 
** Release Testing Complete and Pass Rate meets project criteria (> 95% ?)
 
** Release Testing Complete and Pass Rate meets project criteria (> 95% ?)
 
** All release gating issues are addressed or reviewed/accepted for deferral
 
** All release gating issues are addressed or reviewed/accepted for deferral
 
** Release tagged on release branch
 
** Release tagged on release branch
** Release binaries (and supporting build artifcats) posted on the StarlingX CENGN mirror
+
** Release binaries (and supporting build artifacts) posted on the StarlingX CENGN mirror
 
** Final documentation posted on docs.startlingx.io
 
** Final documentation posted on docs.startlingx.io
  
 
== Release Maintenance ==
 
== Release Maintenance ==
* Formal releases are supported for 12 months. This allows support to two previous StarlingX releases.
+
* Formal releases are maintained for a minimum of 12 months to maintain support for two previous StarlingX releases.
* During the maintenance window, if there are fixes on the release branch, a new maintenance release will be created once a month.  
+
* During the maintenance window, the release team will evaluate monthly whether a maintenance release is required.
 
** The maintenance release will be tagged on the release branch.
 
** The maintenance release will be tagged on the release branch.
 
** The maintenance release will undergo a mini regression test cycle.
 
** The maintenance release will undergo a mini regression test cycle.
 
** The corresponding binaries will be posted on the StarlingX CENGN mirror.
 
** The corresponding binaries will be posted on the StarlingX CENGN mirror.
* Long Term Support (if any): TBD
+
* After the 12-month maintenance window, the release will be considered End of Life.
  
 
== List of Releases ==
 
== List of Releases ==
Line 80: Line 81:
 
! Version !! Milestone-1 !! Milestone-2 !! Milestone-3 !! RC1 !! Release Date !! End of Life Date
 
! Version !! Milestone-1 !! Milestone-2 !! Milestone-3 !! RC1 !! Release Date !! End of Life Date
 
|-
 
|-
| 2018.10.0 || N/A || N/A || 2018/09/26 || 2018/09/28|| 2018/10/24 || TBD
+
| stx.1.0 || N/A || N/A || Sep 26 2018 || Sep 28 2018 || Oct 24 2018 || N/A
 
|-
 
|-
| 2019.xx.0 || TBD || TBD || TBD || TBD || TBD || TBD
+
| stx.2.0 || Jan 18 2019 || Apr 29 2019 || June 21 2019 || Aug 5-9 2019 || Aug 30 2019 || Aug 2020
 
|-
 
|-
| 2019.yy.0 || TBD || TBD || TBD || TBD || TBD || TBD
+
| stx.3.0 || Jul 17 2019 || Sep 4 2019 || Oct 16 2019 || Nov 13 2019 || Dec 4 2019 || Dec 2020
 
|}
 
|}
  
== Release Team ==
+
== 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]
 
* 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]

Revision as of 22:30, 3 October 2019

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:

  • The initial (beta) StarlingX release was released in October 2018.
  • In 2019 and moving forward, StarlingX releases will align with OpenStack releases. StarlingX will have two releases a year, following a cycle-trailing model relative to the OpenStack release cycle.
    • The goal is to release StarlingX 4-6 weeks after the corresponding OpenStack release.
    • Background: During the OpenStack Berlin Summit in Nov 2018, the StarlingX TSC discussed a proposal to have StarlingX track OpenStack master during the development cycle and align on the latest OpenStack release once available. To support this direction, the StarlingX release cadence was updated accordingly.

Formal Releases

  • Released two times per year
  • Branch name format r/X.0
    • 'r/' is the branch name prefix (release)
    • 'X' is the major release identifier
  • Release Candidate is tagged as vX.Y.Z.rcN
  • Release is tagged as vX.Y.Z

Branch Logistics

  • 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.
  • Milestone-2:
    • Spec freeze; no new specs accepted for the release. The focus is on closing current specs
    • 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 2 weeks
    • No blocking issues from Automated Sanity and Regression
    • No critical issues severely impacting system stability or release test activities
    • Release regression testing underway
    • Documentation plan defined; including a prioritized list of the various documentation items
  • 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
  • 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 monthly whether a maintenance release is required.
    • 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 4 2019 Oct 16 2019 Nov 13 2019 Dec 4 2019 Dec 2020

Release Planning References