ToothlessGear / node-gcm

A NodeJS wrapper library port to send data to Android devices via Google Cloud Messaging
https://github.com/ToothlessGear/node-gcm
Other
1.3k stars 208 forks source link

Add release automation #366

Open mtrezza opened 1 year ago

mtrezza commented 1 year ago

Adds release automation with auto-generation of changelog.

Preferred framework: semantic-release

I suggest we keep the "1 branch model" for ease of use for now (without pre-lease branches). That means every relevant PR will automatically create a change log entry, a release and publish it to GitHub and npm. In the same go we should think about changing the GitHub issue labels to be in line with angular commit types.

All in all, release automation will be a significant time saver and allow us to publish a new release with <1 min effort.

mtrezza commented 1 year ago

@ToothlessGear I think we should change the way PRs are merged / approved before we add auto-release. A key step for auto-release to work and not mess up the release is the commit message.

By experience, it takes a while until everyone with merge permissions got used to following all new aspects. We'll use CI checks where possible, but some responsibility always remains with the merger. For now, I suggest to limit merging PRs to yourself and me. If you are not familiar with semantic release, I can show you what's to keep in mind, but eventually we should document that for everyone to know. Also, for release automation to implement, I may need maintainer access to the repo (to also access the repo settings) and you'd need to add some secret tokens (NPM, etc.) to GitHub secrets.

mtrezza commented 1 year ago

@ToothlessGear Friendly reminder. Release automation would make it easier to maintain this package, and encourage contributions because merged PRs get released immediately as new versions.