[Pulp-dev] RFC: Y Release Cadence Proposal
Jeff Ortel
jortel at redhat.com
Tue Oct 25 16:45:55 UTC 2016
+1 to proposal.
On 10/14/2016 02:08 PM, Sean Myers wrote:
> I think the current Y Release Cadence has proven to be untenable.
>
> Here's a summary of what I think about it based on our experience:
> * Branching at the first build (beta 1 release) works very well, so we should keep doing that.
> * 6-week GA-to-GA dev windows are too small, so we should increase this to 9 weeks (maybe more)
> * Our betas seem to always catch a few blockers, so the timeline always slips between beta and RC,
> and might slip again between RC and GA. This is completely normal, and is in fact why we have
> Beta and RC stages, so this uncertainty should be built into the process.
> * I don't know that we ever really respected the feature freeze; it seemed to me like the knowledge
> that we were cutting a beta in a week was "good enough", and there's no need to formally freeze
> development. Our three-week sprint cycles also do a good job of effectively feature-freezing
> every three weeks.
> * "Resetting the clock" after each beta, and especially after each release candidate, doesn't
> seem to add stability. Instead, it seems to add frustration in the form of release delays. The
> decision to advance from Beta to RC and RC to GA should be handled per-release, with the only
> strictly enforced time restriction being that a minimum of one week should pass before advancing
> to the next phase is allowed.
>
> With those points in mind, the proposed changes are to release the first beta in a time-based way,
> 9 weeks after the release date of the first beta of the previous Y release. Once a beta is released,
> no release timelines are guaranteed for the progression from beta to RC to GA beyond reasonable
> minimums (currently 1 week minimum testing time for a beta, and 1 week minimum testing time for RC).
>
> Scheduling from beta to beta isolates the release process from the normal pre-release rebuilding
> delays that happen as a result of fixing blocking issues, while still giving the release schedule
> predictability so folks can do reasonable planning around our release dates.
>
> With all that preamble, here's my proposed "Y" release schedule:
>
> ---
>
> The Y release cycle begins on the day of the previous *Beta* Y release.
>
> * week 0: (Y-1 Release) Previous Y release cycle begins with a Beta Release
> * week 9: (Y Release) Y release cycle begins with a Beta Release
> ** dev branch created for this Y Release
> ** build system adapted to build from dev branch
> ** master branch now tracks development for next Y release
> ** beta is built from dev branch
> * week 9+1?: Y release advances through Beta phase to RC as phase conditions are met, with
> a minimum time in Beta of one week. Release schedule is no longer time-based.
> * week 9+2?: Y release advances through RC phase to GA as phase conditions are met, with
> a minimum time in RC of one week.
>
> ---
>
> The phase conditions mentioned in this schedule are listed on the linked wiki page already,
> but should be more clearly defined. Along with this proposed schedule, here are my proposed
> definitions for those terms:
>
> Beta: All bug fixes that need to be in the release are complete. Dev believes the release is ready.
> For Y releases, verification of the new functionality begins.
> Release Candidate (RC): Verification of new functionality is completed. No new bug fixes accepted
> after this point except fixes for regressions, upgrade failures, or security.
> There are no release candidates for Z releases.
> Generally Available (GA): Unchanged.
> Dev branch: Unchanged.
> Feature Freeze: This definition should go away if feature freeze is removed from our "Y" release schedule.
> If we keep the feature freeze step in, this definition can remain unchanged.
>
> This schedule is less structured that the previous iteration, but I think it more accurately
> reflects how our releases actually go.
>
> The 2.10.0 beta was first released August 4, which would mean that under this schedule we would
> have begun the 2.11 release process last week. That feels about right to me, if we were staying
> on a strict time-based release cadence for 2.y, but going back to a 12-week (quarterly-ish)
> schedule would probably also be reasonable.
>
> For reference, here's the current "Y" release cadence posted in the project wiki[0]:
>
> ---
>
> The Y release cycle begins on the day of the previous GA Y release.
>
> * week 0: (Y-1) Previous Y Generally Available Release
> * week 3: Feature Freeze
> * week 4: Beta Y release
> ** dev branch created for this Y Release
> ** build system adapted to build from dev branch
> ** master branch now tracks development for next Y release
> ** beta is built from dev branch
> * week 5: Y Release Candidate
> * week 6: Generally Available Y Release
>
> ---
>
> More words here because this email doesn't have enough words...
>
> [0]: https://pulp.plan.io/projects/pulp/wiki/Release_Schedule
>
>
>
> _______________________________________________
> Pulp-dev mailing list
> Pulp-dev at redhat.com
> https://www.redhat.com/mailman/listinfo/pulp-dev
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 847 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/pulp-dev/attachments/20161025/f89e8d61/attachment.sig>
More information about the Pulp-dev
mailing list