Merge "Update contributor docs"
This commit is contained in:
commit
aacb772f2e
|
@ -12,3 +12,99 @@ The cinderlib library is maintained by the OpenStack Cinder project. To
|
||||||
understand our development process and how you can contribute to it, please
|
understand our development process and how you can contribute to it, please
|
||||||
look at the Cinder project's general contributor's page:
|
look at the Cinder project's general contributor's page:
|
||||||
http://docs.openstack.org/cinder/latest/contributor/contributing.html
|
http://docs.openstack.org/cinder/latest/contributor/contributing.html
|
||||||
|
|
||||||
|
cinderlib releases
|
||||||
|
------------------
|
||||||
|
|
||||||
|
The OpenStack release model for cinderlib is `cycle-with-intermediary
|
||||||
|
<https://releases.openstack.org/reference/release_models.html#cycle-with-intermediary>`__.
|
||||||
|
This means that there can be multiple full releases of cinderlib from master
|
||||||
|
during a development cycle. The deliverable type of cinderlib is 'trailing'
|
||||||
|
which means that the final release of cinderlib for a development cycle must
|
||||||
|
occur within 3 months after the official OpenStack coordinated release.
|
||||||
|
|
||||||
|
At the time of the final release, the stable branch is cut, and cinderlib
|
||||||
|
releases from that branch follow the normal OpenStack stable release policy.
|
||||||
|
|
||||||
|
Because cinderlib depends on cinder and os-brick, during the development
|
||||||
|
cycle it uses cinder and os-brick from master (not from released versions)
|
||||||
|
so that changes in cinder and os-brick are immediately available for testing
|
||||||
|
cinderlib. Once cinder and os-brick have had their final release for a
|
||||||
|
cycle, however, their master branches become the development branch for the
|
||||||
|
*next* cycle, whereas cinderlib's master branch is still the development branch
|
||||||
|
for the *previous* cycle. Thus, cinderlib's tox.ini requires some manual
|
||||||
|
maintenance:
|
||||||
|
|
||||||
|
* While both the cinder and cinderlib master branches are the development
|
||||||
|
branches for the 'n' release cycle (ussuri, for example), the base testenv
|
||||||
|
in tox.ini in master should look like this:
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
# Use cinder from master instead of from PyPi. Defining the egg name we won't
|
||||||
|
# overwrite the package installed by Zuul on jobs supporting cross-project
|
||||||
|
# dependencies (include Cinder in required-projects). This allows us to also
|
||||||
|
# run local tests against master.
|
||||||
|
# NOTE: Functional tests may fail if host is missing bindeps from deps projects
|
||||||
|
deps= -r{toxinidir}/test-requirements.txt
|
||||||
|
git+https://opendev.org/openstack/os-brick#egg=os-brick
|
||||||
|
git+https://opendev.org/openstack/cinder#egg=cinder
|
||||||
|
|
||||||
|
* When the coordinated release for cycle 'n' has occurred, cinderlib's
|
||||||
|
requirements.txt in master must be updated to use only 'n' deliverables (in
|
||||||
|
this example, ussuri):
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
# restrict cinder to the ussuri series only
|
||||||
|
cinder>=16.0.0,<17.0.0
|
||||||
|
# brick upper bound is controlled by ussuri/upper-constraints
|
||||||
|
os-brick>=3.0.1
|
||||||
|
|
||||||
|
and cinderlib's tox.ini must be modified in three places. First, we need to
|
||||||
|
make sure that cinderlib is being tested against cinder and os-brick from the
|
||||||
|
stable branches for the 'n' release (in this example, stable/ussuri):
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
deps = -r{toxinidir}/test-requirements.txt
|
||||||
|
git+https://opendev.org/openstack/os-brick@stable/ussuri#egg=os-brick
|
||||||
|
git+https://opendev.org/openstack/cinder@stable/ussuri#egg=cinder
|
||||||
|
|
||||||
|
The other two places are in the testenvs for ``releasenotes`` and ``docs``.
|
||||||
|
Both must have the ``deps`` modified so that the default value for the
|
||||||
|
``TOX_CONSTRAINTS_FILE`` is changed to reflect the 'n' release (in this
|
||||||
|
example, stable/ussuri):
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
deps =
|
||||||
|
-c {env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/ussuri}
|
||||||
|
-r {toxinidir}/doc/requirements.txt
|
||||||
|
|
||||||
|
* After the 'n' release of cinderlib occurs (and the stable/n branch is cut),
|
||||||
|
all of cinder, os-brick, and cinderlib master branches are all n+1 cycle
|
||||||
|
development branches, so:
|
||||||
|
|
||||||
|
* The base testenv in tox.ini in master must be modified to use cinder and
|
||||||
|
os-brick from master for testing, reverting the first code block change
|
||||||
|
above.
|
||||||
|
|
||||||
|
* The testenvs for ``releasenotes`` and ``docs`` must be reset to use upper
|
||||||
|
constraints from the ``master`` branch.
|
||||||
|
|
||||||
|
.. code-block::
|
||||||
|
|
||||||
|
deps =
|
||||||
|
-c {env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
||||||
|
-r {toxinidir}/doc/requirements.txt
|
||||||
|
|
||||||
|
* Although tox.ini is no longer referring to requirements.txt, that file
|
||||||
|
should be updated as well:
|
||||||
|
|
||||||
|
* Remove the upper bound from cinder.
|
||||||
|
|
||||||
|
* The release team likes to push an early release of os-brick from master
|
||||||
|
early in the development cycle. Check to see if that has happened
|
||||||
|
already, and if so, update the minimum version of os-brick to the latest
|
||||||
|
release and make appropriate adjustments to the comments in the file.
|
||||||
|
|
Loading…
Reference in New Issue