Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: automate the release process via CHANGELOG.md #473

Closed
wants to merge 3 commits into from

Conversation

galargh
Copy link
Contributor

@galargh galargh commented Jul 16, 2024

This PR automates release generation via CHANGELOG.md file.

To create a new release, one has to add a new entry to the CHANGELOG.md file in a Keep a Changelog format.

E.g.

## [1.28.0-rc2] - 2024-06-27

or

## [1.28.0] - 2024-06-27

If no body is provided for that entry (i.e. no non-whitespace characters are found between the h2 version headers), then the release notes will be generated automatically (by the GitHub's release notes generator).


Depends on ipdxco/changelog-driven-release#17 ✅ and ipdxco/changelog-driven-release#16

Automatic notes generation - to be verified how it works in practice here; if it doesn't quite cut it, we'll add manual instructions on how to generate correct notes to the comment that the workflow leaves on the release PR.

README.md Outdated Show resolved Hide resolved
@galargh galargh requested review from BigLep and Stebalien July 23, 2024 13:11
@galargh galargh marked this pull request as ready for review July 23, 2024 13:11
@BigLep BigLep requested a review from rjan90 July 23, 2024 20:19
Copy link
Member

@BigLep BigLep left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool. Thanks for doing this.

My only concerns:

  1. We're introducing another way to do releases across this stack (Lotus way, version.go/cargo.toml way, and changelog). I don't think a big deal as each solution makes sense for the repo. More of an observation...
  2. Given we're leaning in on the Changelog (fine - cool), it seems odd not to have it getting populated (i.e., we have a file with a bunch of empty headings and I assume that will keep growing because we'll use the GitHub auto-generated text). It would be ideal I think if auto-generated text is created for the release that it also show up in the changelog. (And bonus if the auto-generated text gets updated in CHANGELOG.md that those edits make their way back into the GitHub release.)

7. Click "Publish release" to create the release.

</details>
Create a new entry in the [Changelog](CHANGELOG.md) for the new release. If you don't provide any description/body for the new entry, the release will be created with auto-generated release notes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Create a new entry in the [Changelog](CHANGELOG.md) for the new release. If you don't provide any description/body for the new entry, the release will be created with auto-generated release notes.
Create a new entry in the [Changelog](CHANGELOG.md) via PR for the new release using the [keep a changelog format](https://keepachangelog.com/en/1.1.0/).
When the PR is opened, a draft GitHub release will be created.
When the PR is merged, the GitHub release will be published.
If you don't provide any description/body for the new CHANGELOG entry, the release will be created with GitHub auto-generated release notes.
You can read more about this release flow at https://github.com/ipdxco/changelog-driven-release

Might just be me, but this section seemed a little too sparse. I know the process is simple (good), but I think a bit more info is useful.

https://keepachangelog.com/en/1.1.0/ doesn't seem like the right link here given it doesn't specify the ## [x.y.z] yyyy-mm-dd format I don't think. Maybe it would be better to link to https://github.com/ipdxco/changelog-driven-release?tab=readme-ov-file ?

@@ -134,37 +134,7 @@ The versioning in Filecoin-FFI currently follows the Lotus versioning. For exam

#### Release Process
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we also have a note about if/how/when release assets are created (since I don't think that is covered in #464 )

@rvagg
Copy link
Member

rvagg commented Jul 24, 2024

We're introducing another way to do releases across this stack

I was wondering if we had just considered using version.json for this? How was changelog arrived at as the best path for this?

@galargh
Copy link
Contributor Author

galargh commented Jul 24, 2024

We can use version.json for this. That's no problem at all.

@galargh
Copy link
Contributor Author

galargh commented Jul 24, 2024

Closing in favour of #475

@galargh galargh closed this Jul 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: ☑️ Done (Archive)
Development

Successfully merging this pull request may close these issues.

4 participants