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.