On 14/09/14 11:09, Clint Byrum wrote:
Excerpts from Gauvain Pocentek's message of 2014-09-04 22:29:05 -0700:

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.


OpenStack-dev mailing list

Reply via email to