Add release note(aka. reno) guide
This PR adds reloease note guide for trove project and renames some notes due to uid collision Change-Id: I55f49425dc3df6599ff6714efd8f7c1dc656ddf2
This commit is contained in:
parent
226e8896b6
commit
f9f3bca8f7
12
doc/requirements.txt
Normal file
12
doc/requirements.txt
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# The order of packages is significant, because pip processes them in the order
|
||||||
|
# of appearance. Changing the order has an impact on the overall integration
|
||||||
|
# process, which may cause wedges in the gate later.
|
||||||
|
# Order matters to the pip dependency resolver, so sorting this file
|
||||||
|
# changes how packages are installed. New dependencies should be
|
||||||
|
# added in alphabetical order, however, some dependencies may need to
|
||||||
|
# be installed in a specific order.
|
||||||
|
openstackdocstheme>=2.2.1 # Apache-2.0
|
||||||
|
reno>=3.1.0 # Apache-2.0
|
||||||
|
sphinx>=2.0.0,!=2.1.0 # BSD
|
||||||
|
sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD
|
||||||
|
whereto>=0.3.0 # Apache-2.0
|
@ -13,3 +13,4 @@ functionality, the following resources are provided.
|
|||||||
design
|
design
|
||||||
functional_test
|
functional_test
|
||||||
testing
|
testing
|
||||||
|
release-notes
|
||||||
|
154
doc/source/contributor/release-notes.rst
Normal file
154
doc/source/contributor/release-notes.rst
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
.. _release-notes:
|
||||||
|
|
||||||
|
=============
|
||||||
|
Release notes
|
||||||
|
=============
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Trove uses the following release notes sections:
|
||||||
|
|
||||||
|
- ``features`` --- for new features or functionality; these should ideally
|
||||||
|
refer to the blueprint being implemented;
|
||||||
|
- ``fixes`` --- for fixes closing bugs; these must refer to the bug being
|
||||||
|
closed;
|
||||||
|
- ``upgrade`` --- for notes relevant when upgrading from previous version;
|
||||||
|
these should ideally be added only between major versions; required when
|
||||||
|
the proposed change affects behaviour in a non-backwards compatible way or
|
||||||
|
generally changes something impactful;
|
||||||
|
- ``deprecations`` --- to track deprecated features; relevant changes may
|
||||||
|
consist of only the commit message and the release note;
|
||||||
|
- ``prelude`` --- filled in by the PTL or Cores before each release or RC.
|
||||||
|
|
||||||
|
Other release note types may be applied per common sense.
|
||||||
|
Each change should include a release note unless being a ``TrivialFix``
|
||||||
|
change or affecting only docs or CI. Such changes should `not` include
|
||||||
|
a release note to avoid confusion.
|
||||||
|
Remember release notes are mostly for end users which, in case of Trove,
|
||||||
|
are OpenStack administrators/operators.
|
||||||
|
In case of doubt, the core team will let you know what is required.
|
||||||
|
|
||||||
|
To add a release note, run the following command:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
tox -e venv -- reno new <summary-line-with-dashes>
|
||||||
|
|
||||||
|
All release notes can be inspected by browsing ``releasenotes/notes``
|
||||||
|
directory. Further on this page we show reno templates, examples and how to
|
||||||
|
make use of them.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
The term `release note` is often abbreviated to `reno` as it is the name of
|
||||||
|
the tool that is used to manage the release notes.
|
||||||
|
|
||||||
|
To generate renos in HTML format in ``releasenotes/build``, run:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
tox -e releasenotes
|
||||||
|
|
||||||
|
Note this requires the release note to be tracked by ``git`` so you
|
||||||
|
have to at least add it to the ``git``'s staging area.
|
||||||
|
|
||||||
|
The release notes are linted in the CI system. To lint locally, run:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
tox -e pep8
|
||||||
|
|
||||||
|
The above lints all of documentation at once.
|
||||||
|
|
||||||
|
Templates and examples
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
All approved release notes end up being published on a dedicated site:
|
||||||
|
|
||||||
|
https://docs.openstack.org/releasenotes/trove/
|
||||||
|
|
||||||
|
When looking for examples, it is advised to consider browsing the page above
|
||||||
|
for a similar type of change and then comparing with their source
|
||||||
|
representation in ``releasenotes/notes``.
|
||||||
|
|
||||||
|
The sections below give further guidelines. Please try to follow them but note
|
||||||
|
they are not set in stone and sometimes a different wording might be more
|
||||||
|
appropriate. In case of doubt, the core team will be happy to help.
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------
|
||||||
|
|
||||||
|
Template
|
||||||
|
++++++++
|
||||||
|
|
||||||
|
.. path releasenotes/templates/feature.yml
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Implements [some feature].
|
||||||
|
[Can be described using multiple sentences if necessary.]
|
||||||
|
[Limitations worth mentioning can be included as well.]
|
||||||
|
`Stroy [Story id] <https://storyboard.openstack.org/#!/story/[Story id]>`__
|
||||||
|
|
||||||
|
|
||||||
|
Example
|
||||||
|
+++++++
|
||||||
|
|
||||||
|
Implementing blueprint with id `letsencrypt-https`, we use ``reno`` to generate
|
||||||
|
the scaffolded file:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
tox -e venv -- reno new --from-template releasenotes/templates/feature.yml blueprint-letsencrypt-https
|
||||||
|
|
||||||
|
And then fill it out with the following content:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Implements support for hassle-free integration with Let's Encrypt.
|
||||||
|
The support is limited to operators in the underworld.
|
||||||
|
For more details check the TLS docs of Trove.
|
||||||
|
`Stroy xxx <https://storyboard.openstack.org/#!/story/xxx>`__
|
||||||
|
|
||||||
|
|
||||||
|
Fixes
|
||||||
|
-----
|
||||||
|
|
||||||
|
Template
|
||||||
|
++++++++
|
||||||
|
|
||||||
|
.. path releasenotes/templates/fix.yml
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Fixes [some bug].
|
||||||
|
[Can be described using multiple sentences if necessary.]
|
||||||
|
[Possibly also giving the previous behaviour description.]
|
||||||
|
`Stroy [Story id] <https://storyboard.openstack.org/#!/story/[Story id]>`__
|
||||||
|
|
||||||
|
Example
|
||||||
|
+++++++
|
||||||
|
|
||||||
|
Fixing bug number `1889611`, we use ``reno`` to generate the scaffolded file:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
tox -e venv -- reno new --from-template releasenotes/templates/fix.yml bug-1889611
|
||||||
|
|
||||||
|
And then fill it out with the following content:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Fixes ``create-datastore`` action doesn't work for the mysql datastore.
|
||||||
|
`LP#xxx <https://storyboard.openstack.org/#!/story/xxx>`__
|
7
releasenotes/templates/feature.yml
Normal file
7
releasenotes/templates/feature.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Implements [some feature].
|
||||||
|
[Can be described using multiple sentences if necessary.]
|
||||||
|
[Limitations worth mentioning can be included as well.]
|
||||||
|
`Stroy [Story id] <https://storyboard.openstack.org/#!/story/[story id]>`__
|
7
releasenotes/templates/fix.yml
Normal file
7
releasenotes/templates/fix.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Fixes [some bug].
|
||||||
|
[Can be described using multiple sentences if necessary.]
|
||||||
|
[Possibly also giving the previous behaviour description.]
|
||||||
|
`LP#[Story id] <https://storyboard.openstack.org/#!/story/[Story id]>`__
|
14
tox.ini
14
tox.ini
@ -26,9 +26,15 @@ allowlist_externals = find
|
|||||||
bash
|
bash
|
||||||
|
|
||||||
[testenv:pep8]
|
[testenv:pep8]
|
||||||
|
deps =
|
||||||
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
||||||
|
-r{toxinidir}/test-requirements.txt
|
||||||
commands =
|
commands =
|
||||||
flake8
|
flake8
|
||||||
|
reno lint
|
||||||
doc8 {posargs}
|
doc8 {posargs}
|
||||||
|
doc8 -e '.yaml' releasenotes/notes/
|
||||||
|
doc8 doc/source
|
||||||
|
|
||||||
[testenv:debug]
|
[testenv:debug]
|
||||||
commands = oslo_debug_helper {posargs}
|
commands = oslo_debug_helper {posargs}
|
||||||
@ -79,7 +85,13 @@ commands =
|
|||||||
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
||||||
|
|
||||||
[testenv:releasenotes]
|
[testenv:releasenotes]
|
||||||
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
deps =
|
||||||
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
||||||
|
-r{toxinidir}/doc/requirements.txt
|
||||||
|
allowlist_externals = rm
|
||||||
|
commands =
|
||||||
|
rm -rf releasenotes/build
|
||||||
|
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
||||||
|
|
||||||
[testenv:bandit]
|
[testenv:bandit]
|
||||||
commands = bandit -r trove -n5 -x tests
|
commands = bandit -r trove -n5 -x tests
|
||||||
|
Loading…
Reference in New Issue
Block a user