Release notes management tool
Go to file
Stephen Finucane a19cd28f20 sphinxext: Support rootdir discovery without git
Change I49b659948f35381a44e2fb5f91dd6bf9e8ef619e provided a mechanism to
include the release note cache into generated sdists. Unfortunately,
attempting to build documentation with these tarballs generates the
following error:

  Exception occurred:
  File ".../lib/python3.7/site-packages/dulwich/repo.py", line 1004, in discover
    "No git repository was found at %(path)s" % dict(path=start)
  dulwich.errors.NotGitRepository: No git repository was found at PATH

This is because we're attempting to find the root of the git repo using
dulwich, which clearly isn't possible outside of a git repo.

Work around this by falling back to a search. We consider three options:
'.', '..', and '../..', which will handle calling Sphinx from the
rootdir, a 'docs' dir, and a 'docs/source' dir, which seem to be the
most common configurations.

We have no test coverage of the Sphinx integration so this is tested
manually.

Change-Id: Ic3a8ab8b127fd5bf51b91ac6e83d459ffc087fc4
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Story: #1520096
Task: #6724
2020-04-20 17:39:47 +01:00
doc/source do not include external svgs from readme in docs 2020-04-07 17:05:15 -04:00
examples/notes expand examples in documentation 2017-06-06 17:07:08 -04:00
releasenotes/notes sphinxext: Support rootdir discovery without git 2020-04-20 17:39:47 +01:00
reno sphinxext: Support rootdir discovery without git 2020-04-20 17:39:47 +01:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:55:10 +00:00
.gitignore Switch to use stestr for unit test 2018-10-22 10:01:52 -05:00
.gitreview OpenDev Migration Patch 2019-04-19 19:34:53 +00:00
.mailmap Initial Cookiecutter Commit. 2015-08-26 20:04:56 +00:00
.stestr.conf Switch to use stestr for unit test 2018-10-22 10:01:52 -05:00
.zuul.yaml [ussuri][goal] Drop python 2.7 support and testing 2020-02-04 14:32:27 +01:00
bindep.txt update bindep list 2017-11-15 14:25:34 -05:00
CONTRIBUTING.rst update bug report URLs to use storyboard 2018-03-14 10:52:29 -04:00
HACKING.rst Update url in HACKING.rst 2018-02-26 01:46:34 +08:00
LICENSE Initial Cookiecutter Commit. 2015-08-26 20:04:56 +00:00
lower-constraints.txt tox: Suppress output 2020-04-14 17:36:16 +01:00
MANIFEST.in Initial Cookiecutter Commit. 2015-08-26 20:04:56 +00:00
README.rst update bug report URLs to use storyboard 2018-03-14 10:52:29 -04:00
requirements.txt Remove usage of six 2020-02-04 14:37:21 +01:00
setup.cfg [ussuri][goal] Drop python 2.7 support and testing 2020-02-04 14:32:27 +01:00
setup.py [ussuri][goal] Drop python 2.7 support and testing 2020-02-04 14:32:27 +01:00
test-requirements.txt Use unittest.mock instead of third party mock 2020-04-19 14:18:12 +02:00
tox.ini tox: Suppress output 2020-04-14 17:36:16 +01:00

reno: A New Way to Manage Release Notes

Reno is a release notes manager designed with high throughput in mind, supporting fast distributed development teams without introducing additional development processes. Our goal is to encourage detailed and accurate release notes for every release.

Reno uses git to store its data, along side the code being described. This means release notes can be written when the code changes are fresh, so no details are forgotten. It also means that release notes can go through the same review process used for managing code and other documentation changes.

Reno stores each release note in a separate file to enable a large number of developers to work on multiple patches simultaneously, all targeting the same branch, without worrying about merge conflicts. This cuts down on the need to rebase or otherwise manually resolve conflicts, and keeps a development team moving quickly.

Reno also supports multiple branches, allowing release notes to be back-ported from master to maintenance branches together with the code for bug fixes.

Reno organizes notes into logical groups based on whether they describe new features, bug fixes, known issues, or other topics of interest to the user. Contributors categorize individual notes as they are added, and reno combines them before publishing.

Notes can be styled using reStructuredText directives, and reno's Sphinx integration makes it easy to incorporate release notes into automated documentation builds.

Notes are automatically associated with the release version based on the git tags applied to the repository, so it is not necessary to track changes manually using a bug tracker or other tool, or to worry that an important change will be missed when the release notes are written by hand all at one time, just before a release.

Modifications to notes are incorporated when the notes are shown in their original location in the history. This feature makes it possible to correct typos or otherwise fix a published release note after a release is made, but have the new note content associated with the original version number. Notes also can be deleted, eliminating them from future documentation builds.

Project Meta-data