Skip to content

Commit afd1b48

Browse files
author
Dean Troyer
committed
Add reno for release notes management
Change-Id: Iaaf3f9ca7cb431e41adfb2a052e01e2240a63a07
1 parent 40459b2 commit afd1b48

10 files changed

Lines changed: 336 additions & 0 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@ doc/source/api/
2020
.project
2121
.pydevproject
2222
cover
23+
# Files created by releasenotes build
24+
releasenotes/build

doc/source/developing.rst

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,41 @@ create HTML docs, run the following:
9898
9999
The resultant HTML will be the ``doc/build/html`` directory.
100100

101+
Release Notes
102+
-------------
103+
104+
The release notes for a patch should be included in the patch. See the
105+
`Project Team Guide`_ for more information on using reno in OpenStack.
106+
107+
.. _`Project Team Guide`: http://docs.openstack.org/project-team-guide/release-management.html#managing-release-notes
108+
109+
If any of the following applies to the patch, a release note is required:
110+
111+
* The deployer needs to take an action when upgrading
112+
* The plugin interface changes
113+
* A new feature is implemented
114+
* A command or option is removed
115+
* Current behavior is changed
116+
* A security bug is fixed
117+
118+
Reno is used to generate release notes. Please read the docs for details. In summary, use
119+
120+
.. code-block:: bash
121+
122+
$ tox -e venv -- reno new <bug-,bp-,whatever>
123+
124+
Then edit the sample file that was created and push it with your change.
125+
126+
To see the results:
127+
128+
.. code-block:: bash
129+
130+
$ git commit # Commit the change because reno scans git log.
131+
132+
$ tox -e releasenotes
133+
134+
Then look at the generated release notes files in releasenotes/build/html in your favorite browser.
135+
101136
Testing new code
102137
----------------
103138

releasenotes/notes/.placeholder

Whitespace-only changes.

releasenotes/source/_static/.placeholder

Whitespace-only changes.

releasenotes/source/_templates/.placeholder

Whitespace-only changes.

releasenotes/source/conf.py

Lines changed: 282 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,282 @@
1+
# -*- coding: utf-8 -*-
2+
# Licensed under the Apache License, Version 2.0 (the "License");
3+
# you may not use this file except in compliance with the License.
4+
# You may obtain a copy of the License at
5+
#
6+
# http://www.apache.org/licenses/LICENSE-2.0
7+
#
8+
# Unless required by applicable law or agreed to in writing, software
9+
# distributed under the License is distributed on an "AS IS" BASIS,
10+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
11+
# implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
# OpenStackClient Release Notes documentation build configuration file, created
16+
# by sphinx-quickstart on Tue Nov 3 17:40:50 2015.
17+
#
18+
# This file is execfile()d with the current directory set to its
19+
# containing dir.
20+
#
21+
# Note that not all possible configuration values are present in this
22+
# autogenerated file.
23+
#
24+
# All configuration values have a default; values that are commented out
25+
# serve to show the default.
26+
27+
# If extensions (or modules to document with autodoc) are in another directory,
28+
# add these directories to sys.path here. If the directory is relative to the
29+
# documentation root, use os.path.abspath to make it absolute, like shown here.
30+
# sys.path.insert(0, os.path.abspath('.'))
31+
32+
# -- General configuration ------------------------------------------------
33+
34+
# If your documentation needs a minimal Sphinx version, state it here.
35+
# needs_sphinx = '1.0'
36+
37+
# Add any Sphinx extension module names here, as strings. They can be
38+
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
39+
# ones.
40+
extensions = [
41+
'oslosphinx',
42+
'reno.sphinxext',
43+
]
44+
45+
# Add any paths that contain templates here, relative to this directory.
46+
templates_path = ['_templates']
47+
48+
# The suffix of source filenames.
49+
source_suffix = '.rst'
50+
51+
# The encoding of source files.
52+
# source_encoding = 'utf-8-sig'
53+
54+
# The master toctree document.
55+
master_doc = 'index'
56+
57+
# General information about the project.
58+
project = u'OpenStackClient Release Notes'
59+
copyright = u'2015, OpenStackClient Developers'
60+
61+
# The version info for the project you're documenting, acts as replacement for
62+
# |version| and |release|, also used in various other places throughout the
63+
# built documents.
64+
#
65+
# The short X.Y version.
66+
from openstackclient import version_info as openstackclient_version
67+
# The full version, including alpha/beta/rc tags.
68+
release = openstackclient_version.version_string_with_vcs()
69+
# The short X.Y version.
70+
version = openstackclient_version.canonical_version_string()
71+
72+
# The language for content autogenerated by Sphinx. Refer to documentation
73+
# for a list of supported languages.
74+
# language = None
75+
76+
# There are two options for replacing |today|: either, you set today to some
77+
# non-false value, then it is used:
78+
# today = ''
79+
# Else, today_fmt is used as the format for a strftime call.
80+
# today_fmt = '%B %d, %Y'
81+
82+
# List of patterns, relative to source directory, that match files and
83+
# directories to ignore when looking for source files.
84+
exclude_patterns = []
85+
86+
# The reST default role (used for this markup: `text`) to use for all
87+
# documents.
88+
# default_role = None
89+
90+
# If true, '()' will be appended to :func: etc. cross-reference text.
91+
# add_function_parentheses = True
92+
93+
# If true, the current module name will be prepended to all description
94+
# unit titles (such as .. function::).
95+
# add_module_names = True
96+
97+
# If true, sectionauthor and moduleauthor directives will be shown in the
98+
# output. They are ignored by default.
99+
# show_authors = False
100+
101+
# The name of the Pygments (syntax highlighting) style to use.
102+
pygments_style = 'sphinx'
103+
104+
# A list of ignored prefixes for module index sorting.
105+
# modindex_common_prefix = []
106+
107+
# If true, keep warnings as "system message" paragraphs in the built documents.
108+
# keep_warnings = False
109+
110+
111+
# -- Options for HTML output ----------------------------------------------
112+
113+
# The theme to use for HTML and HTML Help pages. See the documentation for
114+
# a list of builtin themes.
115+
html_theme = 'default'
116+
117+
# Theme options are theme-specific and customize the look and feel of a theme
118+
# further. For a list of options available for each theme, see the
119+
# documentation.
120+
# html_theme_options = {}
121+
122+
# Add any paths that contain custom themes here, relative to this directory.
123+
# html_theme_path = []
124+
125+
# The name for this set of Sphinx documents. If None, it defaults to
126+
# "<project> v<release> documentation".
127+
# html_title = None
128+
129+
# A shorter title for the navigation bar. Default is the same as html_title.
130+
# html_short_title = None
131+
132+
# The name of an image file (relative to this directory) to place at the top
133+
# of the sidebar.
134+
# html_logo = None
135+
136+
# The name of an image file (within the static path) to use as favicon of the
137+
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
138+
# pixels large.
139+
# html_favicon = None
140+
141+
# Add any paths that contain custom static files (such as style sheets) here,
142+
# relative to this directory. They are copied after the builtin static files,
143+
# so a file named "default.css" will overwrite the builtin "default.css".
144+
html_static_path = ['_static']
145+
146+
# Add any extra paths that contain custom files (such as robots.txt or
147+
# .htaccess) here, relative to this directory. These files are copied
148+
# directly to the root of the documentation.
149+
# html_extra_path = []
150+
151+
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
152+
# using the given strftime format.
153+
# html_last_updated_fmt = '%b %d, %Y'
154+
155+
# If true, SmartyPants will be used to convert quotes and dashes to
156+
# typographically correct entities.
157+
# html_use_smartypants = True
158+
159+
# Custom sidebar templates, maps document names to template names.
160+
# html_sidebars = {}
161+
162+
# Additional templates that should be rendered to pages, maps page names to
163+
# template names.
164+
# html_additional_pages = {}
165+
166+
# If false, no module index is generated.
167+
# html_domain_indices = True
168+
169+
# If false, no index is generated.
170+
# html_use_index = True
171+
172+
# If true, the index is split into individual pages for each letter.
173+
# html_split_index = False
174+
175+
# If true, links to the reST sources are added to the pages.
176+
# html_show_sourcelink = True
177+
178+
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
179+
# html_show_sphinx = True
180+
181+
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
182+
# html_show_copyright = True
183+
184+
# If true, an OpenSearch description file will be output, and all pages will
185+
# contain a <link> tag referring to it. The value of this option must be the
186+
# base URL from which the finished HTML is served.
187+
# html_use_opensearch = ''
188+
189+
# This is the file name suffix for HTML files (e.g. ".xhtml").
190+
# html_file_suffix = None
191+
192+
# Output file base name for HTML help builder.
193+
htmlhelp_basename = 'OpenStackClientReleaseNotesdoc'
194+
195+
196+
# -- Options for LaTeX output ---------------------------------------------
197+
198+
latex_elements = {
199+
# The paper size ('letterpaper' or 'a4paper').
200+
# 'papersize': 'letterpaper',
201+
202+
# The font size ('10pt', '11pt' or '12pt').
203+
# 'pointsize': '10pt',
204+
205+
# Additional stuff for the LaTeX preamble.
206+
# 'preamble': '',
207+
}
208+
209+
# Grouping the document tree into LaTeX files. List of tuples
210+
# (source start file, target name, title,
211+
# author, documentclass [howto, manual, or own class]).
212+
latex_documents = [(
213+
'index',
214+
'OpenStackClientReleaseNotes.tex',
215+
u'OpenStackClient Release Notes Documentation',
216+
u'OpenStackClient Developers',
217+
'manual',
218+
)]
219+
220+
# The name of an image file (relative to this directory) to place at the top of
221+
# the title page.
222+
# latex_logo = None
223+
224+
# For "manual" documents, if this is true, then toplevel headings are parts,
225+
# not chapters.
226+
# latex_use_parts = False
227+
228+
# If true, show page references after internal links.
229+
# latex_show_pagerefs = False
230+
231+
# If true, show URL addresses after external links.
232+
# latex_show_urls = False
233+
234+
# Documents to append as an appendix to all manuals.
235+
# latex_appendices = []
236+
237+
# If false, no module index is generated.
238+
# latex_domain_indices = True
239+
240+
241+
# -- Options for manual page output ---------------------------------------
242+
243+
# One entry per manual page. List of tuples
244+
# (source start file, name, description, authors, manual section).
245+
man_pages = [(
246+
'index',
247+
'openstackclientreleasenotes',
248+
u'OpenStackClient Release Notes Documentation',
249+
[u'OpenStackClient Developers'],
250+
1,
251+
)]
252+
253+
# If true, show URL addresses after external links.
254+
# man_show_urls = False
255+
256+
257+
# -- Options for Texinfo output -------------------------------------------
258+
259+
# Grouping the document tree into Texinfo files. List of tuples
260+
# (source start file, target name, title, author,
261+
# dir menu entry, description, category)
262+
texinfo_documents = [(
263+
'index',
264+
'OpenStackClientReleaseNotes',
265+
u'OpenStackclient Release Notes Documentation',
266+
u'OpenStackclient Developers',
267+
'OpenStackClientReleaseNotes',
268+
'One line description of project.',
269+
'Miscellaneous',
270+
)]
271+
272+
# Documents to append as an appendix to all manuals.
273+
# texinfo_appendices = []
274+
275+
# If false, no module index is generated.
276+
# texinfo_domain_indices = True
277+
278+
# How to display URL addresses: 'footnote', 'no', or 'inline'.
279+
# texinfo_show_urls = 'footnote'
280+
281+
# If true, do not generate a @detailmenu in the "Top" node's menu.
282+
# texinfo_no_detailmenu = False

releasenotes/source/index.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
=============================
2+
OpenStackClient Release Notes
3+
=============================
4+
5+
.. toctree::
6+
:maxdepth: 1
7+
8+
unreleased

releasenotes/source/unreleased.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
=====================
2+
Current Release Notes
3+
=====================
4+
5+
.. release-notes::

test-requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ fixtures>=1.3.1
99
mock>=1.2
1010
oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
1111
oslotest>=1.10.0 # Apache-2.0
12+
reno>=0.1.1 # Apache2
1213
requests-mock>=0.6.0 # Apache-2.0
1314
sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
1415
os-testr>=0.4.1

tox.ini

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ downloadcache = ~/cache/pip
3333
[testenv:docs]
3434
commands = python setup.py build_sphinx
3535

36+
[testenv:releasenotes]
37+
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
38+
3639
[flake8]
3740
show-source = True
3841
exclude = .git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,tools

0 commit comments

Comments
 (0)