[openstack-dev] [Heat] Defining what is a SupportStatus version

Zane Bitter zbitter at redhat.com
Mon Sep 15 16:31:33 UTC 2014


On 14/09/14 11:09, Clint Byrum wrote:
> Excerpts from Gauvain Pocentek's message of 2014-09-04 22:29:05 -0700:
>> Hi,
>>
>> A bit of background: I'm working on the publication of the HOT
>> resources reference on docs.openstack.org. This book is mostly
>> autogenerated from the heat source code, using the sphinx XML output. To
>> avoid publishing several references (one per released version, as is
>> done for the OpenStack config-reference), I'd like to add information
>> about the support status of each resource (when they appeared, when
>> they've been deprecated, and so on).
>>
>> So the plan is to use the SupportStatus class and its `version`
>> attribute (see https://review.openstack.org/#/c/116443/ ). And the
>> question is, what information should the version attribute hold?
>> Possibilities include the release code name (Icehouse, Juno), or the
>> release version (2014.1, 2014.2). But this wouldn't be useful for users
>> of clouds continuously deployed.
>>
>>   From my documenter point of view, using the code name seems the right
>> option, because it fits with the rest of the documentation.
>>
>> What do you think would be the best choice from the heat devs POV?
>
> What we ship in-tree is the standard library for Heat. I think Heat
> should not tie things to the release of OpenStack, but only to itself.

"Standard Library" implies that everyone has it available, but in 
reality operators can (and will, and do) deploy any combination of 
resource types that they want.

> The idea is to simply version the standard library of resources separately
> even from the language. Added resources and properties would be minor
> bumps, deprecating or removing anything would be a major bump. Users then
> just need an API call that allows querying the standard library version.

We already have API calls to actually inspect resource types. I don't 
think a semantic version number is helpful here, since the different 
existing combinations of resources types are not expressible linearly.

There's no really good answer here, but the only real answer is making 
sure it's easy for people to generate the docs themselves for their 
actual deployment.

> With this scheme, we can provide a gate test that prevents breaking the
> rules, and automatically generate the docs still. Doing this would sync
> better with continuous deployers who will be running "Juno" well before
> there is a "2014.2".

Maybe continuous deployers should continuously deploy their own docs? 
For any given cloud the only thing that matters is what it supports 
right now.

> Anyway, Heat largely exists to support portability of apps between
> OpenStack clouds. Many many OpenStack clouds don't run one release,
> and we don't require them to do so. So tying to the release is, IMO,
> a poor coice.

The original question was about docs.openstack.org, and in that context 
I think tying it to the release version is a good choice, because 
that's... how OpenStack is released. Individual clouds, however, really 
need to deploy their own docs that document what they actually support.

The flip side of this, of course, is that whatever we use for the 
version strings on docs.openstack.org will all make its way into all the 
other documentation that gets built, and I do understand your point in 
that context. But versioning the "standard library" of plugins as if it 
were a monolithic, always-available thing seems wrong to me.

> We do the same thing with HOT's internals, so why not also
> do the standard library this way?

The current process for HOT is for every OpenStack development cycle 
(Juno is the first to use this) to give it a 'version' string that is 
the expected date of the next release (in the future), and continuous 
deployers who use the new one before that date are on their own (i.e. 
it's not considered stable). So not really comparable.

cheers,
Zane.



More information about the OpenStack-dev mailing list