[PATCH 7/9] Add reno for release notes management

Stephen Finucane stephen at that.guru
Tue Apr 11 09:27:49 AEST 2017


An initial patch to add reno and create a base directory for release
notes.

Signed-off-by: Stephen Finucane <stephen at that.guru>
---
 docs/conf.py                                       |   2 +-
 docs/index.rst                                     |   1 +
 docs/releases/index.rst                            |   7 ++
 docs/releases/unreleased.rst                       |   5 +
 releasenotes/config.yaml                           |   3 +
 .../notes/initial-reno-68c116ae9c5259a3.yaml       | 107 +++++++++++++++++++++
 tox.ini                                            |   4 +-
 7 files changed, 127 insertions(+), 2 deletions(-)
 create mode 100644 docs/releases/index.rst
 create mode 100644 docs/releases/unreleased.rst
 create mode 100644 releasenotes/config.yaml
 create mode 100644 releasenotes/notes/initial-reno-68c116ae9c5259a3.yaml

diff --git a/docs/conf.py b/docs/conf.py
index b23d033..6b978d2 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -29,7 +29,7 @@ needs_sphinx = '1.5'
 # Add any Sphinx extension module names here, as strings. They can be
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
-extensions = ['sphinx.ext.todo']
+extensions = ['sphinx.ext.todo', 'reno.sphinxext']
 
 # Add any paths that contain templates here, relative to this directory.
 templates_path = []
diff --git a/docs/index.rst b/docs/index.rst
index f2e7fcd..e1d60f3 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -7,6 +7,7 @@ Patchwork
    usage/index
    deployment/index
    development/index
+   releases/index
 
 Patchwork is a patch tracking system for community-based projects. It is
 intended to make the patch management process easier for both the project's
diff --git a/docs/releases/index.rst b/docs/releases/index.rst
new file mode 100644
index 0000000..abc878b
--- /dev/null
+++ b/docs/releases/index.rst
@@ -0,0 +1,7 @@
+Release Notes
+=============
+
+ .. toctree::
+    :maxdepth: 1
+
+    unreleased
diff --git a/docs/releases/unreleased.rst b/docs/releases/unreleased.rst
new file mode 100644
index 0000000..720c149
--- /dev/null
+++ b/docs/releases/unreleased.rst
@@ -0,0 +1,5 @@
+Unreleased
+==========
+
+.. release-notes::
+
diff --git a/releasenotes/config.yaml b/releasenotes/config.yaml
new file mode 100644
index 0000000..4f10ec1
--- /dev/null
+++ b/releasenotes/config.yaml
@@ -0,0 +1,3 @@
+---
+earliest_version: v1.1.0
+release_tag_re: 'v\d\.\d\.\d(rc\d+)?'
diff --git a/releasenotes/notes/initial-reno-68c116ae9c5259a3.yaml b/releasenotes/notes/initial-reno-68c116ae9c5259a3.yaml
new file mode 100644
index 0000000..5e1e94d
--- /dev/null
+++ b/releasenotes/notes/initial-reno-68c116ae9c5259a3.yaml
@@ -0,0 +1,107 @@
+---
+features:
+  - |
+    REST API.
+
+    Previous versions of Patchwork provided an XML-RPC API. This was functional
+    but there were a couple of issues around usability and general design. This
+    API also provided basic versioning information but the existing clients,
+    mostly `pwclient` variants, did not validate this version. Together, this
+    left us with an API that needed work but no way to fix it without breaking
+    every client out there.
+
+    Rather than breaking all those users, make a clean break and provide
+    another API method. REST APIs are the API method de jour providing a number
+    of advantages over XML-RPC APIs, thus, a REST API is chosen. The following
+    resources are exposed over this new API:
+
+    - Bundles
+    - Checks
+    - Projects
+    - People
+    - Users
+    - Patches
+    - Series
+    - Cover letters
+
+    For information on the usage of the API, refer to the documentation.
+
+    Note that this feature depends on a combination of Django REST framework
+    and Django Filter, which in turn require Django 1.8+. As a result, Django
+    1.8 or greater must be used when the REST API is enabled.
+  - |
+    Cover letters are now supported.
+
+    Cover letters are often sent in addition to a series of patches. They do
+    not contain a diff and can generally be identified as number 0 of a series.
+    For example::
+
+      [PATCH 0/3] A cover letter
+
+    Cover letters contain useful information that should not be discarded.
+    Both cover letters and replies to these mails are now stored for use with
+    series.
+  - |
+    Series are now supported.
+
+    Series are groups of patches sent as one bundle. For example::
+
+      [PATCH 0/3] A cover letter
+        [PATCH 1/3] The first patch
+        [PATCH 2/3] The second patch
+        [PATCH 3/3] The third patch
+
+    While Patchwork already supports bundles, these must be created manually,
+    defeating the purpose of using series in the first place. Series make use
+    of the information provided in the emails themselves, avoiding this manual
+    step. The series support implemented is basic and does not support
+    versioning. This will be added in a future release.
+  - |
+    All comments now have a permalink which can be used to reference individual
+    replies to patches and cover letters.
+  - |
+    `Django Debug Toolbar <https://pypi.python.org/pypi/django-debug-toolbar>`_
+    is now enabled by defaut when using development settings.
+  - |
+    `Django 1.9 <https://docs.djangoproject.com/en/1.10/releases/1.9/>`_ and
+    `1.10 <https://docs.djangoproject.com/en/1.10/releases/1.10/>`_ are now
+    supported.
+  - |
+    `Python 3.5 <https://www.python.org/downloads/release/python-350/>`_ is now
+    supported.
+  - |
+    `Docker <https://www.docker.com/what-docker#/developers>`_ support is now
+    integrated for development usage. To use this, refer to the documentation.
+upgrade:
+  - |
+    The REST API is enabled by default.
+
+    The REST API is enabled by default when using Django 1.8. It is possible to
+    disable this API, though this functionality may be removed in a future
+    release. Should you wish to disable this feature, configure the
+    `ENABLE_REST_API` setting to `False`.
+  - |
+    The `parsemail.py` and `parsearchive.py` scripts have been replaced by the
+    `parsemail` and `parsearchive` management commands. These can be called
+    like any other management commands. For example::
+
+      $ ./manage.py parsemail [args...]
+fixes:
+  - |
+    When downloading an mbox, a user's name will now be set to the name used in
+    the last email recieved from them. Previously, the name used in the first
+    email received from a user was used.
+  - |
+    `user at domain`-style email addresses, commonly found in Mailman archives,
+    are now handled correctly.
+  - |
+    Unicode characters transmitted over the XML-RPC API are now handled
+    correctly under Python 3
+deprecated:
+  - |
+    Django 1.6 and Django 1.7 are no longer supported upstream and will not be
+    supported in a future release.
+other:
+  - |
+    `reno <https://pypi.python.org/pypi/reno>`_ is now used for release note
+    management.
diff --git a/tox.ini b/tox.ini
index 2d195cd..78c1dd1 100644
--- a/tox.ini
+++ b/tox.ini
@@ -44,7 +44,9 @@ ignore = E129, F405
 exclude = ./patchwork/migrations
 
 [testenv:docs]
-deps = sphinx>=1.5
+deps =
+    sphinx>=1.5
+    reno>=2.2
 commands =
     sphinx-build -W -b html docs docs/_build/html
 
-- 
2.9.3



More information about the Patchwork mailing list