.gitlab-ci.yml: substrate-score job + CLI invocation v8 → substrate
Third refactor-induced defect caught from yesterday's v7+v8 → substrate rename (`bae5caf` for the package, `209d670` for the Makefile). Same pattern: a callsite that text-search misses because the import path doesn't connect through Python. CI surface (the `v8-score:` GitLab CI job) had two issues: 1. Job name `v8-score:` was a UX surface — operators see it in the GitLab MR pipeline UI. Renamed to `substrate-score:` for consistency with the package name + the CLI subcommand. 2. Script line called ``.venv/bin/arborist v8 score …``. Would have failed on the next manual MR pipeline run with an argparse "invalid choice: 'v8'" error. Comment block (lines 80-90 + 115-125) refreshed to call out the distinction: ``v8 paper`` (the substrate-paper version, name preserved per published convention) vs the module location (``arborist/substrate/fork_score.py`` post-2026-05-10 rename). Sweep verified: ``grep -rnE "arborist v[0-9]\\b|arborist\\.v[78]\\b"`` across the entire tree returns only intentional historical-note comments + the placeholder-seed bytestring derivation (which cannot change without invalidating KAT vectors). Three loose ends from one refactor: -85be5eb: fork_score.py import (Python imports caught by tests) -209d670: Makefile bench-fork-score target (would surface on run) - this: .gitlab-ci.yml job (would surface on next MR pipeline) Lesson written across the three commits: text-search-replace on a CLI rename misses callsites that argparse processes at runtime. Pre-rename checklist for next time: ``grep -rn "<cli-old-name>" Makefile .gitlab-ci.yml .github/workflows scripts bench``.
This commit is contained in:
parent
209d670988
commit
b320e276b9
1 changed files with 13 additions and 11 deletions
|
|
@ -81,7 +81,7 @@ test:
|
||||||
# Bench gate — runs the complete Dav1DPrometheus suite (5S + 5T + 5F
|
# Bench gate — runs the complete Dav1DPrometheus suite (5S + 5T + 5F
|
||||||
# + 5R = 21 sub-batteries, 462+ deterministic fixtures) on every push.
|
# + 5R = 21 sub-batteries, 462+ deterministic fixtures) on every push.
|
||||||
# Job fails if any fixture fails. Bench result JSON is stored as a
|
# Job fails if any fixture fails. Bench result JSON is stored as a
|
||||||
# pipeline artifact so the v8-score job (below) can compare branches.
|
# pipeline artifact so the substrate-score job (below) can compare branches.
|
||||||
# Wall-clock ~3-5s on the in-house runner; cheaper than `make test`.
|
# Wall-clock ~3-5s on the in-house runner; cheaper than `make test`.
|
||||||
#
|
#
|
||||||
# Closes the loop from "we have a fitness substrate" (#000021,
|
# Closes the loop from "we have a fitness substrate" (#000021,
|
||||||
|
|
@ -113,17 +113,19 @@ bench-suite:
|
||||||
expire_in: 30 days
|
expire_in: 30 days
|
||||||
|
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
# v8 ForkScore gate — for merge requests, score the bench delta
|
# Substrate ForkScore gate — for merge requests, score the bench
|
||||||
# between this branch and main. ACCEPT or MARGINAL pass; REJECT fails
|
# delta between this branch and main. ACCEPT or MARGINAL pass;
|
||||||
# the job. Phase 1 of #000012's selection protocol; the consensus
|
# REJECT fails the job. Phase 1 of #000012's selection protocol; the
|
||||||
# layer (validators, slashing, fork-choice) lives in the v8 paper
|
# consensus layer (validators, slashing, fork-choice) lives in the
|
||||||
# itself.
|
# Merkle-AGI v8 paper itself (paper version, not module location —
|
||||||
|
# the module is at arborist/substrate/fork_score.py per the
|
||||||
|
# 2026-05-10 v7+v8 → substrate refactor).
|
||||||
#
|
#
|
||||||
# This job is `manual` for now — auto-gating waits until the v8 paper
|
# This job is `manual` for now — auto-gating waits until the v8
|
||||||
# pins weight-set defaults for arborist's deployment shape. Operators
|
# paper pins weight-set defaults for arborist's deployment shape.
|
||||||
# trigger it on demand from the MR UI.
|
# Operators trigger it on demand from the MR UI.
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
v8-score:
|
substrate-score:
|
||||||
stage: test
|
stage: test
|
||||||
tags:
|
tags:
|
||||||
- build
|
- build
|
||||||
|
|
@ -162,7 +164,7 @@ v8-score:
|
||||||
> /tmp/parent.json || \
|
> /tmp/parent.json || \
|
||||||
echo '{"schema_version":"bench-result-v1","results":[]}' > /tmp/parent.json
|
echo '{"schema_version":"bench-result-v1","results":[]}' > /tmp/parent.json
|
||||||
# Score child vs parent. Exit 1 on REJECT (gates the merge).
|
# Score child vs parent. Exit 1 on REJECT (gates the merge).
|
||||||
- .venv/bin/arborist v8 score --parent /tmp/parent.json --child "$CHILD"
|
- .venv/bin/arborist substrate score --parent /tmp/parent.json --child "$CHILD"
|
||||||
|
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
# Optional: crawler extras + crawler-tagged tests. Opt-in via the
|
# Optional: crawler extras + crawler-tagged tests. Opt-in via the
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue