wasp-lang / wasp

The fastest way to develop full-stack web apps with React & Node.js.
https://wasp-lang.dev
MIT License
12.83k stars 1.15k forks source link

Implement automatic CHANGELOG #223

Open Martinsos opened 3 years ago

Martinsos commented 3 years ago

https://www.conventionalcommits.org/en/v1.0.0-beta.2/ -> how we need to structure our commit messages.

https://github.com/conventional-changelog/conventional-changelog -> tool that we can then use to automatically generate changelogs. Once we are done, make a PR to be added to the list of projects using it at the bottom of their README.

Martinsos commented 3 years ago

I took a quick look at https://github.com/conventional-changelog/conventional-changelog but I am not sure yet this would integrate with our project.

What we want above all is to generate automatic body for a draft release that is created by CI when we push a new release. It should have all the important changes in the body and we just edit that and publish the release. It should create that body based on commit messages that follow https://www.conventionalcommits.org/en/v1.0.0-beta.2/ conventions. Bonus would be to have CHANGELOG.md file, although I don't think it is really needed, it is enough to just look at the releases in github. But if we can have it, why not. Actually, one way to go is to not have body of release filled in -> instead, CHANGELOG would be filled in, and we can edit it and commit when happy, and for release we just copy from CHANGELOG and edit further if needed. So that is also a way to go.

Right now we have a script new-release that we use locally to create a commit with the version bumped to whatever we said it should be bumped to and it also creates the right git tag and pushes it all to remote.

It would be cool if instead, when we run new-release (or smth else), commit was automatically generated with updated CHANGELOG and correct new version in package.yaml (which can be determined from the commit messages + old version).

I wonder if we can use https://github.com/conventional-changelog/conventional-changelog/tree/master/packages/conventional-changelog-cli completely to do this, or at least in some part.