Skip to content

Commit 8d7447d

Browse files
authored
Merge pull request kubernetes#1807 from saschagrunert/relnotes-kep-update
Update release-notes KEP to reflect the current state
2 parents 0dbcef0 + 012015c commit 8d7447d

File tree

2 files changed

+38
-38
lines changed

2 files changed

+38
-38
lines changed

keps/sig-release/1733-release-notes/README.md

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Release Notes Improvements
22

33
<!-- toc -->
4+
45
- [Summary](#summary)
56
- [Motivation](#motivation)
67
- [Goals](#goals)
@@ -28,13 +29,19 @@ team, this is a visible change large enough to warrant a KEP.
2829

2930
The current release notes process is fraught with inefficiencies that should be streamlined.
3031

31-
- There are two different ways to generate release notes:
32-
[relnotes](https://github.com/kubernetes/release/blob/master/relnotes) and
33-
[release-notes](https://github.com/kubernetes/release/tree/master/cmd/release-notes).
34-
- Because of this there's duplicate effort maintaining separate tools.
32+
- There are multiple ways to generate release notes:
33+
[release-notes](https://github.com/kubernetes/release/tree/master/cmd/release-notes)
34+
[krel release-notes](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md)
35+
[krel changelog](https://github.com/kubernetes/release/blob/master/docs/krel/changelog.md)
36+
37+
`krel` and the stand-alone `release-notes` tool are already re-using the
38+
golang based libraries and are actively maintained. The former `relnotes`
39+
bash-script has been deprecated and therefore removed.
40+
3541
- We are currently shipping entire changelogs within markdown for each release.
36-
- PRs are frequently categorized within several SIGs, which the release notes team has to
37-
distill down for the sake of brevity before the release is actually cut.
42+
43+
<!-- TODO: this seems not an issue to me -->
44+
3845
- An end-user may not need to see _every single change_ that occurred within a release.
3946

4047
There is room for improvement in the generation as well as the consumption of release notes.
@@ -47,19 +54,20 @@ As this is a somewhat drastic departure from the current process, this should be
4754
approach:
4855

4956
- Consolidation and Clean-up
50-
- Update `anago` to use `release-notes`
51-
- Replace the "Detailed Bug Fixes And Changes" section in the release notes with a new
52-
website that allows user to filter and search.
53-
- Generate a consumable JSON file via `release-notes` as part of the Release Team duties
54-
- Identify and stop tracking any "External Dependencies" that a vanilla Kubernetes install
55-
does not rely on. (eg. Things in `cluster/addons`)
57+
- [x] Update `anago` to use `krel changelog`.
58+
- [x] Remove the bash-based `relnotes` script.
59+
- [x] Replace the "Detailed Bug Fixes And Changes" section in the release notes with a new
60+
website that allows user to filter and search.
61+
- [x] Generate a consumable JSON file via `release-notes` as part of the Release Team duties
62+
- [ ] Identify and stop tracking any "External Dependencies" that a vanilla Kubernetes install
63+
does not rely on. (eg. Things in `cluster/addons`)
5664
- Automation
57-
- Build additional labels to classify:
58-
- API Changes
59-
- Deprecations
60-
- Urgent Upgrade Notes
61-
- Capture release notes automatically via GitHub PR webhooks.
62-
- Use milestones to capture "Known Issues" at time of release notes generation
65+
- [x] Build additional labels to classify:
66+
- [x] API Changes (done, since we now sort the release notes by `kind/`)
67+
- [x] Deprecations (see above)
68+
- [x] Urgent Upgrade Notes
69+
- [ ] Put the generated release notes JSON in to a Google Cloud Bucket
70+
- [ ] Use milestones to capture "Known Issues" at time of release notes generation
6371

6472
### Non-Goals
6573

@@ -73,7 +81,7 @@ As stated above, this effort should be split into two phases.
7381

7482
#### Updating Anago
7583

76-
Currently, `anago` uses a
84+
Currently, `anago` uses a
7785
[different tool](https://github.com/kubernetes/release/blob/master/relnotes) to generate new
7886
release notes with every release save for main 1.x.0 releases. We need to ensure that the
7987
`release-notes` tool can generate the same output as the `relnotes` tool to ensure consistency.
@@ -103,21 +111,15 @@ these labels to ensure less manual classification.
103111

104112
#### Automated release notes
105113

106-
It should be possible to completely automate the generation and publishing of release notes. By
107-
building a Knative pipeline that is fed from GitHub PR events, we could have it grab, format,
108-
and commit new entries into the release notes website. As we don't want these notes to be
109-
published before a release goes live, we would create a "draft" flag in the `release-notes` JSON
110-
schema.
111-
112-
Once a release is ready to be cut, the release notes team would then flip all the 1.x notes that
113-
have been collected to not be drafts. This would be done by cloning down the release notes
114-
website, and running the `release-notes` tool over the JSON and committing the new output.
115-
116-
Example:
114+
It should be possible to completely automate the generation and publishing of
115+
the release notes for the [website](https://relnotes.k8s.io). The idea is to put
116+
the (manually) generated JSON into a Google Cloud Bucket and let the website
117+
scrape the bucket for new notes. This can be done by placing an index.json file
118+
side-by-side to the actual notes, like we do it in the [current website
119+
implementation](https://github.com/puerco/release-notes/blob/master/src/environments/assets.ts).
117120

118-
```bash
119-
release-notes -i relnotes.json -p 1.15.0
120-
```
121+
Once a release is ready to be cut, the release notes team would then run `krel release-notes`
122+
which takes care of editing the Google Cloud Bucket.
121123

122124
### Risks and Mitigations
123125

@@ -136,7 +138,5 @@ website that is automatically updated with minimal human interaction.
136138
## Infrastructure Needed
137139

138140
A GitHub repo will need to be setup to host code for both the `release-notes` tool as well as the
139-
new release notes website. Said repo will also need to be integrated with Netlify for hosting. An
140-
initial design idea to power the automatic generation of release notes was to use a Knative pipeline.
141-
This would require a Kubernetes cluster to run on, as well as a GitHub token and webhook registration.
141+
new release notes website. Said repo will also need to be integrated with Netlify for hosting.
142142
Lastly, a DNS entry will be needed to point to the Netlify site (proposal: relnotes.k8s.io)

keps/sig-release/1733-release-notes/kep.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ approvers:
1212
- "@calebamiles"
1313
- "@tpepper"
1414
- "@justaugustus"
15-
editor: TBD
15+
editor: "@saschagrunert"
1616
creation-date: 2019-03-31
1717
last-updated: 2019-03-31
18-
status: provisional
18+
status: implementable

0 commit comments

Comments
 (0)