• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 28422333258 / 9
93%
main: 93%

Build:
DEFAULT BRANCH: main
Ran 30 Jun 2026 05:38AM UTC
Files 1241
Run time 31s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

30 Jun 2026 05:23AM UTC coverage: 58.847% (+0.03%) from 58.815%
28422333258.9

push

github

web-flow
Pre-compile the Go standard library once per toolchain config instead of per-package (#23422)

Disclaimer: Like my previous Go PR, I'm still not primarily a golang
developer. However, the fact that Golang doesn't work properly in Pants
has been the bane of my existence for like 2 years now. The moment that
Mythos/Fable dropped I immediately had it dig deeply into whether the
whole road to proper-golang-in-pants could be opened up. So this is all
by Claude Code with Fable 5 (xhigh), with consults to GPT 5.5 (xhigh)
and Gemini 3.1 Pro. I've had it check and recheck, I ran many different
roles over it, and I had it explain and re-explain it to me, and then I
checked myself.

So, as much as I dislike AI slop and am worried about AI PR overload,
I've done my very best to avoid exactly that while still using AI. I
hope we can get this road unblocked.

The rest is Fable talking:

---

Since Go 1.20, Go distributions no longer ship pre-compiled standard
library archives, so Pants compiles every needed stdlib package from
source: roughly 200 compile/symabis/assembly/pack build actions on a
cold build, repeated for every build-options variant. This PR replaces
all of that with a single cached `GODEBUG=installgoroot=all go install
-trimpath -pkgdir <sandbox-relative> std` action per `(Go version, GOOS,
GOARCH, cgo_enabled)` configuration (~6 s, ~175 MB, ~355 archives), the
same architecture Bazel's rules_go uses.

Design: stdlib build requests on compatible configurations become "slim"
(no sources, no dependency recursion, no embed-config processes), and
`build_go_package` short-circuits them to the harvested archive. Each
archive enters the result as its own digest handle in
`transitive_pkg_archives`, so compile sandboxes still contain only
direct deps' archives and the closure is merged exactly once at link,
which preserves the invariant from #23421. The transitive closure comes
from a new `deps` field parsed from `go list -json std`. cgo is a
cache-key dimens... (continued)

38392 of 65240 relevant lines covered (58.85%)

0.59 hits per line

Source Files on job test_python_linux_x86_64_4/10 - 28422333258.9
  • Tree
  • List 1241
  • Changed 9
  • Source Changed 9
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 28422333258
  • 9dbe5253 on github
  • Prev Job for on main (#28411659577.8)
  • Next Job for on main (#28489169743.5)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc