Skip to content

fix(ci): run the Go shards when a docs/project baseline changes - #1692

Merged
HuiJun merged 3 commits into
developfrom
fix/ci-baseline-json-runs-go
Oct 29, 2026
Merged

HuiJun merged 3 commits into
developfrom
fix/ci-baseline-json-runs-go

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

What and why

scripts/ci-changed-areas.sh classified every file under docs/project/ as documentation alone (docs_pattern matches ^docs/, nothing claims it for go). The 13 docs/project/*.json files are committed baselines that Go tests read — tools/referee/{apijson,diff,xpect,reject,pssm,fuml} provenance and figure checks, tools/census/{doccounts,manifest,transformation}, tests/fixtures/librarycensus.go, tools/bench/llm — and the docs/project/*.md pages carry the figures those tests check (TestRecordStatesTheBaselinesFigures in tools/referee/apijson, doc_counts_test.go in referee/diff, reject, xpect, tests/hygiene/compliance_identifiers_test.go over every docs/project/*.md, tests/hygiene/release_digests_test.go over docs/project/archive/CHANGELOG-0.0-0.8.md).

So a baseline-only re-record such as #1691 ran go=false: the full tier was green on the pull request (and would be in the merge queue, which diffs the same range) while the Go shard that holds the test the re-record fixes was skipped. Only develop's post-merge CircleCI run, which runs everything, exercises it.

This PR adds project_inputs_pattern='^docs/project/.*\.(json|md)$' to the script and feeds it into the go area, alongside hygiene_pattern. docs still runs for those files; nothing else about the classification changes.

Before / after on this branch's script, for a one-file change:

path before after
docs/project/pilot-differential-baseline.json docs docs, go
docs/project/api-json-differential.md docs docs, go
docs/project/archive/CHANGELOG-0.0-0.8.md docs docs, go
docs/guide/01-install.md, README.md, packaging/man/man1/sysml.1 docs docs (unchanged)
internal/…, tools/…, examples/…, tests/… all areas all areas (unchanged, service_pattern)

Other non-Go-suffixed Go-test inputs the script still classifies as non-go (not changed here, follow-ups)

Checked by grepping the Go tree for paths it reads and running the script over each:

  • docs/project/library-and-prefix-sweep-outcomes.txt — read by tests/fixtures/librarycensus.go; docs only. The one docs/project input outside .json/.md; this PR deliberately keeps to the two suffixes.
  • docs/manual/examples/*.sysml — read by cmd/sysml/manual_examples_test.go (ten tests) and an input root of both referee baselines; docs only.
  • docs/assets/opensysml-stack.sysml and docs/assets/ — read by tests/wasm/landing_model_test.go and tests/wasm/browser_repl_test.go; docs only.
  • docs/internals/architecture.md, README.md — figure-bearing pages read by tools/census/doccounts and tools/referee/diff/doc_counts_test.go; docs only.
  • docs/reference/rdf-mapping.md, docs/reference/sysml-v1-migration.md — read by internal/translate/export/experimental_test.go; docs/reference/sysml-mcp.md, docs/guide/01-install.md, docs/guide/08-editors.md — read by tests/hygiene/mcp_alias_test.go and mcp_registry_test.go; docs only.
  • .agents/skills/**/SKILL.md — read by tools/referee/{diff,reject,exec} doc-count tests; docs only (via .*\.md$).
  • editors/vscode/src/landing/* — read by tests/wasm/landing_model_test.go; vscode only.

examples/, tests/, every testdata/ directory and every _test.go already run go (service_pattern / hygiene_pattern), so they are not gaps.

How it was verified

  • bash scripts/ci-changed-areas-test.sh — all cases passed, including the three new full-tier cases project-baseline, project-figures, project-archive (docs,go) and the quick-tier project-baseline (docs,go); docs-only still yields docs.
  • shellcheck scripts/ci-changed-areas.sh scripts/ci-changed-areas-test.sh — clean.
  • go test -count=1 ./tests/hygiene/... — ok.
  • python3 scripts/changelog.py check — exit 0.
  • The before/after table above, from running the origin/develop script and this branch's script side by side over the listed paths in a throwaway repository.

Because the change touches scripts/, this PR itself runs every area, so the Changed areas job's own test step exercises the new cases in CI.

Checklist

  • make test and make lint pass locally (the script's test, hygiene suite and changelog check; no Go code changed)
  • Tests added or updated for the change
  • Documentation extended where it already covers the surface (the script's header comment documents the rule; no user docs cover the classification)
  • Changelog entry added as changes/unreleased/ci-baseline-json-runs-go.fixed.md
  • baselines regenerated and make docs-counts run if a gate count moved (no count moved)
  • No internal work-item labels in the body, docs, or changelog

Link to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/02c00bfac5574bdb91cc5179ca1fc86c
Open in Devin Desktop: https://nasa-jpl-demo.devinenterprise.com/desktop/session/02c00bfac5574bdb91cc5179ca1fc86c?variant=devin
Requested by: @HuiJun

Co-Authored-By: jason.han <hanhuijun@gmail.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration
devin-ai-integration Bot marked this pull request as ready for review October 29, 2026 17:48
devin-ai-integration[bot]

This comment was marked as resolved.

Co-Authored-By: jason.han <hanhuijun@gmail.com>
@HuiJun
HuiJun merged commit 051cf6b into develop Oct 29, 2026
30 checks passed
@HuiJun
HuiJun deleted the fix/ci-baseline-json-runs-go branch October 29, 2026 19:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant