Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/build: missing LUCI TryBot coverage for x/telemetry #65549

Closed
bcmills opened this issue Feb 6, 2024 · 18 comments
Closed

x/build: missing LUCI TryBot coverage for x/telemetry #65549

bcmills opened this issue Feb 6, 2024 · 18 comments
Assignees
Labels
Builders x/build issues (builders, bots, dashboards) NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Milestone

Comments

@bcmills
Copy link
Contributor

bcmills commented Feb 6, 2024

Go version

9819d82

Output of go env in your module/workspace:

N/A

What did you do?

See #65544.

What did you see happen?

https://go.dev/cl/560462 had a TryBot+1 vote from LUCI, but introduced deterministic failures on two first class ports (linux/386 and windows/386).

What did you expect to see?

I expect all user-facing x/ repos to have TryBots configured for at least all of the first class ports that have scalable builders.

@gopherbot gopherbot added the Builders x/build issues (builders, bots, dashboards) label Feb 6, 2024
@gopherbot gopherbot added this to the Unreleased milestone Feb 6, 2024
@findleyr
Copy link
Contributor

findleyr commented Feb 7, 2024

If possible, I think x/telemetry should also have a number of misc-compile builders for platforms where it may be dormant but still needs to compile. Is that something we can easily add in LUCI?

@findleyr
Copy link
Contributor

findleyr commented Feb 7, 2024

We discussed this in the telemetry meeting, and came to a consensus that x/telemetry should have essentially the same set of builders as the Go repo.

No need to downgrade any platforms to misc-compile: if TryBots run on the Go repo, it should run on x/telemetry.

@mknyszek
Copy link
Contributor

mknyszek commented Feb 7, 2024

I think both the request in this issue and the follow-on request to run all Go repo presubmit bots should be very straightforward to do.

@findleyr
Copy link
Contributor

findleyr commented Feb 7, 2024

CC @golang/telemetry

@mknyszek
Copy link
Contributor

mknyszek commented Feb 8, 2024

Amusingly, this required changing a single line of configuration. :)

@gopherbot
Copy link

Change https://go.dev/cl/562536 mentions this issue: main.star: mark x/telemetry as a PT.CORE repository

@hyangah
Copy link
Contributor

hyangah commented Feb 8, 2024

Question - does this make x/telemetry/godev module run in all core platforms?

@mknyszek
Copy link
Contributor

mknyszek commented Feb 8, 2024

I believe so. If you're asking because you'd like to opt-out that module, we don't really have an easy way to opt-out certain modules from certain platforms yet, but it also doesn't sound too hard to build. It would just take longer to get there.

@findleyr
Copy link
Contributor

findleyr commented Feb 8, 2024

it also doesn't sound too hard to build. It would just take longer to get there.

We can skip tests manually for now, but it would be really useful if there were an easy way to customize builders per module. For example, x/tools/gopls does not need to run on Android, and x/pkgsite does not need to run on anything but linux (but x/pkgsite/cmd/pkgsite will need to run on everything).

@dr2chase dr2chase added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Feb 8, 2024
@mknyszek
Copy link
Contributor

mknyszek commented Feb 8, 2024

Here's the gist of the extra work required.

The build "script" (golangbuild) controls module discovery and test execution on those modules. Builder configurations are repo-level, so the "script" needs to be told what to do. Perhaps the repo is by default tested on all platforms, and all modules get tested on all platforms by default. However, in the builder configuration, you can list modules as well as a platform allowlist.

Concrete implementation steps:

  1. Add a new property to golangbuild's input properties that is a mapping from module name to a list of platforms.
  2. During golangbuild's module discovery, if a module with a matching name is discovered, we check the current platform against the allowlist to decide whether to execute the tests.
  3. Our configuration needs to be extended define this submodule mapping on a per-repo basis. That mapping is then copied to the subrepo builders' properties.

Leaving this for either a release rotation member or if someone from the tools team wants to take a stab at it, since I don't think I'll have time to work on this until at least after the migration.

Happy to help guide anyone through the process and share knowledge. This would be a decent starter project for getting more familiar with some of the LUCI specifics.

@gopherbot
Copy link

Change https://go.dev/cl/563358 mentions this issue: godev/cmd/telemetrygodev: skip tests in unintended environments

@gopherbot
Copy link

Change https://go.dev/cl/563359 mentions this issue: counter: add illumos to the unsupported platform list

gopherbot pushed a commit to golang/telemetry that referenced this issue Feb 13, 2024
golang.org/x/telemetry/godev is a module that hosts code for the
telemetry.go.dev service. This module is not intended to work
standalone, but assumes the whole telemetry repo is cloned.
Running this service on platforms like android, ios, etc is not
our focus either. The production service is likely running on linux,
but we also want to be able to test, develop on darwin or windows.

* Skip platforms that are not likely used by x/telemetry/godev
contributors. e.g.  android, ios, ...
* Skip if 'go' is not available.
* Run go list to find x/telemetry module. When go list runs from
a directory under x/telemetry/godev, the command will return the
replaced directory path, which is also the repo root.

For golang/go#65549
For golang/go#65258

Change-Id: I88f5f51bd0f2c355975127e1fa9559394e307f97
Reviewed-on: https://go-review.googlesource.com/c/telemetry/+/563358
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Robert Findley <rfindley@google.com>
Auto-Submit: Hyang-Ah Hana Kim <hyangah@gmail.com>
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
gopherbot pushed a commit to golang/telemetry that referenced this issue Feb 13, 2024
For golang/go#65544
For golang/go#65549

Change-Id: Icb8d598e419e6b34c184642a851a699be8b76382
Reviewed-on: https://go-review.googlesource.com/c/telemetry/+/563359
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Hyang-Ah Hana Kim <hyangah@gmail.com>
Reviewed-by: Robert Findley <rfindley@google.com>
gopherbot pushed a commit to golang/build that referenced this issue Feb 14, 2024
Issue golang/go#65549 requests enabled linux-386 and windows-386
builders in presubmit for x/telemetry, and later also requests
lining up presubmit builders with the Go repository in general.

This CL marks x/telemtry as a 'core' repository, which has exactly
these semantics.

Fixes golang/go#65549.

Change-Id: I9fb920e14f52da095c5b1dde0f53254b4e2c0dc9
Reviewed-on: https://go-review.googlesource.com/c/build/+/562536
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Bypass: Robert Findley <rfindley@google.com>
TryBot-Bypass: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
@gopherbot
Copy link

Change https://go.dev/cl/564395 mentions this issue: main.star: regenerate, and update README

gopherbot pushed a commit to golang/build that referenced this issue Feb 15, 2024
There've been a few minor configuration changes in between CL 562536
being authored and submitted. Regenerate so that their effects apply
in the recently added builders.

Also add a note to README to mention how quickly after CL submission
configuration changes should be expected to take effect, and link to
a status page.

For golang/go#65549.

Change-Id: If067fe3a25ee79be186840d18f1f3441beb55b33
Reviewed-on: https://go-review.googlesource.com/c/build/+/564395
TryBot-Bypass: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
@findleyr
Copy link
Contributor

It doesn't look like https://go.dev/cl/562536 affected the set of LUCI trybots. Am I misunderstanding something?

@gopherbot
Copy link

Change https://go.dev/cl/564620 mentions this issue: counter: replace build tags with telemetry.DisabledOnPlatform

@hyangah
Copy link
Contributor

hyangah commented Feb 20, 2024

@mknyszek I also observed only a small number of trybots were running for recent telemetry cls.
For example, https://go-review.git.corp.google.com/c/telemetry/+/564597 triggered 11 trybots only. Is it expected?

gopherbot pushed a commit to golang/telemetry that referenced this issue Feb 20, 2024
For golang/go#65549

Change-Id: Ibdec1f108cfecd9276ff60b85f155c0e89363474
Reviewed-on: https://go-review.googlesource.com/c/telemetry/+/564620
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Peter Weinberger <pjw@google.com>
@gopherbot
Copy link

Change https://go.dev/cl/568197 mentions this issue: main.star: expand presubmit with go1.20/1.21 for x repos

gopherbot pushed a commit to golang/build that referenced this issue Feb 29, 2024
For go1.21 and go1.22, x repo presubmit runs only on
linux-amd64 builder type.

For golang/go#65549
For golang/go#17525

Change-Id: I357d679e73d6056f4fe5f2749ad98ed6998dfc50
Reviewed-on: https://go-review.googlesource.com/c/build/+/568197
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
@hyangah
Copy link
Contributor

hyangah commented Feb 29, 2024

Expanded the set a bit more (linux/386, darwin/amd64, windows/amd64 for released go). If some of those builders are overloaded, it's possible to remove them though. I am closing this for now. Thanks for the help!

@hyangah hyangah closed this as completed Feb 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Builders x/build issues (builders, bots, dashboards) NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
Projects
Status: Done
Development

No branches or pull requests

6 participants