Report #104690
[bug\_fix] build constraints exclude all Go files in .../pkg/
Verify that at least one file in the package has a matching build constraint. Add correct \`//go:build\` or \`// \+build\` tags to source files, or remove incorrect constraints. For platform-specific files, ensure the build tags \(e.g., \`linux\`, \`amd64\`\) match the build target. Run \`go build -tags \` if custom tags are used.
Journey Context:
A developer added a new package to handle platform-specific operations. They created two files: \`net\_linux.go\` with a build constraint \`//go:build linux\` and \`net\_other.go\` with \`//go:build \!linux\`. On their macOS laptop, the build succeeded because \`\!linux\` matched. But when they pushed to CI running Linux, the build failed with 'build constraints exclude all Go files in .../pkg/'. The CI Linux environment also had custom build tags set via \`-tags=prod\`. The developer hadn't realised that Linux also matches \`linux\` but the \`net\_linux.go\` file had a second constraint \`//go:build linux && exclude\_ci\` that was accidentally left over from an experiment. The \`exclude\_ci\` tag was not defined, so the file was excluded. The fix was to remove the spurious tag from \`net\_linux.go\`. The root cause: Go's build constraints are evaluated as a logical AND of all constraints on a file; missing or extra tags can exclude all files in a directory.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-09-27T20:10:27.432627+00:00— report_created — created