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: productionize coverage that golangbuild provides for main + golang.org/x repos #60666

Closed
dmitshur opened this issue Jun 7, 2023 · 2 comments
Assignees
Labels
Builders x/build issues (builders, bots, dashboards) NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@dmitshur
Copy link
Contributor

dmitshur commented Jun 7, 2023

golangbuild, our LUCI Executable ("luciexe") command intentionally limited scope during the LUCI prototype stage: it left out some known test coverage that we wish to have and is provided by the current build system (plus some more we'd like to add, such as #34352), to be done after the prototype.

This is the tracking issue to address the remaining gaps in test coverage and get it to a point where it's viable to switch over to relying on it as the canonical source of Go project testing. This applies for the main Go repo and the golang.org/x repos, and most of the remaining work is in the latter category (e.g., running tests for nested modules, etc.).

CC @golang/release, @mknyszek.

@dmitshur dmitshur added Builders x/build issues (builders, bots, dashboards) NeedsFix The path to resolution is known, but the work has not been done. labels Jun 7, 2023
@dmitshur dmitshur added this to the Unreleased milestone Jun 7, 2023
@dmitshur dmitshur self-assigned this Jun 7, 2023
@dmitshur dmitshur changed the title x/build: productionize test coverage for all Go repos x/build: productionize golangbuild's test coverage for all Go repos Jun 7, 2023
@dmitshur dmitshur changed the title x/build: productionize golangbuild's test coverage for all Go repos x/build: productionize coverage that golangbuild provides for main + golang.org/x repos Jun 13, 2023
@gopherbot
Copy link

Change https://go.dev/cl/508276 mentions this issue: main.star: turn on no-network check in x/build

gopherbot pushed a commit to golang/build that referenced this issue Jul 7, 2023
It worked in https://ci.chromium.org/b/8776284364679766577.
Turn it on in x/build as a first step in a gradual rollout.

For golang/go#60666.

Change-Id: I00296436c52faf0f4b6738bbd7cd035a8a37ce7c
Reviewed-on: https://go-review.googlesource.com/c/build/+/508276
Reviewed-by: Heschi Kreinick <heschi@google.com>
TryBot-Bypass: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
@dmitshur
Copy link
Contributor Author

dmitshur commented Jul 25, 2023

By now I think all of the shortcuts we've taken during the prototyping stage that have reduced test coverage have been completed, such that we can rely on test coverage provided by golangbuild not to drop compared to what we have today with x/build's cmd/coordinator.

There are some remaining nice-to-haves (such as test result streaming, keep-going in main repo), finishing checks (e.g., no-network check still needs to be turned up for main repo), some adjacent issues (such as #37827 that are more relevant to builder configuration policy), and some lower-priority exotic edge cases (empty repo, top-level module not having go.mod file, etc.). They can all be better tracked in other individual issues, so closing this as done.

Done:

  • test all Go packages in nested modules, not just top-level one
  • keep going for nested modules in golang.org/x repos (but not yet main Go repo)
  • run subrepo tests from outside their repositories (equivalent to x/build/cmd/coordinator's go.dev/issue/34352)
  • switch to "./..." import path pattern for testing packages in a module (equivalent to x/build/cmd/coordinator's go.dev/issue/51455)
  • don't use predictable base name for module checkout dir (e.g., see go.dev/cl/506297)
  • scale x-repo tests by GO_TEST_TIMEOUT_SCALE (equivalent to x/build/cmd/coordinator's go.dev/issue/56968) (intentionally decided not to do it yet; will reconsider in the future when running into a concrete need)
    • Update on 2024-02-21: out of band discussion and issue 65845 demonstrate that LUCI builders need this too

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) NeedsFix The path to resolution is known, but the work has not been done.
Projects
Archived in project
Development

No branches or pull requests

2 participants