Development

Initial setup

Fork the repository on Github, then clone the fork:

git clone git@github.com:YourGithubUserName/bartz.git
cd bartz

Install uv. My favorite installation route on macOS would be to install brew and then brew install uv.

Then install micromamba; for example with Homebrew:

brew install micromamba
micromamba shell init

Finally, run

make setup

This creates a micromamba virtual environment in ./.venv, which is then managed by uv. To run commands that involve the python installation, do uv run --no-sync <command>. For example, to start an IPython shell, do uv run --no-sync ipython.

Pre-defined commands

Development commands are defined in a makefile. Run make without arguments to list the targets.

Benchmarks

The benchmarks are managed with asv. Basic workflow:

uv run asv run
uv run asv publish
uv run asv preview

asv run writes the results into files saved in ./benchmarks. These files are tracked by git; consider deliberately not committing all results generated while developing.

Documentation

To build the documentation for the current working copy, do

make docs

To build the documentation for the latest release tag, do

make docs-latest

To debug the documentation build, do

make docs SPHINXOPTS='--fresh-env --pdb'