[OpenStack-Infra] About openstack branching model and openstack branch stable/icehouse

Jeremy Stanley fungi at yuggoth.org
Wed Jun 11 19:39:28 UTC 2014


On 2014-06-11 18:00:30 +0800 (+0800), Le Tian Ren wrote:
> This thread is about branching model, since my team just put a
> project on stackforge and ready to create a milestone-proposed
> branch for final release to support openstack icehouse release.

This is probably a topic better addressed by the release managers
rather than the systems automation (Infrastructure) team, but
most/all of them subscribe to this mailing list too and may chime in
with better answers...

> Now it's time for us to consider branching stategy(parallel
> development) on github, guess there are 2 options:
> 
> a popular NVIE model,
> http://nvie.com/posts/a-successful-git-branching-model/
> 
> OpenStack branching model,
> https://wiki.openstack.org/wiki/Branch_Model
[...]

OpenStack's server project branch model is basically a subset of
NVIE, simplified by use of a topic-branch-like code review workflow
and pre-merge automated testing ("trunk gating").

> 1. OpenStack's master branch works as both the development and
> master (production ready) branch of the NVIE model together,
> right? I wonder 2 main branches vs 1 main branch, which one is
> better and why?

Among other reasons, we ultimately want our equivalent of the
"develop" branch to be usable at all times since that improves
developer experience dramatically (trying to develop patches to
broken code makes it much harder to test that your patches actually
work). We try to consider developers as first-class users of the
software in that regard.

> 2. I noticed that there are stable/icheouse, stable/havana
> branches on github web GUI of many openstack projects like nova,
> heat, ironic. To what branches mentioned in the above 2 models can
> these stable/* mapped, supporting release branches? hot fix
> branches?

I would consider them additional separate "master" branches in NVIE
terminology. They never merge back into the trunk master/develop
branch, and are purely a parallel continuation of backported fixes
to previous releases. This provides much cleaner access to reviewed
and tested backports of bug fixes consumable by downstream
distributors and deployers, rather than expecting each to do the
backporting work on their own independently from our developers.

> BTW, if I git clone these projects, I cannot see those stable/*
> branches with git branch.. why?

That's just the way Git works. You need to pass the -a switch to the
branch subcommand if you want to see remote branches you're not
tracking.

> And when were they created in a OpenStack release cycle and what
> for?
[...]

These are the stable support branches for downstreams who don't want
to always consume from trunk and instead want a vetted subset of
fixes for security vulnerabilities and severe usability bugs without
having to consume new features and forced configuration changes.
They are created at each release and track the backported fixes and
stable point release tags associated with those major release
versions.
-- 
Jeremy Stanley



More information about the OpenStack-Infra mailing list