Versioning is an important part of development. Even better if it is done automatically.
Proposed Solution
As a developer, I want my new features/bugfixes to be released automatically through GHA when my PR is approved and merged bumping the current version, so that other devs may benefit from it while still support previous implementations (previous versions).
Alternatives / Workarounds
Git-tagging and creating releases manually. That is no practical solution and was promptly discarded.
Acceptance Criteria
[x] Implement and configure Semantic Release
[x] Enforce conventional commits so that the messages can be used automatically on changelogs
[x] Semantic release should auto generate changelogs
[x] Project should be released automatically through GHA
[x] Git tag should be automatically created (and bumped) when a new merge happens on main branch
Additional Context
Conventional commit details
Allowed commit types
Patch version bump (0.0.x)
fix (bugfixes)
perf (performance upgrades)
revert (commit revert)
Minor version bump (0.x.0)
feat (new features)
Major version bump (x.0.0)
feat (new features with breaking changes)
No version bump
docs (documentation updates)
chore (general changes not related to functionalities)
ref (general refactor that does not affect functionalities)
test (test implementation)
wip (work in progress)
style (Changes that do not affect any functionality, like white-space, formatting, missing semi-colons, etc)
Description
Versioning is an important part of development. Even better if it is done automatically.
Proposed Solution
As a developer, I want my new features/bugfixes to be released automatically through GHA when my PR is approved and merged bumping the current version, so that other devs may benefit from it while still support previous implementations (previous versions).
Alternatives / Workarounds
Git-tagging and creating releases manually. That is no practical solution and was promptly discarded.
Acceptance Criteria
main
branchAdditional Context
Conventional commit details
Allowed commit types
0.0.x
)fix
(bugfixes)perf
(performance upgrades)revert
(commit revert)0.x.0
)feat
(new features)x.0.0
)feat
(new features with breaking changes)docs
(documentation updates)chore
(general changes not related to functionalities)ref
(general refactor that does not affect functionalities)test
(test implementation)wip
(work in progress)style
(Changes that do not affect any functionality, like white-space, formatting, missing semi-colons, etc)Allowed commit scopes
References
Code of Conduct