Releasing
This project is consumed by vendoring the source and pinning a git tag — there is no PyPI
publish. A release is a version bump, a CHANGELOG entry, and a vX.Y.Z tag; pushing the tag
triggers .github/workflows/release.yml, which creates the
GitHub Release (auto-generated notes + the tag's source archive).
Versioning
Semantic Versioning, 0.x cadence:
- minor (
0.N.0) — new features or breaking changes (pre-1.0, both bump the minor) - patch (
0.N.P) — bug fixes only
The version lives in one place: __version__ in
orchestrator/neo4j_backup_core/__init__.py.
pyproject.toml derives it ([tool.setuptools.dynamic]), and neo4j_backup_core.__version__
reports it at runtime — which works even when the source is vendored (not pip-installed).
Cut a release
- Bump
__version__inneo4j_backup_core/__init__.py. - In
CHANGELOG.md, rename the[Unreleased]section to[X.Y.Z] — YYYY-MM-DD(keep an empty[Unreleased]above it) and update the compare/link footnotes. - Commit on a branch, open a PR, merge to
mainwith CI green. - From
main:just release X.Y.Zprints the checks + the exact tag/push commands. Then run them:git tag vX.Y.Z git push origin vX.Y.Z release.ymlfires on the tag and publishes the GitHub Release. Verify at https://github.com/lex00/neo4j-backup/releases.
Tagging is a deliberate human step — the just release recipe validates but does not push a
tag for you.
Consuming a release
# vendor a specific tag
git clone --branch vX.Y.Z https://github.com/lex00/neo4j-backup
# or pip-install the package from the tag
pip install "neo4j-backup-dagster @ git+https://github.com/lex00/neo4j-backup@vX.Y.Z#subdirectory=orchestrator"