All configuration for the project should be put into pyproject.toml.
Working locally¶
Create a virtualenv using whatever method you like ( eg, virtualenvwrapper)
uv venvSync venv
uv sync --all-extras --all-packages --all-groupsRunning tests locally¶
To run a subset of the required tests, run the smoke test script
./scripts/smoke.bashIf on Windows, you should be able to just run the ‘tox’ commands in that file.
Updating/adding a dependency¶
Add or update the dependency in pyproject.toml
Update lock file
uv lock --upgradeSync venv
uv sync --all-extras --all-packages --all-groupsRun tests as above
Pre-commit¶
Basic checks (formatting, import order) are done with pre-commit and are controlled by the yaml file.
After installing dependencies, Run
# check it works
pre-commit run --all-files
pre-commit installRun every so often to update the pre-commit hooks
pre-commit autoupdateFixing Python formatting issues¶
ruff format tavern/ tests/
ruff --fix tavern/ tests/Fix yaml formatting issues¶
pre-commit run --all-filesCreating a new release¶
Setup
~/.pypircaccording to the official instructionsTag and push to git with
tbump <new-tag> --tag-message "<tag-message>"Upload to pypi with
flit publish
Building the documentation¶
Run this standalone for now: jupyter
uv tool run --from mystmd myst build --htmlWatching for changes¶
To automatically rebuild when files in the docs/ folder change:
uv tool run watchfiles "uv tool run --from mystmd myst build --html" --filter all docs myst.yml