diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5a0e3f15c..c424c145d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,9 +2,9 @@ name: Tests on: push: - branches: [main, node-graph] + branches: [main] pull_request: - branches: [main, node-graph] + branches: [main] jobs: changes: @@ -166,9 +166,9 @@ jobs: - name: Verify the graph acceptance burndown is monotone # The charter's second process rule, executable: the number of red # properties in the microcosm-graph acceptance suite never rises - # against origin/node-graph. The tool fetches that ref itself when the - # CI checkout does not carry it, and warns rather than failing when the - # branch is gone, so this cannot break main after the shard merges. + # against origin/main. The tool fetches that ref itself when the CI + # checkout does not carry it, and warns rather than failing when the + # baseline is unavailable. run: uv run python tools/graph_acceptance_burndown.py --verify - name: Sync workspace run: uv sync --all-packages --locked diff --git a/changelog.d/graph-ratchet-baseline-main.changed.md b/changelog.d/graph-ratchet-baseline-main.changed.md new file mode 100644 index 000000000..a0753de4f --- /dev/null +++ b/changelog.d/graph-ratchet-baseline-main.changed.md @@ -0,0 +1 @@ +The graph acceptance burndown ratchet and the test workflow now baseline on `main`; the `node-graph` integration branch has merged. diff --git a/docs/graph-acceptance.md b/docs/graph-acceptance.md index ef1ea00fe..cab787c4e 100644 --- a/docs/graph-acceptance.md +++ b/docs/graph-acceptance.md @@ -15,7 +15,7 @@ Three process rules keep the suite honest: implementation PR fails CI, so a test can never be green by accident. 2. **Monotone burndown.** `tools/graph_acceptance_burndown.py --verify` fails if the number of `xfail` markers in the suite is higher than on - `origin/node-graph`. Nobody re-reds a property. + `origin/main` (`origin/node-graph` until the shard merged). Nobody re-reds a property. 3. **Implementer ≠ author.** The lane that writes a property's test is a different lane from the one that makes it pass, and implementation pull requests never edit the suite. Ownership is in the last section. @@ -219,6 +219,6 @@ pull request reviewed by the Fable main. - **Max:** the rulings in the review's "Decisions that are yours" as they come due, and the `node-graph → main` merge. -Branch: `node-graph`, off `origin/main` at `4c6cc58c`. Work lands as pull +Branch: `node-graph`, off `origin/main` at `4c6cc58c`; merged into `main` on 2026-09-02 in #836 with every property green. Work lands as pull requests into `node-graph`; `node-graph` merges to `main` when the suite has zero `xfail` markers and H1–H2 are green. diff --git a/packages/microcosm-graph/tests/test_graph_acceptance_burndown.py b/packages/microcosm-graph/tests/test_graph_acceptance_burndown.py index 91fa3d9b6..dc1cc330d 100644 --- a/packages/microcosm-graph/tests/test_graph_acceptance_burndown.py +++ b/packages/microcosm-graph/tests/test_graph_acceptance_burndown.py @@ -180,7 +180,7 @@ def _repository(tmp_path: Path, sources: dict[str, str]) -> Path: ) for name, text in sources.items(): (root / "packages" / "microcosm-graph" / "tests" / name).write_text(text) - subprocess.run(["git", "init", "-q", "-b", "node-graph"], cwd=root, check=True) + subprocess.run(["git", "init", "-q", "-b", "main"], cwd=root, check=True) subprocess.run(["git", "add", "-A"], cwd=root, check=True) subprocess.run( [ @@ -197,7 +197,7 @@ def _repository(tmp_path: Path, sources: dict[str, str]) -> Path: check=True, ) subprocess.run( - ["git", "update-ref", "refs/remotes/origin/node-graph", "HEAD"], + ["git", "update-ref", "refs/remotes/origin/main", "HEAD"], cwd=root, check=True, ) diff --git a/tools/graph_acceptance_burndown.py b/tools/graph_acceptance_burndown.py index 141a932c2..923b8ffc4 100644 --- a/tools/graph_acceptance_burndown.py +++ b/tools/graph_acceptance_burndown.py @@ -12,7 +12,7 @@ marker on a helper would all fool a text search, and the number this prints is the number the charter is scored on. -``--verify`` compares against ``origin/node-graph``, file by file, and exits 1 +``--verify`` compares against ``origin/main``, file by file, and exits 1 if any file's count rose. A file that does not exist on the baseline is reported as new and constrains nothing; a file that does is a ratchet. It also refuses a marker that is not ``strict=True`` (a non-strict marker hides an @@ -40,8 +40,8 @@ CHARTER = "docs/graph-acceptance.md" #: The branch the ratchet compares against, and how to fetch it if absent. -BASELINE_REF = "origin/node-graph" -BASELINE_REFSPEC = "+refs/heads/node-graph:refs/remotes/origin/node-graph" +BASELINE_REF = "origin/main" +BASELINE_REFSPEC = "+refs/heads/main:refs/remotes/origin/main" #: Charter ids this suite owns. Group V (the visuals) belongs to another lane #: and is not an ``xfail`` in this suite.