Skip to main content

Version Management

This document describes how version tagging and feature tagging work in Syntropy-Journals.

Version Format

The project uses semantic versioning: MAJOR.MINOR.PATCH
  • MAJOR: Breaking changes or significant rewrites
  • MINOR: New features, backwards compatible
  • PATCH: Bug fixes, small improvements
Current version is stored in pyproject.toml and displayed in the sidebar footer.

Feature Tags

Feature tags provide a quick visual indicator of the latest feature in a build. They appear in the sidebar footer as: v0.1.0 * checkin-cdc-sync Feature tags are stored in syntropy_journals/app/version.py:
FEATURE_TAG = "checkin-cdc-sync"

Files Involved

FilePurpose
pyproject.tomlSource of truth for version number (version = "0.1.0")
syntropy_journals/app/version.pyFEATURE_TAG constant
syntropy_journals/app/components/layout/sidebar.pySidebar footer displaying version + tag

Tag Format

Git tags follow the pattern:
v{MAJOR}.{MINOR}.{PATCH}-{feature-tag}
Example: v0.1.0-checkin-cdc-sync

Display

The sidebar footer renders:
Syntropy Journals * v0.1.0 * checkin-cdc-sync
The version string is assembled from pyproject.toml (via importlib.metadata or hardcoded) and FEATURE_TAG from version.py.

Updating the Version

Bump version number

Edit pyproject.toml:
[project]
name = "syntropy-journals"
version = "0.2.0"  # <-- bump here

Update feature tag

Edit syntropy_journals/app/version.py:
FEATURE_TAG = "your-new-feature"

Commit

git add pyproject.toml syntropy_journals/app/version.py
git commit -m "chore: bump version to 0.2.0-your-new-feature"
git tag v0.2.0-your-new-feature

CI/CD Integration

Currently there is no automatic version bumping in CI. Version bumps are manual:
  1. Developer updates pyproject.toml and version.py
  2. Commits and tags the release
  3. Push to test branch deploys to test environment
  4. PR from test to main deploys to production
Future work: add auto-bump on merge to main (patch increment + [skip ci] commit).