Open balteravishay opened 5 months ago
Hi @johncollinson2001, @balteravishay, including an initial proposal on this here - comments, questions welcome:
Versioning allows users and developers to track changes between deployments, either by comparing code differences between versions or by referring to a changelog.
It also signals to users the nature of the changes, such as breaking changes, new functionality, or bug fixes, through the use of semantic versioning.
GitHub Releases is a built-in feature of GitHub repositories which allows you to package a version of your software. This is done using Git tags which marks a specific point in the repo history.
Example: a repo with version
1.0.0
has a major version 1, minor version of 0, and patch version of 0. When breaking changes are made, the major version should increase, e.g. to2.0.0
. When new features are added which are backwards compatible, this should increase the minor version, e.g.1.1.0
. If bug fixes are made, this should increase the patch version, e.g.1.0.1
.
Example: If a PR is merged to main which has the title
fix: uses correct formatting of organisation address
, then an automated workflow will be able to detect from thefix
keyword that there is a patch version increase required due to the bug fix.
fix
, feat
, build
, etc)This looks great, thanks for taking the time to propose this @frtibble! I support this standard, easy to maintain solution. @johncollinson2001 , wdyt?
Hi @frtibble @balteravishay
Thanks for putting this together, it looks great! I have a few questions...
Can you confirm... will the github action calculate version number, add the tag to the repo, as well as create the release? Is there much custom scripting required for this? I can see in the link above it uses https://github.com/codfish/semantic-release-action, would we probably use the same?
You mention the PR titles are used to by the action to figure out if it's a path/minor/major, is there any more info on this? E.g. how it's configured (e.g. fix
-> patch, feat
-> minor, what decides major vs minor?)
Manual release - this is completed by manually running the GH action?
Thanks!
Hi @johncollinson2001!
- Commits MUST be prefixed with a type, which consists of a noun,
feat
,fix
, etc., followed by the OPTIONAL scope, OPTIONAL !, and REQUIRED terminal colon and space.- The type
feat
MUST be used when a commit adds a new feature to your application or library.- The type
fix
MUST be used when a commit represents a bug fix for your application.
We can specify which convention we're using in the github action (which is one of the configuration options it supports, we can also customer the release notes as well for example).
Today, Healthcare Data Exchange project is not following a versioned release with a unique version identifier for each release intended to be used by users. The intent is to add a Semantic Version (SemVer) and leverage the GitHub release functionality to version Healthcare Data Exchange. For simplicity, at first step, the release mechanism should be manually triggered.