ci: standardize m-stdlib CI onto the Go m toolchain#12
Merged
Conversation
rafael5
added a commit
that referenced
this pull request
Jun 15, 2026
Per-repo memory for the CI toolchain switch — engine via --docker m-test-engine, the lint-severity wrapper, aggregate coverage, and the branch-base note vs the unmerged stdseed/meta-to-root branch. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the legacy Python m-cli (m-dev-tools/m-cli, pip-installed inside a yottadb/yottadb-base container) with the Go `m` (vista-cloud-dev/m-cli) for fmt/lint/test/coverage — unblocking VSL/MSL Phase B item 4 (the reusable m-ci.yml can't generalize across two toolchains). - ci.yml: ubuntu-latest runner builds `m` from m-cli (clone+build, proxy- lag-immune, M_CLI_REF default main) → Python drift gates (unchanged) → fmt/lint (Go m, engine-free) → m-test-engine container (--docker, the locally-proven path) → make test/coverage byte mode. Keeps the shared `arch` waterline gate + a fail-soft IRIS portability job. - Makefile: engine flags via $(M_ENGINE_FLAGS); --routines src; lint via scripts/m-lint-gate.sh; coverage --lcov + aggregate --min-percent=85; CORE_SRC excludes optional modules; ci/ci-json replace TAP with -o json. - scripts/m-lint-gate.sh: preserves `--error-on=error` semantics (zero error-severity findings) the Go m lacks a native flag for. - AGENTS.md: Setup/Test rewritten for the Go m; new CI/toolchain section. Local: make ci green — 45 suites / 2434 pass / 0 fail, aggregate coverage 92.79%. Real-CI proof is the point of this push. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Per-repo memory for the CI toolchain switch — engine via --docker m-test-engine, the lint-severity wrapper, aggregate coverage, and the branch-base note vs the unmerged stdseed/meta-to-root branch. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace m-stdlib's inline Go-`m` CI job with a thin caller of the new reusable vista-cloud-dev/.github `m-ci.yml` (VSL Phase B item 4). The Makefile targets (drift gates + fmt/lint + test/coverage/ci-json) and the lint-severity gate are unchanged — m-ci.yml just provisions `m` + the engine and runs those targets. Pinned to @m-ci-reusable to prove the reusable workflow on real CI; flip to @main once the .github PR merges. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Standardizes m-stdlib's CI onto the Go
m(vista-cloud-dev/m-cli),replacing the legacy Python m-cli (m-dev-tools/m-cli). Unblocks VSL/MSL
Phase B item 4 — the reusable
m-ci.ymlcan't generalize while m-stdlibruns a different M toolchain than the rest of the ecosystem.
What changed
.github/workflows/ci.yml— ubuntu-latest buildsmfrom m-cli(clone+build, proxy-lag-immune;
M_CLI_REFdefaultmain) → Python driftgates (unchanged) →
mfmt/lint (engine-free) →m-test-enginecontainerover
--docker(the locally-proven path) →make test/make coverage(byte mode). Keeps the shared
archwaterline gate + a fail-soft IRISportability job.
Makefile—$(M_ENGINE_FLAGS)engine transport;--routines src;lint via
scripts/m-lint-gate.sh; coverage--lcov+ aggregate--min-percent=85;CORE_SRCexcludes optional modules;ci/ci-jsonreplace TAP with
-o json.scripts/m-lint-gate.sh— preserves--error-on=errorsemantics (zeroerror-severity findings) that the Go
mlacks a native flag for.AGENTS.md— Setup/Test rewritten for the Gom; new CI/toolchainsection documenting the lint-severity + aggregate-coverage reconciliations.
Verification
Local
make cigreen — 45 suites / 2434 pass / 0 fail, aggregate coverage92.79%. This PR exists to prove the CI engine provisioning on a real
Actions run (the spike's actual unknown).
🤖 Generated with Claude Code