[OpenStack-Infra] The future of milestone-proposed branches

Thierry Carrez thierry at openstack.org
Fri Nov 22 13:25:27 UTC 2013


Hi!

During the summit I mentioned we could try to get rid of
milestone-proposed branch handling around intermediary milestones, and
replace it by a simple tag on master that would be applied on the
milestone "delivery" date.

I looked into it in more details and I'm not sure it really simplifies
anything. I'd still have to track which the "proposed" SHA for the
milestone for each project is, and the most convenient way to do that is
actually to maintain a milestone-proposed reference pointing to that SHA...

There were actually two problems I was trying to solve:
1- Avoid reusing "milestone-proposed" branches as it creates confusion
when people end up reusing them at a later point
2- Script the release process parts that are not yet automated (like
milestone-proposed branch creation / deletion)
I think we can definitely solve both issues while keeping
milestone-proposed-like branches around.

To avoid reusing milestone-proposed branches we can just use
proposed/$MILESTONE instead ("proposed/icehouse-1", then
"proposed/icehouse" for the RCs and final) and apply [access
"refs/heads/proposed/*"] rules on every project. Since I think
nova-milestone-proposed.tar.gz still looks better (and would create less
clutter) than nova-proposed-icehouse-1.tar.gz, we could special-case the
rename in the {name}-branch-tarball job template shell script (in
modules/openstack_project/files/jenkins_job_builder/config/python-jobs.yaml).
The merge_tags.sh script also special-cases milestone-proposed and would
need to look into proposed/* too. Do you see any other adherence we'd
need to fix ?

To script milestone-proposed branch creation, it looks like granting
createReference to "Release managers" on refs/heads/proposed/* would do
the job (although maybe the current "push" permission on
"refs/for/refs/*" might already be enough). Then I suspect I could "git
branch proposed/icehouse-1 $SHA && git push gerrit proposed/icehouse-1".

To script milestone-proposed branch deletion... looks like we'd have to
allow push +force on the same refs. Not exactly sure how you git-push
the deletion of a branch, but the git/gerrit experts on this list should
be able to tell me.

In the future we could automate this deletion so that it would run as a
post-release job. It's a bit tricky though, since proposed/icehouse-1
needs to be deleted at the end of pre-release, while proposed/icehouse
(the branch that will hold all the RCs and get turned into
stable/icehouse) should stay alive until final release and its
conversion to stable/*.

If this all sounds sane I'll get to work and propose something, maybe in
time for icehouse-1.

-- 
Thierry Carrez (ttx)



More information about the OpenStack-Infra mailing list