Fork-Awesome icon indicating copy to clipboard operation
Fork-Awesome copied to clipboard

Automate Release Process

Open shinenelson opened this issue 2 years ago • 5 comments

#335 proves ( again ) that humane error is inevitable. We need to automate our release process. There are many systems that assist in releasing software on GitHub. The most popular is @semantic-release, @conventional-changelog and @release-it.

Brief introductions :

  • @semantic-release automates the whole package release workflow including: determining the next version number, generating the release notes and publishing the package. This removes the immediate connection between human emotions and version numbers, strictly following the Semantic Versioning specification.
  • @conventional-changelog generates a CHANGELOG from git metadata
  • @release-it is a generic CLI tool to automate versioning and package publishing related tasks

We need to figure out how to automate our release process for future releases.

shinenelson avatar Sep 02 '21 09:09 shinenelson

I am in favor of @semantic-release since we already follow the Semantic Versioning specification.

@conventional-changelog only generates the CHANGELOG from commits. I am of the opinion that we cannot enforce commit message styles on contributors. I am, personally, not a fan of the Angular convention for commit messages. I am more of a imperative mood person.

@release-it, being a generic command-line-based tool, is a one-for-many tool. It has a plugin-based workflow and possibly would require more integration steps to work for us. This would be my second preference if @semantic-release doesn't simply work out of the box and would still require additional integration steps.

shinenelson avatar Sep 02 '21 09:09 shinenelson

Wow, I'm seeing a lot of activity on the repo! Makes me happy :-)

I'm not sure if this is the best place to put this, but I would also like to suggest creating a release on GitHub rather than just a tag in the future, regardless of whether it has any attachments like packages or whatever. My primary reason for suggesting this is that I watch this repo for new releases so I get a notification, but there is no option to watch for tags.

FWDekker avatar Sep 11 '21 10:09 FWDekker

I would also like to suggest creating a release on GitHub rather than just a tag in the future, regardless of whether it has any attachments like packages or whatever. My primary reason for suggesting this is that I watch this repo for new releases so I get a notification, but there is no option to watch for tags.

Yes, that is the future that we would like to get to too. And that is what we would like to achieve by adopting one of the above mentioned release frameworks. If you have other suggestions ( to automate the release process ), please suggest them too.

shinenelson avatar Sep 11 '21 11:09 shinenelson

I'm going to look into @semantic-release, if you say that's your favourite option @shinenelson

DougInAMug avatar Dec 17 '21 15:12 DougInAMug

I have not used this myself ( hence I do not really how it works ), but I came across Automatically generated release notes page on the GitHub docs website.

I am note sure whether this helps in making the release itself; but I do think that eases our need to have to figure out how to generate release notes, at least.

shinenelson avatar Feb 27 '22 18:02 shinenelson