[openstack-dev] [nova] versioning scheme for consumable libraries

Eoghan Glynn eglynn at redhat.com
Tue Nov 20 17:21:25 UTC 2012



Hi Folks,

I just want to scare up some ideas on what the versioning scheme
should look like for the nova virt library discussed previously[1]
(primarily for ceilometer use).

Initially I had in mind something like the scheme used for API
extensions, i.e. a date-based version that's independent of the
primary nova version cycle.

However on looking into the API extensions in more detail, I see
that it's intended to be interpreted in relation to the primary API
versioning, which is clearly not applicable in this case.

So general principles for the lib version scheme would include:

- library API versioning is expected to be slow-moving,
  possibly spanning several release cycles, hence could be
  decoupled from the main year.quarter version identifiers 

- the API might be extended in purely additive ways, as we may
  decide to expose some new aspects of the virt abstraction,
  without breaking existing clients

- the internals of the API may be patched from time to time
  in backward compatible ways that do not break the consumer

Would triplet-based versioning loosely based on the above
be too simple minded? 

e.g. nova-virt-1.0.1 for the first patch fix over the initial
release, or nova-virt-1.2.0 for the next additive change.

The other thing to consider here would be the release mechanics,
i.e. whether it's sufficient for library releases to be
piggy-backed alongside the main nova releases, or whether
we'd need to decouple this process also (so that a library
release can happen completely independently).

Thoughts?

Cheers,
Eoghan


[1] http://wiki.openstack.org/EfficientMetering/FutureNovaInteractionModel#option_5



More information about the OpenStack-dev mailing list