cluster-api
cluster-api copied to clipboard
:sparkles: Add release notes expander functionality
What this PR does / why we need it:
Add expander in generated release notes
./bin/notes --release v1.6.0 --pre-release-version true > CHANGELOG/v1.6.0.md
$ cat CHANGELOG/v1.6.0.md
🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an [issue](https://github.com/kubernetes-sigs/cluster-api/issues/new).
## 👌 Kubernetes version support
- Management Cluster: v1.**X**.x -> v1.**X**.x
- Workload Cluster: v1.**X**.x -> v1.**X**.x
[More information about version support can be found here](https://cluster-api.sigs.k8s.io/reference/versions.html)
## Highlights
* REPLACE ME
## Deprecation Warning
REPLACE ME: A couple sentences describing the deprecation, including links to docs.
* [GitHub issue #REPLACE ME](REPLACE ME)
## Changes since v1.5.0
## :chart_with_upwards_trend: Overview
- 417 new commits merged
- 6 breaking changes :warning:
- 16 feature additions ✨
- 46 bugs fixed 🐛
## :memo: Proposals
- Community meeting: Add proposal for karpenter integration feature group (#9571)
<details>
<summary>More details about the release</summary>
## :warning: Breaking Changes
- API: Remove v1alpha3 API Version (#8997)
- API: Stop serving v1alpha4 API Versions (#8996)
- clusterctl: Improve Context handling in clusterctl (#8939)
- Dependency: Bump to controller-runtime v0.16 (#8999)
- MULTIPLE_AREAS[Metrics/Logging]: Implement secure diagnostics (metrics, pprof, log level changes) (#9264)
- util: : Remove go-vcs dependency from releaselink tool (#9288)
## :sparkles: New Features
- Testing: V1.29: Prepare quickstart, capd and tests for the new release including kind bump (#9890)
.....
## :bug: Bug Fixes
- util: Fix AddAnnotations for unstructured.Unstructured (#9164)
.....
## :seedling: Others
- API: Add ClusterClass column to Cluster CRD (#9120)
....
:book: Additionally, there have been 65 contributions to our documentation and book. (#10024, #10047, #8260, #8500, #8678, #8819, #8988, #9001, #9013, #9014, #9024, #9029, #9080, #9081, #9087, #9112, #9119, #9141, #9146, #9150, #9161, #9173, #9208, #9209, #9213, #9214, #9232, #9270, #9286, #9291, #9305, #9328, #9364, #9386, #9403, #9415, #9429, #9433, #9463, #9487, #9488, #9490, #9511, #9513, #9514, #9527, #9550, #9559, #9565, #9572, #9577, #9590, #9593, #9613, #9635, #9654, #9706, #9815, #9816, #9824, #9830, #9878, #9902, #9951, #9979)
</details>
<br/>
_Thanks to all our contributors!_ 😊
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #9319
/area release
Hi @chandankumar4. Thanks for your PR.
I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
/ok-to-test
Nice work! I generated release notes for
v1.6.0-rc.1and compared it to the existing release notes here. It looks like the intention is to move everything underKubernetes version supportinto the dropdown section, and to list changes from the previous release candidate or beta version (v1.6.0-rc.0) in this case outside of the dropdown. This is because the generated content is from v1.5.0 rather than the previous release candidate or beta version. Let me know if this makes sense!
Made the changes accordingly. Added --previous-release-version flag, so the example command will looks like
./bin/notes --release v1.6.0-rc.1 --previous-release-version tags/v1.6.0-rc.0 --pre-release-version true > CHANGELOG/v1.6.0-rc.1.md
And generated notes will be
🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an [issue](https://github.com/kubernetes-sigs/cluster-api/issues/new).
## Highlights
* REPLACE ME
## Deprecation Warning
REPLACE ME: A couple sentences describing the deprecation, including links to docs.
* [GitHub issue #REPLACE ME](REPLACE ME)
## Changes since v1.6.0-rc.0
## :chart_with_upwards_trend: Overview
- 57 new commits merged
- 2 feature additions ✨
- 14 bugs fixed 🐛
## :sparkles: New Features
- Control-plane: KCP: Allow mutation of all fields that should be mutable (#9885)
- Testing: V1.29: Prepare quickstart, capd and tests for the new release including kind bump (#9890)
## :bug: Bug Fixes
- CAPD: Fix ignition to also set the kube-proxy configuration to skip setting sysctls (#9895)
...
## :seedling: Others
- CABPK: Add pod metadata to capbk manager (#10212)
- CI: Bump kubebuilder envtest to 1.29.0 (#10014)
....
🚨 This is a RELEASE CANDIDATE. Use it only for testing purposes. If you find any bugs, file an [issue](https://github.com/kubernetes-sigs/cluster-api/issues/new).
<details>
<summary>More details about the release</summary>
## 👌 Kubernetes version support
- Management Cluster: v1.**X**.x -> v1.**X**.x
- Workload Cluster: v1.**X**.x -> v1.**X**.x
[More information about version support can be found here](https://cluster-api.sigs.k8s.io/reference/versions.html)
## Highlights
* REPLACE ME
## Deprecation Warning
REPLACE ME: A couple sentences describing the deprecation, including links to docs.
* [GitHub issue #REPLACE ME](REPLACE ME)
## Changes since v1.5.0
## :chart_with_upwards_trend: Overview
- 435 new commits merged
- 6 breaking changes :warning:
- 16 feature additions ✨
- 49 bugs fixed 🐛
## :memo: Proposals
- Community meeting: Add proposal for karpenter integration feature group (#9571)
## :warning: Breaking Changes
- API: Remove v1alpha3 API Version (#8997)
...
## :sparkles: New Features
- API: Add validation to nested ObjectMeta fields (#8431)
...
## :bug: Bug Fixes
- CABPK: Certificate paths in cloud-init scripts should not use a platform-dependent path separator (#9167)
...
## :seedling: Others
- API: Add ClusterClass column to Cluster CRD (#9120)
....
:book: Additionally, there have been 67 contributions to our documentation and book. (#10024, #10047, #10105, #10116, #8260, #8500, #8678, #8819, #8988, #9001, #9013, #9014, #9024, #9029, #9080, #9081, #9087, #9112, #9119, #9141, #9146, #9150, #9161, #9173, #9208, #9209, #9213, #9214, #9232, #9270, #9286, #9291, #9305, #9328, #9364, #9386, #9403, #9415, #9429, #9433, #9463, #9487, #9488, #9490, #9511, #9513, #9514, #9527, #9550, #9559, #9565, #9572, #9577, #9590, #9593, #9613, #9635, #9654, #9706, #9815, #9816, #9824, #9830, #9878, #9902, #9951, #9979)
</details>
<br/>
_Thanks to all our contributors!_ 😊
Looks like there are still some errors when running the release notes tool test with make test-release-notes-tool. I think it's just some minor formatting that you need to fix:
- <details>
- <summary>More details about the release</summary>
## 👌 Kubernetes version support
... // 188 identical lines
- google.golang.org/grpc/cmd/protoc-gen-go-grpc: v1.1.0
- </details>
- <br/>
When running this command, I noticed that This is a RELEASE CANDIDATE/BETA RELEASE. Use it only for testing purposes. If you find any bugs, file an [issue](https://github.com/kubernetes-sigs/cluster-api/issues/new). is printed at the start and right before the dropdown. I'm not sure if it's intended and it's probably worth to remove the second one!
./bin/notes --release v1.6.0-rc.1 --previous-release-version tags/v1.6.0-rc.0 --pre-release-version true > CHANGELOG/v1.6.0-rc.1.md
Thanks for making this change! I think the unit test
make test-release-notes-toolis still failing.Also one more nit: The tool should be printing this line inside the dropdown: https://github.com/willie-yao/cluster-api/blob/main/CHANGELOG/v1.6.0-rc.1.md#L32
Thanks for the review, made the required changes and fixed the test cases also
@willie-yao @cahillsf PTAL when you have time (I will approve after your lgtm)
LGTM label has been added.
/assign @fabriziopandini
FYI #10324 may merge soon with a change to the flags for the release notes tool. You may need to rebase if this merges first. It just removes the --pre-release-version in favor of --release-type to distinguish between beta releases and release candidates.
removes the
--pre-release-versionin favor of--release-typeto distinguish between beta releases and release candidates
That is not completely true. I removed the parameter --pre-release-version completely and let it determine from the given tag what type of release it is :)
I tried running this command ./bin/notes --release v1.6.0-rc.1 --previous-release-version tags/v1.6.0-rc.0 > CHANGELOG/v1.6.0-rc.1.md and the dropdown seems to be missing. You might need to adjust when to add the dropdown based on if the release tag is a preview version or not, now that there is no longer a --pre-release-version flag
@willie-yao sorry for the confusion, It was messed up while resolving review comment as --pre-release-version flag is removed. I have fixed it now. Thanks
No problem! Thanks for the rebase and quick fix!
/lgtm
LGTM label has been added.
/lgtm
LGTM label has been added.
/lgtm /approve
Let's start using this and eventually iterate while working on 1.7 pre releases
[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: fabriziopandini
The full list of commands accepted by this bot can be found here.
The pull request process is described here
- ~~hack/tools/release/OWNERS~~ [fabriziopandini]
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment
/unhold