Skip to content

Contributing

Pixel Patrol is an open project and we welcome contributions of all kinds - bug reports, feature suggestions, documentation improvements, new loaders or processors, and viewer plugins. If you want to get involved, open an issue or reach out at support@helmholtz-imaging.de.

Fork the repository on GitHub and open a pull request with your changes.


What's non-obvious

Monorepo with multiple packages. The repository contains several independently installable packages under packages/. Install the ones you need in editable mode:

uv pip install -e packages/pixel-patrol-base -e packages/pixel-patrol-image -e packages/pixel-patrol-loader-bio

The viewer build syncs to the Python package. The viewer is a separate Vite app in viewer/. Running npm run build in that directory compiles it and automatically copies the output into pixel-patrol-base, so pixel-patrol view always picks up your latest changes. For local development with hot reload use npm run dev.

Previewing the full site locally. Use ./tools/dev_serve.sh to build and serve the landing page, docs, and viewer together at the correct URLs (localhost:8000/ and localhost:8000/docs/). For docs-only editing with live reload, uv run --with mkdocs-material mkdocs serve is faster.

CI runs a wider matrix on main. Python tests run on Ubuntu only for feature branches, and additionally on Windows and macOS for pushes to main and PRs targeting it.