Development Setup¶
Prerequisites¶
- Python 3.10 or later
- uv (Python package manager)
Clone and Install¶
Install all dependencies (runtime + dev + test + docs + notebooks):
This runs uv sync --all-extras and sets up pre-commit hooks, nbstripout, and nbdime.
Common Commands¶
# Run tests
make test
# Run tests with coverage
make test-cov
# Lint
make lint
# Auto-format
make format
# Serve docs locally (localhost:8000)
make docs-serve
# Build docs
make docs-build
# Build package (wheel + sdist)
make build
Releasing a New Package Version¶
- Update
__version__inxaitimesynth/__init__.py(single source of truth;pyproject.tomlreads it automatically via hatchling) - Update
versioninCITATION.cff - Add a new section to
CHANGELOG.md - Create a PR and merge into
main - Tag the merge commit:
git tag vX.Y.Z && git push --tags - Create a GitHub release from the tag (this triggers CI to build and publish to PyPI)