Skip to content

antithesis-setup: require full Go instrumentation and CGO#151

Merged
carlsverre merged 1 commit into
mainfrom
setup-go-full-instrumentation
May 21, 2026
Merged

antithesis-setup: require full Go instrumentation and CGO#151
carlsverre merged 1 commit into
mainfrom
setup-go-full-instrumentation

Conversation

@carlsverre

@carlsverre carlsverre commented May 21, 2026

Copy link
Copy Markdown
Member

Tightens antithesis-setup/references/language/go.md so the agent always does full Go instrumentation, never disables CGO, and applies the same flow to Go workload binaries — not just the SUT.

A new CGO is required section forbids CGO_ENABLED=0 anywhere in the build path (Dockerfile ENV, go build, Makefiles, scripts, CI), even when the upstream project sets it for cross-compilation or static binaries. It requires setting CGO_ENABLED=1 explicitly so it's not inherited from a parent image, and steers toward glibc base images over golang:1.x-alpine to avoid musl-related instrumentation issues.

The -assert_only option is removed. Default mode (coverage + cataloging) is now the only documented path, with a one-line rationale that coverage instrumentation is what lets Antithesis steer the search.

A new Instrument the workload too, not just the SUT section addresses #51 directly: if the workload is Go and uses the SDK, it MUST be run through antithesis-go-instrumentor with the same flow, or its assertions silently never appear in the triage report. The agent is also told to verify post-run that the expected assertions appear — if the report shows fewer than were defined, the workload almost certainly wasn't instrumented.

Closes #51.

Tightens the Go language reference so the agent:

- Treats CGO_ENABLED=1 as required and never disables it (including
  inherited settings from Dockerfile ENV, build scripts, or CI).
- Always runs antithesis-go-instrumentor in its default mode for both
  coverage and cataloging; removes -assert_only as an option.
- Instruments Go workload binaries with the same flow as the SUT and
  verifies post-run that workload assertions appear in the report.

Addresses the #51 failure mode where a Go workload's assertions silently
never made it into the triage report.

Co-Authored-By: Claude <noreply@anthropic.com>
@carlsverre carlsverre added the changelog - non-breaking This PR includes a non-breaking customer facing change label May 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Skill Context Report

Partial counts the skill's SKILL.md only. Full counts SKILL.md plus any files under references/.
Each cell is base -> head (delta, percent change) for the pull request.
Only skills changed in the pull request are included.

Skill Partial Full
antithesis-setup 2116 -> 2116 (0, 0.0%) 8831 -> 9142 (+311, +3.5%)

@carlsverre carlsverre merged commit 517ea4b into main May 21, 2026
2 checks passed
@carlsverre carlsverre deleted the setup-go-full-instrumentation branch May 21, 2026 03:08
github-actions Bot added a commit that referenced this pull request May 21, 2026
github-actions Bot added a commit that referenced this pull request May 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog - non-breaking This PR includes a non-breaking customer facing change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Claude missed cataloging the assertions in a Go workload.

1 participant