Skip to content

Implement semantic release versioning #9

@binadamu-isiyoonekana

Description

@binadamu-isiyoonekana

Aim

This task aims at create an automatic semantic release versioning when a pull request is merged with the main branch. A semantic version number is made up of 3 digits separated by periods, namely MAJOR.MINOR.PATCH. For instance, 0.1.0 means a new minor release, 1.0.0 means a major release, and 0.0.1 means a patch.

As the project relies on squash and merge strategy to merge pull requests to the main branch, the semantic-release tool must analyse the inner commits of squash and merge pull requests, so that to catch conventional commits and decide on the semantic version number (i.e. whether the major, the minor or the patch number has to be incremented).

Assumption

  • Automatically determine a new semantic version of a component
  • Automate the release process
  • Generate the CHANGELOG files automatically
  • Should support commit history based exclusively on squash and merge pull request
  • The "toml" files don't need to be updated at the moment

Acceptance criteria

  • The semantic version updates automatically when a PR is merged
  • The semantic version updates 1 by 1 even if the commits in the PR contain multiple keywords (e.g. multiple feat, break, etc.)
  • The CHANGELOG files are generated
  • The semantic version increases only the MAJOR version digit even if there are minor or patch changes
  • The semantic version increases only the MINOR version digit even if there are patch changes

Risks

  • The production environment rely on this automation. This must be a very reliable part.

Dependencies

  • None

References

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions