Repository navigation
Conversation
Every run: step of the workflows and the parity composite action is now a single `go tool task <name>`, so what CI does is in the Taskfile and runs the same locally. Task is a go.mod tool, so the setup-task steps are gone. `task lint` holds the rule with go-tools' taskgate, and its sfw check. The TypeScript reference oracle is installed with pnpm through Socket Firewall instead of yarn. reference/ is upstream's submodule, so at task time `pnpm import` reads upstream's yarn.lock into a pnpm-lock.yaml at the same versions and a frozen install holds to it. esbuild's and node-pty's install scripts still run, as they did under yarn. pnpm 11 needs Node 22.13+, so the jobs that built the reference on Node 20 now use 24, as the parity composite action already did. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
spin-stack/go-tools#50 and #51 are on main: the pin moves from the PR's commit to main's, which also finds the Task go.mod pins for refs and holds pnpm run to installing nothing on its own. Co-Authored-By: Claude Opus 5.5 <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.
Holds this repository to two spin-stack rules, with the gates from go-tools:
run:step isgo tool task <name>, so what CI does lives in the Taskfile and runs the same way locally.go tool sfw pnpm ...).Depends on spin-stack/go-tools#50. go-tools is pinned to that PR's commit
8cf54b0. Once #50 merges, re-pin withgo get github.com/spin-stack/go-tools@<main's commit>.What changed
Tools.
go.modadds go-tools (cmd/taskgate,cmd/sfw) and Task v3.53.1 as tools. The workflows now need onlysetup-go, and everygo-task/setup-taskstep is gone. The composite action no longer has therepo-tokeninput, which only setup-task used.task lintnow also runsgo tool taskgateandgo tool sfw check.The reference oracle uses pnpm instead of yarn.
reference/is upstream's git submodule (devcontainers/cli), so no lockfile can be committed for it. At task time,reference:install:pnpm-workspace.yamlthat allows the two install scripts yarn ran: esbuild, and node-pty, which the oracle loads to exec with a TTY. It also setsverifyDepsBeforeRun: error, because otherwisepnpm runinstalls on its own, outside the firewall;go tool sfw pnpm import, which turns upstream'syarn.lockinto apnpm-lock.yamlat the same versions;go tool sfw pnpm install --frozen-lockfile.Then
reference:compilerunspnpm run compile. Both generated files stay inreference/as untracked files, sogit statusnow shows? reference. Deleting them after the install is not an option: pnpm 11'spnpm runtreats a missing lockfile as out of date.pnpm 11.27.1 (the version go-tools uses) is installed with
pnpm/action-setup, pinned by commit (v6.1.0). pnpm 11 needs Node 22.13 or later, so the jobs that built the reference on Node 20 (go-cliparity, and release'sgate,gate-runtimeandmetrics) now use Node 24. The composite action already used 24 for the runtime parity lanes. Nosetup-nodecache is used.Converted steps (22 → 0 findings, no exemptions):
coverage:summary SRC=coverage.out TITLE="unit (hermetic)"./devcontainer --versionbuild:smoke(new)coverage:summary(e2e)coverage:summary(contract)reference:commit(new)ci:daily-changes(new)parity:plan(new); the diff range comes in throughDIFF_BASE/DIFF_HEADenvcoverage:summary, titled with$PARITY_SHARD_INDEXreference:commitcoverage:summary(publish)coverage:unpack(new)coverage:merge, which now tees to$GITHUB_STEP_SUMMARYwhen it is setparity:gate(new); the job results come in throughRUNTIME_RESULT/PUBLISH_RESULTenvls -lh dist/build:crossif: matrix.build-mode == 'manual', and no matrix entry is manualrelease:resolve(new). It readsGITHUB_EVENT_NAMEinstead of a copiedEVENT_NAME. Outside CI it does a dispatch dry runrelease:tag(new). The tag and version come in through env instead of${{ }}inside the script. The job gainssetup-goIMAGE, and the tasks build the ref fromRELEASE_VERSIONrelease:smoke(new)release:digest(new)release:latest(new);continue-on-errorstays in the YAMLrelease:sign(new)Each task writes to
$GITHUB_OUTPUT/$GITHUB_STEP_SUMMARYwhen they are set, and to the terminal otherwise. Shell options are unchanged:set -euo pipefailwhere the step had it, and Task's default-ewhere the step relied on GitHub'sbash -e.Verified locally
go tool taskgate: OK (0 exempt).go tool sfw check: OK.blacksmith-*runner labels it doesn't know (same as main).go tool task --listparses. Every task a workflow calls exists.go tool task lint,test:unit,test:integration, and the workflow tests (TestWorkflow*,TestGoCLIWorkflow*): pass.go mod tidy -diff: clean.task referenceinstalls and compiles.node reference/devcontainer.js --versionprints0.89.0, and node-pty's native module loads.task parity:contract(oracle flag coverage, plus the contract lane against the pnpm-built oracle): 74 pass, 0 fail. The skipped cases are the docker and network ones.coverage,coverage:summary,coverage:unpack,coverage:merge,build:smoke,build:cross,reference:commit,parity:plan(PR and daily),ci:daily-changes(schedule and dispatch),parity:gate(pass and fail),release:resolve(auto CalVer, explicit version, a rejected version, tag push).task vuln: reports only standard-library findings for the local go1.27.0, the same as on main. CI's setup-go takes the latest 1.27.x.Not verified
release:tag,release:smoke,release:digest,release:latestandrelease:sign, which need release credentials and GHCR. They are checked only by rendering them (task --summary).🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.