Release process skill and update to changelog tool (#3895)
* chore: update CHANGELOG.md links format * feat: changelog bump without links list * update changelog * skills: add release-process skill * tools: format changelog.py * tools: fix double 'v' prefix in changelog unreleased link * tools: fix get_release_date missing 'v' prefix * skills: package release-process skill * skills: remove packaged binary * docs: link to release-process skill in contributing guide * tools: safely handle empty release list in changelog * tools: format changelog.py and update GEMINI.md guidelines
This commit is contained in:
committed by
GitHub
parent
c995ffba07
commit
c296586c70
@@ -1404,58 +1404,4 @@ The tool can also be run so that it prints the generated output on standard outp
|
||||
|
||||
## Cutting a new release
|
||||
|
||||
Cutting a new release is mostly about updating `CHANGELOG.md` - luckily the [changelog tool](./tools/changelog.py) will do the heavy lifting for you.
|
||||
|
||||
In order to use it, you will need to generate a [Github Token](https://github.com/settings/tokens/). The token does not require any scope, so if you're purposely generating one, make sure to avoid adding any. Store the token in your favourite secret manager for future usage.
|
||||
|
||||
Also make sure to work in a `venv` where all the [requirements for the fabric tools](./tools/requirements.txt) are installed.
|
||||
|
||||
```bash
|
||||
cd cloud-foundation-fabric
|
||||
git checkout master
|
||||
git pull
|
||||
./tools/changelog.py --write --token $YOURGITHUBTOKEN
|
||||
```
|
||||
|
||||
After ~1 minute, the [CHANGELOG.md](./CHANGELOG.md) file will be updated by the tool - review any change by running `git diff` and make sure no unlabeled PR is listed. If you find unlabeled PRs, visit their link and add the relevant labels (e.g. on:FAST, on:blueprints, on:module, ...), and finally run again
|
||||
|
||||
```bash
|
||||
./tools/changelog.py --write --token $YOURGITHUBTOKEN
|
||||
```
|
||||
|
||||
Now open the up-to-date CHANGELOG.md in your favorite editor, and append the new release H2 after the `## [Unreleased]` header you see at the top - e.g. if the latest version is `29.0.0`, add an header for `30.0.0` and mark todays date as follows:
|
||||
|
||||
```md
|
||||
[...]
|
||||
## [Unreleased]
|
||||
<!-- None < 2024-03-20 13:57:56+00:00 -->
|
||||
|
||||
## [30.0.0] - 2024-03-20
|
||||
|
||||
## [29.0.0] - 2024-01-24
|
||||
|
||||
```
|
||||
|
||||
Now scroll to the bottom section of the document, and update the release links by adding `30.0.0` and updating `Unreleased` as follows:
|
||||
|
||||
```md
|
||||
[Unreleased]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v30.0.0...HEAD
|
||||
[30.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v29.0.0...v30.0.0
|
||||
[29.0.0]: https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/compare/v28.0.0...v29.0.0
|
||||
```
|
||||
|
||||
Once done, add, commit and push changes to master.
|
||||
|
||||
As CHANGELOG.md is now ready, [create a new release from the Github UI](https://github.com/GoogleCloudPlatform/cloud-foundation-fabric/releases/new), and use `vXX.Y.Z` as the release tag and title (don't forget the `v` in front!).
|
||||
|
||||
As a description, copy the whole content added to [CHANGELOG.md](./CHANGELOG.md) for the current release, and then click the 'Publish release' button.
|
||||
|
||||
As a last cleanup for the CHANGELOG.md file, run
|
||||
|
||||
```bash
|
||||
git pull
|
||||
./tools/changelog.py --write --token $TOKEN --release-to vXX.Y.Z
|
||||
git diff
|
||||
```
|
||||
|
||||
And add / commit / push any change in case of a diff.
|
||||
The release process has been codified into a Gemini CLI skill. Please refer to the [Release Process Skill](skills/maintenance/release-process/SKILL.md) for detailed instructions on how to cut a new release.
|
||||
|
||||
Reference in New Issue
Block a user