blob: 6a1baed85126cb53ecc4631272ba48ee6da2921f [file] [log] [blame] [view]
---
title: ""
permalink: design-docs/generate-release-notes-use-cases.html
hide_sidebar: true
hide_navtoggle: true
toc: false
---
# Use-case
* As an admin I expect release notes that are well-written and
complete, so that I can safely plan/execute Gerrit upgrades (being complete
means for release notes that all important changes are mentioned, e.g.
breaking changes, new features, important bug-fixes, library upgrades).
* As a release manager I don't want to spend a lot of time and effort
on manually writing release notes, but the release notes should be
generated.
## Secondary use-cases
* As a contributor pushing changes should be easy. If a release
notes entry is required for my change it should be easy to attach.
* As Gerrit community we want to review release notes to ensure high
quality.
* As reviewer I want to review the release notes entry together with
the change in Gerrit, so that I have all context in one place.
* As Gerrit community we want to ensure that all relevant changes are
reflected in the release notes. Hence changes without release notes
entry should be an exception.
* As Gerrit project we want the creation of new releases be quick and
easy so that we can do releases any time on short notice. Hence
generating release notes should be possible any time.
* As admin I expect that release notes are consistenly structured
across releases (e.g. release notes should always have the same
sections).
## <a id="acceptance-criteria"> Acceptance Criteria
* When a new release is created, the release notes are either already
ready or can be generated automatically.
* All relevant changes have a release notes entry attached:
* The release notes entry is part of the Gerrit change and can be
reviewed in Gerrit.
* Changes without release notes entry can be detected and be blocked
from submit.
* Trivial changes without release notes entry are possible.
* Having multiple changes that share one release notes entry are
possible.
* If a release notes entry for a change is missing it's
self-explanatory and easy for the contributor to attach it.
* When another branch is merged into a branch, the release notes
entries of the integrated changes are automatically included into
the release notes of the target branch.
* When a change is cherry-picked its release notes entry is
automatically included into the release notes of the target branch.
* Submitting changes with release notes entries should not require
conflict resolutions in the release notes.
* Amending release notes entries after they have been submitted must be
possible.
* Amending release notes after a release was created must be possible.
* The (generated) release notes must be well-structured. E.g. it has
pre-defined sections that are automatically populated with release
note entries.
* For writing release notes entries it is possible to use basic
formatting (e.g. lists, subsections, links etc.).
## <a id="background"> Background
Creating Gerrit releases is a pain because release notes must be
written manually which takes a lot of time and effort. Writing the
release notes after the fact has a high risk of missing things that
should have been mentioned. Also the release manager may not know the
details of every change and hence may not be able to summarize each
and every change properly. Reviewing release notes is difficult
because there are no links to the changes that did the implementation.
During the community retrospective it was brought up that the quality
of our releases notes should be improved (e.g. it was criticized that
the release notes sometimes omit important changes).