Release process proposal

Ofer Schreiber oschreib at redhat.com
Mon Feb 20 11:52:58 UTC 2012



----- Original Message -----
> On 02/19/2012 03:51 PM, Ofer Schreiber wrote:
> >
> > ----- Original Message -----
> >> Since we currently doesn't have any official Release process,
> >> here's
> >> my proposal:
> >>
> >> 1. oVirt will issue a new release every 6 months.
> >>    a. EXCEPTION: First three releases will be issued in a ~3 month
> >>    interval.
> >>    b. Exact dates must be set for each release.
> >
> > <SNIP>
> >
> > Release process proposal V2 (with few open items)
> 
> (I'd change the subject to say it's a V2)
> 
> >
> > 1. oVirt will issue a new release every 6 months.
> >    a. EXCEPTION: First three releases will be issued in a ~3 month
> >    interval.
> >    b. Exact dates must be set for each release.
> >
> > 2. A week after the n-1 release is out, a release criteria for the
> > new release should be discussed.
> >    a. Release criteria will include MUST items and SHOULD items
> >    (held in wiki)
> >      + MUST items will DELAY the release in any case.
> >      + SHOULD items will include less critical flows and new
> >      features.
> >      + SHOULD items will be handled as "best-effort" by component
> >      owners
> 
> there is a difference between defining quality goals and PRD-like
> (feature) goals.
> what could be a MUST here?

Release criteria is absolutely not a PRD. it's the minimal criteria needed in order to release a specific version to the world.
IMO, new (big) features can be in the release criteria (only as SHOULD). I do see some value saying "This release SHOULD contain the new ovirt-engine-coffee-maker package", especially if Eli, the owner of that component really want it in the next version of oVirt, and we have users waiting for it.

> 
> >    b. Component owners (e.g. Node, engine-core, vdsm) must ACK the
> >    criteria suggested.
> >    c. Release criteria discussions shouldn't take more then 2 weeks
> 
> s/then/than/
> 
> >    d. Progress on MUST items should be review every month, during
> >    the weekly meeting
> 
> s/review/reviewed/
> and? I'm not sure there is a lot to be done other than to revisit
> with
> owner / un-must them?

un-must is one of the possibilities. it will raise the owner/community attention as well.

> 
> >
> > 3. Discuses the new version number according to the release
> > criteria/amount of features.
> >    a. Versions will be handled by each component.
> >    b. The general oVirt version will the engine version.
> >
> > 5. 60 Days before release - Feature freeze
> >    a. EXCEPTION: 30 days for 3 month release cycle
> >    b. All component owners must create a new versioned branch
> 
> I don't see why this is a must, as long as they can specify the
> version
> to be used (i.e., it could be an existing released version or an
> already
> existing branch created prior to this date).

I think branching is a must. especially during the "release candidate" phase.
What will you do with new commits (that should not get into the new version?)

(I don't care about "new" branch, just a separate one. If a specific owner doesn't want to release a new version, that's a different discussion)

> 
> >    c. "Beta" version should be supplied immediately after.
> >      + And on a nightly basis afterwards.
> 
> a nightly beta? I wouldn't call a nightly build a beta, just a
> nightly
> build of the branch.

Any suggestion about the frequency of Beta builds?
I'm not sure we want to create so many different releases (e.g - stable, beta/rc, nightly)

> 
> >    d. Stabilization efforts should start on the new builds.
> >    e. Cherry-pick fixes for high priority bugs.
> >      + Zero/Minimal changes to user interface.
> >      + Inform in advance on any user interface change, and any API
> >      change.
> >    f. At this stage, we should start working on the release notes.
> >
> > 6. 30 days before release - release candidate
> >    a. EXCEPTION: 15 days for 3 month release cycle
> >    b. If no blockers (MUST violations) are found the last release
> >    candidate automatically becomes the final release.
> >      + Rebuild without the "RC" string.
> >      + ANOTHER OPTION- Avoid "Beta" or "RC" strings, just use
> >      major.minor.micro, and bump the micro every time needed.
> >    c. Release manager will create a wiki with list of release
> >    blockers
> >    d. Only release blockers should be fixed in this stage.
> >    e. OPTIONAL: final release requires three +1 from community
> >    members
> >      + This item is currently optional, I'm not sure what a +1
> >      means (does a +1 means "I tested this release", or "This
> >      release generally looks fine for me"?)
> >
> > 7. Create a new RC if needed
> >    a. There must be at least one week between the last release
> >    candidate and the final release
> >    b. Go/No go meetings will happen once a week in this stage.
> >      + Increase the amount of meeting according to the release
> >      manager decision.
> >      + Release manager will inform the community on any delay.
> >
> > 8. Release
> >   a. Create ANNOUNCE message few days before actual release.
> >   b. Move all release candidate sources/binaries into the "stable"
> >   directory
> >   c. Encourage community members to blog / tweet about the release
> >   d. PARTY
> >
> > Have any comments? ideas? share them with the list!
> >
> > Thanks,
> > Ofer Schreiber.
> > _______________________________________________
> > Arch mailing list
> > Arch at ovirt.org
> > http://lists.ovirt.org/mailman/listinfo/arch
> 
> 



More information about the Arch mailing list