tree e728872f2dd120239a2b54fe828fa8b883e9ac60
parent 8f3e503413f39c4a0363a691f2a418c6d3b06387
author Ghanshyam Mann <gmann@ghanshyammann.com> 1587074156 -0500
committer Ghanshyam Mann <gmann@ghanshyammann.com> 1587136998 +0000

Document the policy for Tempest & its plugins release

Tempest and its plugin are very tightly coupled for testing
Upstream or Production Cloud. Due to its branchless model,
one of the challenges we faced/facing is to provide their
compatible version set.

Since Queens release and with operator request, we started
doing a coordinated release of plugins along with Tempest
which will be marked as the First compatible version for
that particular release.

For example https://releases.openstack.org/train/index.html#tempest-plugins

We test our stable branch with master version of Tempest &
plugins until it is moved to Extended Maintainance state.
One stable release is in EM state, Tempest officially declares
the end of support tag so that we can use that as the last compatible
version for that EM stable testing. But we do not have the correct
last compatible version from plugins which can be used for testing
the EM branch. It should be with hash from the master at the time
stable release is moved to EM not the hash when the stable release
was done otherwise it will be incompatible with Tempest.

We have faced and fixed many issue due to that during py2-drop work
where we have to pick and try all different versions from plugin to
make it work against EM testing.

Change-Id: I99a6df0a2c02e19efaf484fcd97b875887f08d8e
