Contributing¶
- Branch from
mainand open a pull request. One change per pull request; CI must be green before it is merged. -
Before pushing, run the same checks CI runs:
uv run ruff check src tests scripts && uv run ruff format --check src tests scripts uv run mypy --strict src uv run pytest uv run python scripts/record_fixtures.py checkIf the change touches upstream behaviour, also run the live tests with a key (see Testing). 3. Never commit
.env, a key, anedi-token, or a fixture that did not come fromscripts/record_fixtures.py record.
Design and research records¶
DESIGN.mdkeeps the decision register. Each decision has a D-number (D1 hybrid backend, D2 bad keys, D4 credential form, D9 identifiers, …) with the question, the decision and the reason. Changing behaviour that a decision covers means updating that row in the same pull request; code comments cite the D-number.RESEARCH.mdrecords verified EDI, DataONE and MCP facts with the date each was checked. PASTA and DataONE change without notice, so a new upstream fact goes in with its date, and a fact that stopped being true is corrected rather than deleted silently.CLAUDE.mdand the code map summarise both for coding agents; keep them in step.
Two change logs¶
CHANGELOG.md(repository root) is the package release log, in the Keep a Changelog format1. Add user-visible changes under[Unreleased].docs/log.mdis the documentation bundle's log. Every docs change adds a dated## YYYY-MM-DDentry naming the pages created or updated.
Documentation¶
The docs/ tree is an Open Knowledge Format (OKF v0.2)3 bundle built
with Zensical. Content pages carry YAML frontmatter (title, description,
type, tags, generated, sources, status); section index.md files carry
none. After changing docs or tools:
uv run python scripts/gen_tools_reference.py # when a tool changed
uv run python scripts/gen_config_reference.py # when a setting changed
uv run python scripts/gen_llms_txt.py # always: docs/llms.txt, docs/llms-full.txt
uv run python scripts/okf_validate.py docs
uv run zensical build --clean --strict
Commit the generated files; the docs workflow fails when they drift from their
sources. Pages may only state what the code on main does; tools that are not
merged yet belong on the Roadmap.
Versioning¶
edi-mcp follows Semantic Versioning2. The version lives in
src/edi_mcp/__init__.py. The first release, v0.1.0, and its release workflow
are planned for build step 7.
-
Keep a Changelog 1.1.0. https://keepachangelog.com/en/1.1.0/ ↩
-
Semantic Versioning. https://semver.org/ ↩
-
Open Knowledge Format (OKF) v0.2 specification. https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md ↩