Herding cats into boxes

Preview:

Citation preview

Herding Cats Into BoxesHow OpenStack release management changes with Big Tent

Doug Hellmann (@doughellmann)Thierry Carrez (@tcarrez)

CC

-BY

http

s://w

ww

.flic

kr.c

om/p

hoto

s/nr

omag

na/3

9858

8643

5/

Two approaches

Pre-versioning1.0alpha1, 1.0beta2, 1.0rc1… 1.0Post-versioning1.0, 1.0.1, 1.1.0… 2.0

At the beginning6-month time-based releases

YEAR.SEQUENCE (2014.1, 2014.2… 2015.1)Swift: feature-based, frequent

releasesX.Y.Z (1.1, 1.2, 1.2.1… 2.0)Post-versioning for stable release

updates2015.1.1 or 2.0.1

Client libraries

Always backward-compatibleSingle release channelSemantic versioning

Oslo

Incubator copy-and-pastePre-versioning with alphasPost-versioning without alphas

CC

-BY

http

s://w

ww

.flic

kr.c

om/p

hoto

s/nr

omag

na/3

9858

8643

5/

Standardized library releases

Release As NeededSemantic VersioningRelease Day GuidelinesReviewable Release Requests

Semi-automated releasesTaggingLaunchpad MilestoneAnnouncement Emails

A push for intermediary releases

Reduce tight couplingMore flexibility

Death of common versioning

Intermediary requires own versioningLess value for YEAR.SEQUENCE modelContinued confusion if we keep bothSwitch once or switch later

CC

-BY

http

s://w

ww

.flic

kr.c

om/p

hoto

s/nr

omag

na/3

9858

8643

5/

What about stable branches ?

Used to do synchronized point releases...but what does that mean in the big tent...but you can update just a piece

Stable branch point releases

Tried getting rid of them completely...but people still wanted reference points

Tried tagging all commits...but people feared the pollution of tag space

Version numbers

nova 12.0.0 keystone 8.0.0swift 2.5.0 neutron 7.0.0heat 5.0.0 zaqar 1.0.0ironic 4.2.0 ...

http://docs.openstack.org/releases/

Release modelsrelease:cycle-with-milestones

pre-versioned, one time-based releaserelease:cycle-with-intermediary

post-versioned, release as-needed

Other release modelsrelease:independent

outside of release cycle and stable branchesrelease:noneno “release”

Liberty stable point releases

Tag as-needed, or when OSSACommunicate through releases repoEncouraging regular releasesRelease notes

Reno in-tree release notes

Compile notes from small filesScan branch history for inputsdocs.openstack.org/developer/$PROJECT

LaunchpadGood for planningHistorical tracking features complex

AutomationRun tagging script in CIMore tools for liaisons

MilestonesReduce strict synchronization

doug@doughellmann.comhttps://doughellmann.com@doughellmann ondhellmann on

thierry@openstack.org

http://ttx.re@tcarrez on

ttx on

Recommended