Go: x/build: support trybot/slowbot runs with GOEXPERIMENT=...

Created on 17 Nov 2020  ·  6Comments  ·  Source: golang/go

The slowbots feature (e.g. setting "TRY=") is extremely helpful for developers who want to get expanded test coverage for their CLs (particularly with the more obscure GOOS/GOARCH combos). This was a big help for the team when rewriting the linker this last year.

Another feature that would make developers lives easier would be to allow the setting of GOEXPERIMENT=... in a Gerrit reply or comment, and then have that setting picked up and used when doing the builder runs.

Two cases that come to mind immediately are field tracking, e.g. GOEXPERIMENT=fieldtrack, which seems to break on a semi-regular basis due to lack of regular testing, and GOEXPERIMENT=regabi. At the moment developers working on the register ABI project can do local testing by setting GOEXPERIMENT before running make.bash or all.bash, but there isn't an easy way for them to do testing over a wider set of builders.

Builders NeedsInvestigation

All 6 comments

Related: I've proposed #42681, which might help here.

In general, supported configurations should have builders running at every commit, not just when specific TryBots are requested: for example, linux-amd64-staticlockranking is its own builder.¹

Is there a reason that strategy cannot be employed for the other GOEXPERIMENT settings of interest?

¹ https://github.com/golang/build/blob/07fdb09614b7efbb9c1e733f5bf5e880cbac53d2/dashboard/builders.go#L1674-L1688

@bcmills having a builder per viable GOEXPERIMENT (as with staticlockranking) would work for me. Assuming that we decide to continue with GOEXPERIMENT in the first place.

One thing I should add: with some experiments it makes sense to have just a single builder (ex: field tracking, static lock ranking), but there could easily be experiments that we want to test on a wider set of architecture/OS combinations.

If there are configurations for which we want to run the standard tests to prevent regressions, those configurations should have builders even if we use some other mechanism instead of GOEXPERIMENT. (The Beyoncé Rule applies here.)

/cc @golang/release

Was this page helpful?
0 / 5 - 0 ratings