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/cmd/relui: add workflows for some remaining manual recurring Go major release cycle tasks #70655

Open
dmitshur opened this issue Dec 3, 2024 · 8 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 Dec 3, 2024

In addition to workflows for all of Go release types, relui holds a few workflows for miscellaneous recurring tasks that come up in the release cycle (go.dev/s/release) such as pinging early-in-cycle issues and removing wait-release hashtags after tree reopening.

This is a tracking issue for relui workflows for a few more recurring tasks that are a good fit for automation, such as:

  • applying wait-release hashtags to CLs where it can be determined to apply
  • promoting api/next to api/go1.n.txt and filing an API audit issue
  • merging release note fragments with relnote generate (newly applicable after doc: improve release notes  #64169), atomically moving the result to x/website

CC @golang/release.

@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 Dec 3, 2024
@dmitshur dmitshur added this to the Unreleased milestone Dec 3, 2024
@dmitshur dmitshur self-assigned this Dec 3, 2024
@dmitshur dmitshur moved this to In Progress in Go Release Dec 3, 2024
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/633578 mentions this issue: all: use consistent style for owner, repo parameters [generated]

@gopherbot
Copy link
Contributor

Change https://go.dev/cl/633579 mentions this issue: internal/task: move "unwait" task to ReleaseCycleTasks, add "apply wait"

@gopherbot
Copy link
Contributor

Change https://go.dev/cl/633581 mentions this issue: cmd/relui: add a "between freeze start and RC 1" workflow

gopherbot pushed a commit to golang/build that referenced this issue Dec 4, 2024
Many instances already use the shorter "owner, repo string" form.
Fix a few that didn't. This will get that diff out of future CLs.

For golang/go#70655.

[git-generate]
find . -type f -name '*.go' -exec sed -i '' 's/owner string, repo string/owner, repo string/' {} +

Change-Id: I3ffb0d98765ee016e93bf8470792af852fa65b97
Reviewed-on: https://go-review.googlesource.com/c/build/+/633578
Reviewed-by: Michael Knyszek <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
Auto-Submit: Dmitri Shuralyov <[email protected]>
LUCI-TryBot-Result: Go LUCI <[email protected]>
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/633755 mentions this issue: internal/task: add detection for repeated task runs

@gopherbot
Copy link
Contributor

Change https://go.dev/cl/634035 mentions this issue: internal/task: check for open documentation-only CLs before moving them

gopherbot pushed a commit to golang/build that referenced this issue Dec 5, 2024
The new "apply wait" task is analogous to the existing "unwait" one,
and was tested out during the Go 1.24 freeze two weeks ago.

Move both of them into a new release cycle-focused struct where more
release-cycle logic will be added next.

For golang/go#70655.

Change-Id: Id8443f6d3ca366c27b15e0e8e4ef3aa1901d32d2
Reviewed-on: https://go-review.googlesource.com/c/build/+/633579
Reviewed-by: Michael Knyszek <[email protected]>
Auto-Submit: Dmitri Shuralyov <[email protected]>
LUCI-TryBot-Result: Go LUCI <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
gopherbot pushed a commit to golang/build that referenced this issue Dec 5, 2024
This workflow automates the following sequence that we need to do for
every major Go release cycle sometime between freeze start and RC 1:

• Update the API check.

	• cat api/next/*.txt | sort >api/go1.X.txt
	• git rm api/next/*.txt
	• Make sure it is correct: go test cmd/api -check (TryBots will also
	  catch errors, if any)
	• git add api/go1.X.txt
	• git commit -m "api: promote next to go1.X"
	• git codereview mail

• Generate the release notes draft (see "For the release team" in doc/README).

	• Use relnote generate to join fragments in doc/next, atomically
	  removing that directory in the main repo and adding the merged
	  result to x/website as _content/doc/go1.X.md.

• Start a tracking "api: audit for Go 1.X" issue.

• You're done.

Some of the individual tasks were tested out during the Go 1.23 cycle,
and they're now newly put together in a workflow. There are still some
enhancements that can be applied, and the release notes tracking issue
and Go1.N milestone need to be determined dynamically. But this should
give us a general sense of how the workflow works.

For golang/go#70655.

Change-Id: I5537857b8fa86f652f5058bc01534492587f5f57
Reviewed-on: https://go-review.googlesource.com/c/build/+/633581
Reviewed-by: Dmitri Shuralyov <[email protected]>
Reviewed-by: Michael Knyszek <[email protected]>
LUCI-TryBot-Result: Go LUCI <[email protected]>
Auto-Submit: Dmitri Shuralyov <[email protected]>
gopherbot pushed a commit to golang/build that referenced this issue Dec 5, 2024
The expected happy path is that the "between freeze start and RC 1"
workflow is run once to completion and not again. Still, it might
happen that we run it more than once, intentionally or accidentally.
Add logic, within reason, to detect repeated runs and avoid taking
inappropriate actions.

For golang/go#70655.

Change-Id: Ifb4bcc4e5aea0087784337fc3e84a90e54a1af18
Reviewed-on: https://go-review.googlesource.com/c/build/+/633755
Reviewed-by: Michael Knyszek <[email protected]>
Auto-Submit: Dmitri Shuralyov <[email protected]>
LUCI-TryBot-Result: Go LUCI <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
gopherbot pushed a commit to golang/build that referenced this issue Dec 5, 2024
If there are in-flight CLs for doc/next, it might make sense to finish
them before moving the release notes into x/website. This is something
the release coordinator may do manually, so add an automated task that
checks it, too. The intent is to help the release coordinator make the
best decision about when to proceed.

For golang/go#70655.

Change-Id: I8e4c5feedd8440b89966fdbad016138e9338f004
Reviewed-on: https://go-review.googlesource.com/c/build/+/634035
Reviewed-by: Michael Knyszek <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
LUCI-TryBot-Result: Go LUCI <[email protected]>
Auto-Submit: Dmitri Shuralyov <[email protected]>
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/634044 mentions this issue: internal/task: order doc/next removal after api/next promotion

gopherbot pushed a commit to golang/build that referenced this issue Dec 5, 2024
The TestCheckAPIFragments test in cmd/relnote looks at api/next content
and requires doc/next to have corresponding entries. So, make sure that
test is happy by starting to remove doc/next no sooner than api/next is
promoted.

We ran into this in CL 634057.

For golang/go#70655.

Change-Id: Ic4d23c00507f057daa0de2a38ef5e83150d6c0c4
Reviewed-on: https://go-review.googlesource.com/c/build/+/634044
Auto-Submit: Dmitri Shuralyov <[email protected]>
LUCI-TryBot-Result: Go LUCI <[email protected]>
Reviewed-by: Michael Knyszek <[email protected]>
Reviewed-by: Dmitri Shuralyov <[email protected]>
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/634355 mentions this issue: internal/task: synchronize FakeGerrit.changes access

gopherbot pushed a commit to golang/build that referenced this issue Dec 10, 2024
As https://ci.chromium.org/b/8729261949578211409 showed, MailDLCL and
CreateAutoSubmitVersionCL can call CreateAutoSubmitChange at the same
time. Guard map access with a mutex.

For golang/go#70655.
Fixes golang/go#70694.

Change-Id: Ib22d647458af18669a35acf5f45d6f0a1959eb81
Reviewed-on: https://go-review.googlesource.com/c/build/+/634355
Reviewed-by: Carlos Amedee <[email protected]>
LUCI-TryBot-Result: Go LUCI <[email protected]>
Reviewed-by: Michael Knyszek <[email protected]>
Auto-Submit: Dmitri Shuralyov <[email protected]>
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
Status: In Progress
Development

No branches or pull requests

3 participants