summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorwu.chunyang <wuchunyang@yovole.com>2022-07-11 21:56:26 +0800
committerwu.chunyang <wuchunyang@yovole.com>2022-07-11 21:56:26 +0800
commitf9f3bca8f7f867dfcc5716224dc5b13270b17180 (patch)
treefda1193121d28d250d1acbc1d80d06806a0eabd1 /doc
parent226e8896b6c8f7e473508e0d37d3c3a18cf77ca5 (diff)
downloadtrove-f9f3bca8f7f867dfcc5716224dc5b13270b17180.tar.gz
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
Diffstat (limited to 'doc')
-rw-r--r--doc/requirements.txt12
-rw-r--r--doc/source/contributor/index.rst1
-rw-r--r--doc/source/contributor/release-notes.rst154
3 files changed, 167 insertions, 0 deletions
diff --git a/doc/requirements.txt b/doc/requirements.txt
new file mode 100644
index 00000000..da3f3abf
--- /dev/null
+++ b/doc/requirements.txt
@@ -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
diff --git a/doc/source/contributor/index.rst b/doc/source/contributor/index.rst
index 43b5a13b..3ba2f00e 100644
--- a/doc/source/contributor/index.rst
+++ b/doc/source/contributor/index.rst
@@ -13,3 +13,4 @@ functionality, the following resources are provided.
design
functional_test
testing
+ release-notes
diff --git a/doc/source/contributor/release-notes.rst b/doc/source/contributor/release-notes.rst
new file mode 100644
index 00000000..30923ffa
--- /dev/null
+++ b/doc/source/contributor/release-notes.rst
@@ -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>`__