[openstack-dev] [release] [pbr] semver on master branches after RC WAS Re: How do I calculate the semantic version prior to a release?

David Moreau Simard dms at redhat.com
Thu Mar 24 20:56:55 UTC 2016

On Thu, Mar 24, 2016 at 1:58 PM, Doug Hellmann <doug at doughellmann.com> wrote:
> Let's turn the question around: Why do you (or anyone) want to
> package things that are not tagged as releasable by the contributors
> creating them? What are those packages used for?

I know Ubuntu provides similar trunk repositories [1] but I'll reply
to this specific bit from the RDO perspective.

It's a lot of work to package OpenStack and we can't realistically
ship quickly if we only start working once a stable release is done.
Consumers (end users and deployment projects) of RDO packages have the
same need - to keep up with trunk to do a stable release ASAP.

The long version:
RDO is first and foremost a community packaging effort of OpenStack
for Red Hat based distributions.

There are two main reasons why we keep up with trunk for packages
throughout the whole cycle:

#1 Consumers (i.e, end users, deployment projects) are also in their
development cycles and want/need to keep up with trunk.
We want to be able to provide RDO packages for these consumers to
enable them to develop and test their tooling against the latest code
from trunk.
For example, the gate jobs for puppet module master branches run
integration tests using the trunk repositories [2] while their stable
branches use the stable repositories.

There's a lot of changes that are introduced in a cycle, new features,
deprecations, removal, non-backwards compatible, etc.
Until these consumers install a package that contains one of these
changes, they won't know how to use it, they won't know they're
broken, etc.
By continually providing up-to-date packages, they are able to test
them right away and it allows them to spread the necessary work
throughout the whole cycle, which brings me to the next point.

#2 It's a lot of work and we want to release quickly.
Seriously, just packaging and testing the packaging itself is a lot of work.
New projects, new libraries, new dependencies, new configuration
files, etc -- and we're not even installing them or configuring them.

If we started packaging OpenStack only when the official stable
release would be out, it would takes us several weeks/months to get
stable packaging for RDO out.
Mitaka is due in April and we're also on target to be releasing in
April. Releasing the packaging for Mitaka months later is not
something we want to do.

This brings us back to the consumers who install and configure
OpenStack with RDO packages, ex:
- TripleO
- Packstack
- Kolla
- Puppet-OpenStack

If we ship RDO packaging months after a release, this means these
projects can't develop and test against this release for months.
This means their own release will also be delayed, almost bringing us
to the next official release of OpenStack.

At the risk of tooting my own horn a bit here, I went a bit more in
depth into how RDO keeps up with trunk in a talk I've done recently
[3] if you're interested.

[1]: http://reqorts.qa.ubuntu.com/reports/ubuntu-server/cloud-archive/mitaka_versions.html
[2]: https://github.com/openstack/puppet-openstack-integration/blob/b33ddbe34dacd4244cea5f6b8e674db5c8c939d3/manifests/repos.pp#L27
[3]: https://www.youtube.com/watch?v=XAWLm3jP7Mg&t=647

David Moreau Simard
Senior Software Engineer | Openstack RDO

dmsimard = [irc, github, twitter]

More information about the OpenStack-dev mailing list