Skip to content

docs: docs/ci-speed.md, what makes CI slow and what changed - #142

Merged
jayleaton merged 1 commit into
mainfrom
docs/ci-speed
Oct 31, 2026
Merged

jayleaton merged 1 commit into
mainfrom
docs/ci-speed

Conversation

@jayleaton

@jayleaton jayleaton commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

Rules. Before merge, run what this change needs on its exact head (docs/CI.md, "What to run"): for Go, make lint test scoped with LINT_DIRS/TEST_PKGS (scripts/affected.sh prints them) or make check-fast, plus the checks of what you touched. Then make ci-local RAN="<what you ran>" posts local-ci and fills "Local verification" with that statement and the head SHA. Never edit that section by hand. The Local verification check, make pr-merge and the staging gate refuse the PR while it is missing, names another head, or differs from what local-ci attested. A new push or rebase needs a new attestation. A reported failure (FAILED=) is final for that head: fix it in a new commit (docs/CI.md, "Local verification").

Problem

The CI speed work needs its numbers and its rejected ideas written down, so the next person does not measure them again.

Fix

  • docs/ci-speed.md: baseline timings (Mac, and 2 and 4 vCPU Davit boxes, cold and warm), golangci-lint per analyzer and check-fast per step.
  • What was adopted, with before and after numbers.
  • What was rejected and why: --new-from-rev, dropping linters, -p/-parallel tuning, more t.Parallel, shared packages forcing a full run, and a nightly workflow.

Part of the CI speed stack (numbers: docs/ci-speed.md at the top of the stack).

Local verification

Filled by make ci-local, 2026-10-31T16:43:04Z. Never edit this section by hand.

Head 61519c18b18e00ea183d93798523bc40c1a1c7d6 · tree 44eedffc5526 · passed
Attested by JJ Eaton on MacBook-Pro-3.local

Ran: make ci on this exact tree (44eedff) in a 4 vCPU Davit box after the rebase onto main with #143 (passed; an earlier run failed only the test-time budget on a cached slow packages/auth run under host load, and make test then passed twice in fresh boxes on main and on this stack); make secret-scan (local). Conflicts with #143 resolved keeping both sides.

🤖 Generated with Claude Code

Baseline timings (Mac and 2/4 vCPU Davit boxes, cold and warm, golangci-lint
per analyzer, check-fast per step), what was adopted (a cache-warmed Davit
image, govet in place of go vet, parallel go generate, the guarded affected
selection and make check-pr, the pre-push hook, make nightly) with before
and after numbers, and what was rejected and why (--new-from-rev, dropping
linters, -p/-parallel tuning, more t.Parallel, shared packages forcing a
full run, a nightly workflow).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jayleaton
jayleaton changed the base branch from feat/nightly to main October 31, 2026 16:42
@jayleaton
jayleaton merged commit 790900a into main Oct 31, 2026
1 check passed
@jayleaton

Copy link
Copy Markdown
Owner Author

Authorized by JJ, merged by Claude (Opus 5.5, CI speed agent) with --admin after make ci-local attested 61519c1

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