[Starlingx-discuss] RFC: StarlingX release cadence proposal
At our weekly call today we discussed release plans and release cadence. It was a long discussion and a good one. In the end we agreed that we'd like to follow the "bus stop" model of time based releases, and the Ubuntu model of an annual major (LTS) release with quarterly updates. Note that we did not suggest or agree that our currently planned "Release 2" should be a LTS. We all agreed that would be premature. We will declare an LTS at some point in the future. After separate discussions with David, Dean and Ada, rather than just proposing that "our current November release is the first quarterly release", I have a modified proposal to make for how we should handle releases. This is an RFC looking for feedback, questions and comments. Monthly milestone builds -------------------------------- Each month in the 2nd week of the month we will pull a branch. Dean and I suggest using year/month as the branch names, for simplicity. For example, we propose that the branch name for a July 2018 milestone build would be "stx.2018.07". The version number of that build would be "stx.2018.07.0x", where "0x" is a patch number. Yes, that's a change to how version numbers are handled. See below. The purpose of the monthly build is to 1) provide a stable build for long running test cycles 2) provide a "latest known to be good" build for users and partners, and 3) feed into the quarterly release. Fixes for show stopping bugs found in monthly build testing should be done on master and cherry-picked to the branch, increasing the patch number with each one. Quarterly release -------------------- Each quarter's quarterly release will be the monthly milestone build from the 2nd month in the quarter. This gives us 4-6 weeks of time to run test cycles and fix bugs for the release. For each quarterly release, the code freeze for that release is the 2nd week in the 2nd month in the quarter. Branch handling -------------- Branches from the 1st and 3rd month in a quarter can be short-lived. Branches for the 2nd month's (quarterly) build will live longer and I would suggest at any given time we keep the N and N-1 quarterly release branches open for bug fixes. If/when we declare a LTS release, that branch would of course live much longer. Why? ----- Why do we release a build from the 2nd week of the 2nd month? In part because that schedule misses the major holiday weeks. No one likes to do releases over the summer or winter holidays. Impact ------- The planning for release content for what we are currently calling "Release 2" will need to change. If this proposal is accepted, we won't have a "release 2" anymore, just a "release stx.2018.08.x" released in September and "release stx 2018.11.x" released in December. This changes the content we'd have in the release for the November summit (which would be the September release) but anyone there looking for the bleeding edge could pick up the RC for the December build, which would be in testing at that time. Branching also means that key bug fixes would need to be cherry picked to the older branches. New feature code should always go to master only. Version numbers ---------------- This proposal also includes a version number change from what the underlying TC product uses today. I think it's inevitable that the StarlingX project has separate / different version numbers from TC, but I don't know what it means to the system to actually get there, or what headaches it might cause. We should key that up as a separate discussion.
I like this proposal. I think it would give us periodic, stable versions to work on/with. Also, it gives us the opportunity to plan what would we have on each monthly | quarterly release, considering feature's priority. So, if we decide to follow this schema, let's define what we want to have ready for the Summit in November (the September release, as pointed by Bruce previously) and plan around that. Ada -- From: Jones, Bruce E [mailto:bruce.e.jones@intel.com] Sent: Wednesday, June 27, 2018 6:48 PM To: starlingx-discuss@lists.starlingx.io Subject: [Starlingx-discuss] RFC: StarlingX release cadence proposal At our weekly call today we discussed release plans and release cadence. It was a long discussion and a good one. In the end we agreed that we'd like to follow the "bus stop" model of time based releases, and the Ubuntu model of an annual major (LTS) release with quarterly updates. Note that we did not suggest or agree that our currently planned "Release 2" should be a LTS. We all agreed that would be premature. We will declare an LTS at some point in the future. After separate discussions with David, Dean and Ada, rather than just proposing that "our current November release is the first quarterly release", I have a modified proposal to make for how we should handle releases. This is an RFC looking for feedback, questions and comments. Monthly milestone builds -------------------------------- Each month in the 2nd week of the month we will pull a branch. Dean and I suggest using year/month as the branch names, for simplicity. For example, we propose that the branch name for a July 2018 milestone build would be "stx.2018.07". The version number of that build would be "stx.2018.07.0x", where "0x" is a patch number. Yes, that's a change to how version numbers are handled. See below. The purpose of the monthly build is to 1) provide a stable build for long running test cycles 2) provide a "latest known to be good" build for users and partners, and 3) feed into the quarterly release. Fixes for show stopping bugs found in monthly build testing should be done on master and cherry-picked to the branch, increasing the patch number with each one. Quarterly release -------------------- Each quarter's quarterly release will be the monthly milestone build from the 2nd month in the quarter. This gives us 4-6 weeks of time to run test cycles and fix bugs for the release. For each quarterly release, the code freeze for that release is the 2nd week in the 2nd month in the quarter. Branch handling -------------- Branches from the 1st and 3rd month in a quarter can be short-lived. Branches for the 2nd month's (quarterly) build will live longer and I would suggest at any given time we keep the N and N-1 quarterly release branches open for bug fixes. If/when we declare a LTS release, that branch would of course live much longer. Why? ----- Why do we release a build from the 2nd week of the 2nd month? In part because that schedule misses the major holiday weeks. No one likes to do releases over the summer or winter holidays. Impact ------- The planning for release content for what we are currently calling "Release 2" will need to change. If this proposal is accepted, we won't have a "release 2" anymore, just a "release stx.2018.08.x" released in September and "release stx 2018.11.x" released in December. This changes the content we'd have in the release for the November summit (which would be the September release) but anyone there looking for the bleeding edge could pick up the RC for the December build, which would be in testing at that time. Branching also means that key bug fixes would need to be cherry picked to the older branches. New feature code should always go to master only. Version numbers ---------------- This proposal also includes a version number change from what the underlying TC product uses today. I think it's inevitable that the StarlingX project has separate / different version numbers from TC, but I don't know what it means to the system to actually get there, or what headaches it might cause. We should key that up as a separate discussion.
Hi Bruce, As you know I am assigned to "Design and document the release" Starlingx task, as part of that task and since I am more a visual guy (Please feel free to use the excel I attached) I created a Schedule that I might be incorporated in our documentation in the future. I reviewed the proposal, looks good to me, but I still have some doubts/comments/pending? · In the "Starlingx Planning etherpad<https://etherpad.openstack.org/p/stx-planning>" you talked about Beta1/2 and RC1,2,3... Are they aligned with August Quarterly Cadence or this is just because of the ramp up of the project? · Just curious for quarterly release, why are you saying "This gives us 4-6 weeks of time to run test" and not more or less weeks? Comments · Regarding "version number change from what the underlying TC product uses today" in my previous BIOS project there was a file created when the SPI Firmware was compiled, the script was fed for the version of main components. This help us a lot when some bug appears and we had to do troubleshooting. Maybe it is a way/option to populate a script with underlying TC and CentOS product versions. Pending · How long N and N-1 long live branches are going to keep alive? And same question for short-live. · LTS is still a topic unclear. Do you have more about it? [cid:image002.jpg@01D412F6.520B6400] Fernando Hernandez Gonzalez Software Engineer Avenida del Bosque #1001 Col, El Bajío Zapopan, Jalisco MX, 45019 ____________________________________ Office: +52.33.16.45.01.34 inet 86450134 From: Cabrales, Ada [mailto:ada.cabrales@intel.com] Sent: Thursday, June 28, 2018 8:02 PM To: Jones, Bruce E <bruce.e.jones@intel.com>; starlingx-discuss@lists.starlingx.io Subject: Re: [Starlingx-discuss] RFC: StarlingX release cadence proposal I like this proposal. I think it would give us periodic, stable versions to work on/with. Also, it gives us the opportunity to plan what would we have on each monthly | quarterly release, considering feature's priority. So, if we decide to follow this schema, let's define what we want to have ready for the Summit in November (the September release, as pointed by Bruce previously) and plan around that. Ada -- From: Jones, Bruce E [mailto:bruce.e.jones@intel.com] Sent: Wednesday, June 27, 2018 6:48 PM To: starlingx-discuss@lists.starlingx.io<mailto:starlingx-discuss@lists.starlingx.io> Subject: [Starlingx-discuss] RFC: StarlingX release cadence proposal At our weekly call today we discussed release plans and release cadence. It was a long discussion and a good one. In the end we agreed that we'd like to follow the "bus stop" model of time based releases, and the Ubuntu model of an annual major (LTS) release with quarterly updates. Note that we did not suggest or agree that our currently planned "Release 2" should be a LTS. We all agreed that would be premature. We will declare an LTS at some point in the future. After separate discussions with David, Dean and Ada, rather than just proposing that "our current November release is the first quarterly release", I have a modified proposal to make for how we should handle releases. This is an RFC looking for feedback, questions and comments. Monthly milestone builds -------------------------------- Each month in the 2nd week of the month we will pull a branch. Dean and I suggest using year/month as the branch names, for simplicity. For example, we propose that the branch name for a July 2018 milestone build would be "stx.2018.07". The version number of that build would be "stx.2018.07.0x", where "0x" is a patch number. Yes, that's a change to how version numbers are handled. See below. The purpose of the monthly build is to 1) provide a stable build for long running test cycles 2) provide a "latest known to be good" build for users and partners, and 3) feed into the quarterly release. Fixes for show stopping bugs found in monthly build testing should be done on master and cherry-picked to the branch, increasing the patch number with each one. Quarterly release -------------------- Each quarter's quarterly release will be the monthly milestone build from the 2nd month in the quarter. This gives us 4-6 weeks of time to run test cycles and fix bugs for the release. For each quarterly release, the code freeze for that release is the 2nd week in the 2nd month in the quarter. Branch handling -------------- Branches from the 1st and 3rd month in a quarter can be short-lived. Branches for the 2nd month's (quarterly) build will live longer and I would suggest at any given time we keep the N and N-1 quarterly release branches open for bug fixes. If/when we declare a LTS release, that branch would of course live much longer. Why? ----- Why do we release a build from the 2nd week of the 2nd month? In part because that schedule misses the major holiday weeks. No one likes to do releases over the summer or winter holidays. Impact ------- The planning for release content for what we are currently calling "Release 2" will need to change. If this proposal is accepted, we won't have a "release 2" anymore, just a "release stx.2018.08.x" released in September and "release stx 2018.11.x" released in December. This changes the content we'd have in the release for the November summit (which would be the September release) but anyone there looking for the bleeding edge could pick up the RC for the December build, which would be in testing at that time. Branching also means that key bug fixes would need to be cherry picked to the older branches. New feature code should always go to master only. Version numbers ---------------- This proposal also includes a version number change from what the underlying TC product uses today. I think it's inevitable that the StarlingX project has separate / different version numbers from TC, but I don't know what it means to the system to actually get there, or what headaches it might cause. We should key that up as a separate discussion.
Fernando, you are my new hero. This visual of the schedule is awesome and super helpful. Thank you! Meanwhile, having heard no objections to the proposal, I'm going to assume that we all agree and that this is our new release plan. I will update my documents accordingly. To address your points below: · This plan completely replaces the Beta1/2 RC... plan. I will update the etherpad today. · Re: the "4-6 weeks of time to run tests", I was just guessing. Looking at your awesome table, it looks like we'll have 6 weeks most of the time except in February, where we only get 5 weeks. Comments · I don't know how TC does version numbers. Someone should find out and make a Story for how we want to change that. Pending · Regarding the N and N-1 branches, I would think that they would expire at the point they become an N-2 branch. For instance, the stx.08.2018 branch becomes N-2 once stx.02.2019 is created. · Long Term Support is likely going to remain unclear, or at least undecided, for now. We'll need to get a couple of releases under our belt and lots of test cycles passing before we want to declare anything LTS. brucej From: Hernandez Gonzalez, Fernando Sent: Tuesday, July 3, 2018 3:50 PM To: Cabrales, Ada <ada.cabrales@intel.com>; Jones, Bruce E <bruce.e.jones@intel.com>; starlingx-discuss@lists.starlingx.io Subject: RE: RFC: StarlingX release cadence proposal Hi Bruce, As you know I am assigned to "Design and document the release" Starlingx task, as part of that task and since I am more a visual guy (Please feel free to use the excel I attached) I created a Schedule that I might be incorporated in our documentation in the future. I reviewed the proposal, looks good to me, but I still have some doubts/comments/pending? · In the "Starlingx Planning etherpad<https://etherpad.openstack.org/p/stx-planning>" you talked about Beta1/2 and RC1,2,3... Are they aligned with August Quarterly Cadence or this is just because of the ramp up of the project? · Just curious for quarterly release, why are you saying "This gives us 4-6 weeks of time to run test" and not more or less weeks? Comments · Regarding "version number change from what the underlying TC product uses today" in my previous BIOS project there was a file created when the SPI Firmware was compiled, the script was fed for the version of main components. This help us a lot when some bug appears and we had to do troubleshooting. Maybe it is a way/option to populate a script with underlying TC and CentOS product versions. Pending · How long N and N-1 long live branches are going to keep alive? And same question for short-live. · LTS is still a topic unclear. Do you have more about it? [cid:image002.jpg@01D4178C.55BFF210] Fernando Hernandez Gonzalez Software Engineer Avenida del Bosque #1001 Col, El Bajío Zapopan, Jalisco MX, 45019 ____________________________________ Office: +52.33.16.45.01.34 inet 86450134 From: Cabrales, Ada [mailto:ada.cabrales@intel.com] Sent: Thursday, June 28, 2018 8:02 PM To: Jones, Bruce E <bruce.e.jones@intel.com<mailto:bruce.e.jones@intel.com>>; starlingx-discuss@lists.starlingx.io<mailto:starlingx-discuss@lists.starlingx.io> Subject: Re: [Starlingx-discuss] RFC: StarlingX release cadence proposal I like this proposal. I think it would give us periodic, stable versions to work on/with. Also, it gives us the opportunity to plan what would we have on each monthly | quarterly release, considering feature's priority. So, if we decide to follow this schema, let's define what we want to have ready for the Summit in November (the September release, as pointed by Bruce previously) and plan around that. Ada -- From: Jones, Bruce E [mailto:bruce.e.jones@intel.com] Sent: Wednesday, June 27, 2018 6:48 PM To: starlingx-discuss@lists.starlingx.io<mailto:starlingx-discuss@lists.starlingx.io> Subject: [Starlingx-discuss] RFC: StarlingX release cadence proposal At our weekly call today we discussed release plans and release cadence. It was a long discussion and a good one. In the end we agreed that we'd like to follow the "bus stop" model of time based releases, and the Ubuntu model of an annual major (LTS) release with quarterly updates. Note that we did not suggest or agree that our currently planned "Release 2" should be a LTS. We all agreed that would be premature. We will declare an LTS at some point in the future. After separate discussions with David, Dean and Ada, rather than just proposing that "our current November release is the first quarterly release", I have a modified proposal to make for how we should handle releases. This is an RFC looking for feedback, questions and comments. Monthly milestone builds -------------------------------- Each month in the 2nd week of the month we will pull a branch. Dean and I suggest using year/month as the branch names, for simplicity. For example, we propose that the branch name for a July 2018 milestone build would be "stx.2018.07". The version number of that build would be "stx.2018.07.0x", where "0x" is a patch number. Yes, that's a change to how version numbers are handled. See below. The purpose of the monthly build is to 1) provide a stable build for long running test cycles 2) provide a "latest known to be good" build for users and partners, and 3) feed into the quarterly release. Fixes for show stopping bugs found in monthly build testing should be done on master and cherry-picked to the branch, increasing the patch number with each one. Quarterly release -------------------- Each quarter's quarterly release will be the monthly milestone build from the 2nd month in the quarter. This gives us 4-6 weeks of time to run test cycles and fix bugs for the release. For each quarterly release, the code freeze for that release is the 2nd week in the 2nd month in the quarter. Branch handling -------------- Branches from the 1st and 3rd month in a quarter can be short-lived. Branches for the 2nd month's (quarterly) build will live longer and I would suggest at any given time we keep the N and N-1 quarterly release branches open for bug fixes. If/when we declare a LTS release, that branch would of course live much longer. Why? ----- Why do we release a build from the 2nd week of the 2nd month? In part because that schedule misses the major holiday weeks. No one likes to do releases over the summer or winter holidays. Impact ------- The planning for release content for what we are currently calling "Release 2" will need to change. If this proposal is accepted, we won't have a "release 2" anymore, just a "release stx.2018.08.x" released in September and "release stx 2018.11.x" released in December. This changes the content we'd have in the release for the November summit (which would be the September release) but anyone there looking for the bleeding edge could pick up the RC for the December build, which would be in testing at that time. Branching also means that key bug fixes would need to be cherry picked to the older branches. New feature code should always go to master only. Version numbers ---------------- This proposal also includes a version number change from what the underlying TC product uses today. I think it's inevitable that the StarlingX project has separate / different version numbers from TC, but I don't know what it means to the system to actually get there, or what headaches it might cause. We should key that up as a separate discussion.
participants (3)
-
Cabrales, Ada
-
Hernandez Gonzalez, Fernando
-
Jones, Bruce E