Welcome! xmris is built on a strict “xarray in, xarray out” philosophy: the pipeline is
functional and N-dimensional, and every function preserves the physics metadata xarray carries.
Contributing means adding to that pipeline without breaking its guarantees.
Rather than one long checklist that applies unevenly, the rules here are organised by the kind of change you are making. Find your row and follow the page it points to:
| You are adding… | Start here | It defers to |
|---|---|---|
| A library function — transform, loader, or fit | Add a processing method | The Architecture Contract, The Two Domains |
| An interactive widget — a UI over the maths | Add a widget | The Architecture Contract |
| A docs page — tutorial, explainer, or guide | Write a docs page | Documentation style |
| The record of a significant decision | Write a dev-diary entry | A dev diary for xmris |
| The record of what shipped in a release | Write a changelog entry | Publishing |
Each of those pages carries a live checklist, rendered straight from the Claude Code skill that automates that kind of change — so whether you work by hand or with Claude, you follow the same, always-current rules.
Before your first change¶
Set up your environment — clone the repo, run
uv sync --all-extras --dev, and confirmuv run testis green.Make your change, following the page for its kind above. A significant decision is offered a dev-diary entry, written once the change lands.
Open a pull request against
main—maintakes no direct pushes. Six checks gate the merge: the test suite on Python 3.10 and 3.13, ruff, the docs style checker, an install of only what a real user receives, and an executed build of this documentation, so a broken notebook fails your branch rather thanmain. That build also publishes your change as a live preview site, which is where anything reader-facing gets reviewed.Drive it green, then hand off — a maintainer reviews and merges. Cutting a release is a separate, maintainer-run workflow: Publishing.
Where any contributor page differs from The Architecture Contract, that page wins: it is the authoritative rule set, and the skills defer to it too.