aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/conf.py2
-rw-r--r--docs/index.rst8
-rw-r--r--docs/releases/unreleased.rst5
-rw-r--r--docs/requirements.txt1
-rw-r--r--releasenotes/config.yaml3
-rw-r--r--releasenotes/notes/initial-reno-68c116ae9c5259a3.yaml107
6 files changed, 125 insertions, 1 deletions
diff --git a/docs/conf.py b/docs/conf.py
index 06b1dea..652566e 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -11,7 +11,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 3e55b89..cafa485 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -49,3 +49,11 @@ of community projects.
development/installation
development/releasing
development/xmlrpc
+
+.. _release-note-docs:
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Release Notes
+
+ releases/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/docs/requirements.txt b/docs/requirements.txt
index add56d4..e23dfd3 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1 +1,2 @@
sphinx>=1.5
+reno>=2.2
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.