reno is a tool for managing release notes in projects that support multiple branches of development, and releases, simultaneously. It solves the problem of managing release notes within patches that fix bugs, and makes it easier to cherry-pick changes between branches (allowing backports or forward ports).
3. Whats the big deal?
Separate process == extra
work
Reviewing 6 months of work
for user-facing changes
Review existing notes for
accuracy
No fun
Usually not updated when bug
鍖xes were back-ported
4. Growth!
Add 20+ libraries
Added services, and client
libraries
6 20 60 teams
Recruited a second release
manager
5. How can we improve?
Automate writing
Make writing easier
Add and maintain notes as the
work is completed
Automate publishing
6. What do we want?
Content
Peer-reviewed
Organized sections
Mutable
Deletable
Avoid merge con鍖icts
Process
Contributor ignores
versions
Support back-porting
No manual publishing
steps
7. What do we want?
Content
Peer-reviewed
Organized sections
Mutable
Deletable
Avoid merge con鍖icts
Process
Contributor ignores
versions
Support back-porting
No manual publishing
steps
8. Option 1: Sphinx
Pros
Notes and code together
Familiarity
Publishing automation
exists
Mutable
Cons
Messy merge con鍖icts
(master and back-ports)
How do you manage
versions?
9. Option 2: Commit
Messages
Pros
Notes and code together
Always have one
Peer-reviewed
Cons
Wrong audience
Hard to organize
Immutable
10. Option 3: git notes
Pros
Notes and code together
Cons
git setup more complex
Requires special gerrit
permissions
Peer-reviewed?
11. Option 4: Data Files
Many small 鍖les
Use git as database
Tools for adding, listing, reporting
Sphinx integration
12. $ reno new D
Created new notes file in releasenotes/notes/
D-62ffea892937265f.yaml
17. $ reno report -q --version 2.0.0 --no-show-source
=============
Release Notes
=============
2.0.0
=====
New Features
------------
- This is the third release note, C. It has a tyop.
- This is the fourth release note, D.
- This is the fifth release note, E.
- This is the sixth release note, F.
18. $ reno -q report --branch stable/rocky no-show-source
=============
Release Notes
=============
1.0.0-1
=======
New Features
------------
- This release note G only appears on the stable/rocky branch.
1.0.0
=====
New Features
------------
- This is the first release note, A.
- This is the second release note, B.
20. $ reno -q report --branch stable/rocky no-show-source
=============
Release Notes
=============
1.0.1
=====
New Features
------------
- This is the fifth release note, E.
- This release note G only appears on the stable/rocky branch.
1.0.0
=====
New Features
------------
- This is the first release note, A.
- This is the second release note, B.
22. $ reno -q report --version 2.0.0 no-show-source
=============
Release Notes
=============
2.0.0
=====
New Features
------------
- This is the third release note, C. It no longer has a typo.
- This is the fourth release note, D.
- This is the fifth release note, E.
- This is the sixth release note, F.
25. Results
Introduced in late 2015,
6 development cycles ago
Over 13,000 release notes for
almost 300 deliverables
Many teams require release
notes with user-facing
changes
26. Interested?
Please try reno!
Defaults to OpenStack naming
conventions, but con鍖gurable.
We like making our tools more
鍖exible to meet your use case!
See also: towncrier or blurb