ADR-020: Semantic Versioning

Status

Accepted

Context

Consistent versioning is important for release management, automation, and communication with users. Semantic versioning provides a standardized approach to versioning software releases including across disparate platforms and package managers like GitHub, PyPi, DockerHub and ArtifactHUB.

Decision

The project leverages the GitHub Action, cycjimmy/semantic-release-action, for managing semantic version bumps. This currently resides in pushMain.yml, which runs on pushes to the main branch in GitHub.

File modifications due to version bumps are implemented in scripts/bump_version.py, which is itself triggered by the semantic-release configuration in the root of this repo (./release.config.js).

Alternatives Considered

  • Manual version bumping.

  • Using other versioning tools or workflows.

Consequences

  • Positive: - Automates and standardizes version management. - Reduces manual errors and streamlines release processes.

  • Negative: - Requires maintenance of automation scripts and configuration. - Contributors must understand the automated versioning workflow.