cluster-api icon indicating copy to clipboard operation
cluster-api copied to clipboard

:sparkles: Add release notes expander functionality

Open chandankumar4 opened this issue 1 year ago • 8 comments
trafficstars

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

chandankumar4 avatar Feb 02 '24 10:02 chandankumar4

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.

k8s-ci-robot avatar Feb 02 '24 10:02 k8s-ci-robot

/ok-to-test

willie-yao avatar Feb 02 '24 19:02 willie-yao

Nice work! I generated release notes for v1.6.0-rc.1 and compared it to the existing release notes here. It looks like the intention is to move everything under Kubernetes version support into 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!_ 😊

chandankumar4 avatar Mar 06 '24 17:03 chandankumar4

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/>

willie-yao avatar Mar 08 '24 18:03 willie-yao

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

image

willie-yao avatar Mar 08 '24 18:03 willie-yao

Thanks for making this change! I think the unit test make test-release-notes-tool is 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

chandankumar4 avatar Mar 12 '24 15:03 chandankumar4

@willie-yao @cahillsf PTAL when you have time (I will approve after your lgtm)

fabriziopandini avatar Mar 19 '24 15:03 fabriziopandini

LGTM label has been added.

Git tree hash: 2a169767dfb4e3ac0fa3ea44dc85d94b2b84a722

k8s-ci-robot avatar Mar 26 '24 18:03 k8s-ci-robot

/assign @fabriziopandini

chandankumar4 avatar Mar 26 '24 19:03 chandankumar4

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.

willie-yao avatar Mar 27 '24 18:03 willie-yao

removes the --pre-release-version in favor of --release-type to 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 :)

tobiasgiese avatar Mar 27 '24 21:03 tobiasgiese

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 avatar Mar 28 '24 18:03 willie-yao

@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

chandankumar4 avatar Mar 28 '24 19:03 chandankumar4

No problem! Thanks for the rebase and quick fix!

/lgtm

willie-yao avatar Mar 28 '24 20:03 willie-yao

LGTM label has been added.

Git tree hash: 2242a031bb85b77ae23193527a6ba37449d4d124

k8s-ci-robot avatar Mar 28 '24 20:03 k8s-ci-robot

/lgtm

tobiasgiese avatar Mar 29 '24 17:03 tobiasgiese

LGTM label has been added.

Git tree hash: c34f71985015404545125917dda2370c603ed59d

k8s-ci-robot avatar Mar 29 '24 17:03 k8s-ci-robot

/lgtm /approve

Let's start using this and eventually iterate while working on 1.7 pre releases

fabriziopandini avatar Mar 29 '24 18:03 fabriziopandini

[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

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment Approvers can cancel approval by writing /approve cancel in a comment

k8s-ci-robot avatar Mar 29 '24 18:03 k8s-ci-robot

/unhold

chandankumar4 avatar Mar 29 '24 18:03 chandankumar4