Dev setup
Clone with submodules, install in editable mode with the dev extras, and enable pre-commit hooks. Native accelerator is built on first install.
shellfocus a line, then ⌘/Ctrl+C or Enterbash
git clone --recursive https://github.com/neuronscope/neuronscopecd neuronscopeuv sync --extra devuv run pre-commit installRunning tests
uv run pytest -q— the full suite (~90s on a laptop).uv run pytest -q -k fingerprint— target a module.uv run pytest -q --backend=jax— parametrized backend suite.
Style and typing
- Ruff for lint and format —
uv run ruff check,uv run ruff format. - Full mypy under
--strictfor theneuronscopepackage. - Public API changes need a stability annotation and a changelog entry.
Pull-request contract
- One logical change per PR. Refactors and features do not ship together.
- Every public change ships with a test that fails without the change.
- Every user-visible change updates the docs page it affects — not just the changelog.
- Breaking changes require an ADR and a deprecation cycle.