Versioning tools
Versioning Tools¶
We use GitHub Actions workflow to deploy the main branch to the Droplet server.
Versioning Tools¶
- Semantic Versioning
bumpver/pyproject.toml- GitHub Actions Workflow
1. Semantic Versioning¶
We follow Semantic Versioning. For more information, please view the website.
2. bumpver / pyproject.toml¶
We use bumpver to automate our versioning. Using the bumpver command updates the project version number in pyproject.toml.
pyproject.tomlmust be located inarctyk/pyproject.toml(the project's root directory).bumpvaris installed with the following command:
Options¶
There are different options available to use with bumpver:
- To bump a patch version:
bumpver update --patch - To bump a minor update:
bumpver update --minor - To bump a major update:
bumpver update --major
Example usage:
pyproject.toml¶
Here's the pyproject.toml configuration as of v0.4.0:
[tool.black]
line-length = 88
target-version = ["py312"]
exclude = "migrations/"
[tool.isort]
profile = "black"
line_length = 88
combine_as_imports = true
include_trailing_comma = true
skip_gitignore = true
[tool.bumpver]
current_version = "0.4.0"
version_pattern = "MAJOR.MINOR.PATCH[-TAG.NUMBER]"
commit_message = "chore(release): v{new_version}"
tag_message = "v{new_version}"
tag_scope = "default"
[tool.bumpver.file_patterns]
"pyproject.toml" = [
'version = "{version}"'
]
"src/config/__init__.py" = [
'__version__ = "{version}"'
]
"package.json" = [
'"version": "{version}"'
]
"package-lock.json" = [
'"version": "{version}"'
]
"Dockerfile" = [
'version="{version}"'
]
[project]
version = "0.4.0"
requires-python = ">=3.10,<3.14"
Instructions¶
The following commands demonstrate how to use to bumpver correctly with Arctyk ITSM.
Daily development (dev builds)¶
Start development on a new minor:
Result:
Increment dev build:
Result:
Dev → Alpha → Beta → RC → Stable (release flow)¶
Dev → Alpha:
Result:
Increment alpha:
Result:
Alpha → Beta:
Result:
Increment Beta:
Beta → RC:
Result:
RC → Stable:
Result:
Patch releases (hotfixes)¶
Stable patch:
Result:
Patch with dev cycle
Result:
Major release (breaking changes)¶
Result:
Or immediately into dev:
Result:
Dry runs (highly recommended)¶
PowerShell quality-of-life aliases (optional)¶
Add to your PowerShell profile:
Set-Alias bv bumpver
function bv-dev { bumpver update --tag dev --tag-num }
function bv-alpha { bumpver update --tag alpha --tag-num 0 }
function bv-beta { bumpver update --tag beta --tag-num 0 }
function bv-rc { bumpver update --tag rc --tag-num 0 }
function bv-release { bumpver update --tag "" }
Usage:
What happens automatically (your setup)¶
When you run any of the above, bumpver will:
- Update
pyproject.toml - Update
src/config/__init__.py - Update
package.json - Update
package-lock.json(if present) - Update Docker labels
- Create a Git commit
- Create a Git tag
Exactly what you wanted.
Recommended workflow for Arctyk ITSM¶
Current phase (UI + architecture changes):
When UI stabilizes:
Before user testing:
Pre-production:
Release: