[openstack-dev] How to stage client major releases in Gerrit?

Mark Washenberger mark.washenberger at markwash.net
Wed Nov 20 18:14:42 UTC 2013

Hi folks,

The project python-glanceclient is getting close to needing a major release
in order to finally remove some long-deprecated features, and to make some
minor adjustments that are technically backwards-incompatible.

Normally, our release process works great. When we cut a release (say
1.0.0), if we realize it doesn't contain a feature we need, we can just add
the feature and release a new minor version (say 1.1.0). However, when it
comes to cutting out the fat for a major release, if we find a feature that
we failed to remove before releasing 1.0.0, we're basically screwed. We
have to keep that feature around until we feel like releasing 2.0.0.

In order to mitigate that risk, I think it would make a lot of sense to
have a place to stage and carefully consider all the breaking changes we
want to make. I also would like to have that place be somewhere in Gerrit
so that it fits in with our current submission and review process. But if
that place is the 'master' branch and we take a long time, then we can't
really release any bug fixes to the v0 series in the meantime.

I can think of a few workarounds, but they all seem kinda bad. For example,
we could put all the breaking changes together in one commit, or we could
do all this prep in github.

My question is, is there a correct way to stage breaking changes in Gerrit?
Has some other team already dealt with this problem?

For the purposes of this discussion, it will be utterly unproductive to
discuss the relative merits of backwards-breaking changes. Rather let's
assume that all breaking changes that would eventually land in the next
major release are necessary and have been properly communicated well in
advance. If a given breaking change is *not* proper, well that's the kind
of thing I want to catch in gerrit reviews in the staging area!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131120/967005c9/attachment.html>

More information about the OpenStack-dev mailing list