DataDesigner uses semantic versioning with automated version management via uv-dynamic-versioning.
Versions are automatically derived from git tags:
- No tag:
0.1.0.dev<N>+g<commit-hash>(development version) - Tagged commit:
1.2.3(release version) - After tag:
1.2.4.dev<N>+g<commit-hash>(next development version)
MAJOR.MINOR.PATCH
- MAJOR: Breaking changes (incompatible API changes)
- MINOR: New features (backward-compatible)
- PATCH: Bug fixes (backward-compatible)
When ready to release version X.Y.Z:
# Tag the release
git tag vX.Y.Z
# Push the tag
git push origin vX.Y.Z
# Build and publish
uv build
uv publishExample:
git tag v0.1.0
git push origin v0.1.0Users can access the version using Python's standard importlib.metadata:
import importlib.metadata
print(importlib.metadata.version("data-designer"))
# Output: 0.1.0 (or 0.1.0.dev18+ga7496d01a if between releases)Note: data_designer.__version__ does not work because data_designer is a namespace package.
- Version source: Git tags via
uv-dynamic-versioning - Version access:
importlib.metadata.version("data-designer")(standard Python approach) - Configuration: Package
pyproject.tomlfiles
When you clone the repository and run uv sync, you can access the version immediately:
git clone <repo>
uv sync
uv run python -c "import importlib.metadata; print(importlib.metadata.version('data-designer'))"
# Works!- During development: Commit normally, version auto-increments as dev versions
- Ready to release: Create and push a git tag (e.g.,
v0.1.0) - After release: Continue development, version becomes next dev version (e.g.,
0.1.1.dev1)
No manual version bumping required!