Contributing to MAMUT-routing¶
Thank you for helping. MAMUT-routing is four repositories (this one, MAMUT-routing-lib, MAMUT-routing-tools
and the benchmark satellites) with one contract; the
documentation has the guides, this page has the rules.
What is welcome¶
- Better solutions. Send the solution file (routes) in an issue or a pull request on the family's repository; we run the checker and store the validated cost. Never edit a BKS file by hand.
- New benchmark material: families, problem classes, objective functions. Open an issue first so the contract change (an enum in the lib, a section in the family texts, a license clause) is agreed before the data lands.
- Fixes and features in the lib, the tools, the publisher and the website.
- Documentation: every page under
docs/is a pull request away; generated pages say where their source is.
Ground rules¶
- The checker is the authority. Costs stored anywhere are checker costs; a change to a checker is a contract change with a version bump, documented in the checker's docstring and the Formats pages.
- Every published byte is reproducible. Sorted JSON keys, sha256-pinned sidecars, deterministic archives,
seeded generation. Tests enforce byte-identity where it matters (
.vrpexport, route geometry). - Satellites are optional. Code, tests, builds and docs must work with empty satellite directories.
- Data licenses travel with the data. A family
LICENSEwith anSPDX-License-Identifierfirst line, a clause inNOTICE, and the license paragraph in the family README. - Decisions are written down where they apply: module docstrings for contract rules, family README and
changelog for family choices.
docs/reports/is untracked scratch space.
Workflow¶
git clone git@github.com:ANR-MAMUT/MAMUT-routing.git && cd MAMUT-routing
git submodule update --init --recursive MAMUT-routing-lib MAMUT-routing-tools
uv sync
uv run pytest # publisher + lib
uv run mkdocs build --strict # documentation
Branch from main, keep pull requests focused, describe the why. Commits that touch a submodule pointer say which
commit and why. The Docs workflow must pass; the tools' own CI runs on their repository.
Authorship¶
Contributors are listed in AUTHORS.md; say in your pull request how you want to be credited.
Source: CONTRIBUTING.md.