-
Notifications
You must be signed in to change notification settings - Fork 18.7k
Description
I plan to move the Release History page (along with two other pages in https://golang.org/doc/devel/ with pre-Go 1 history) from the main Go repository to the x/website repository. This is a subset of #29206, and this change will help improve the Go release process. The background section elaborates on the benefits.
This is the tracking issue. Relevant steps:
- reduce scope of cmd/godoc so it no longer displays website (x/tools/cmd/godoc: reduce scope to display documentation only, remove the rest of golang.org website #32011)
- add a copy of doc/devel/release.html (and two other files in doc/devel) to x/website (CL 210797)
- remove old instance of doc/devel/release.html (and the two other files) from Go repo (CL 210798)
- update
releasebotto not check doc/devel/release.html for new entry in Go repo as a blocking step (CL 210957)
Background
When making minor Go releases, the first time-intensive automated step in the release process is the releasebot -mode=prepare command. Before it can be started, the Release History page needs to be updated to include the two new minor versions. This involves creating, reviewing, and submitting 5 CLs in the main repository:
- CL A to add go1.N.x entry to doc/devel/release.html. Example: CL 154302.
- CL B to add go1.{N-1}.x entry to doc/devel/release.html. Example: CL 154303.
- Cherry-pick CL A to release-branch.go1.N. Example: CL 154306.
- Cherry-pick CL B to release-branch.go1.N. Example: CL 154304.
- Cherry-pick CL B to release-branch.go1.{N-1}. Example: CL 154305.
This is more expensive, time intensive, and error prone than it could be made today. There are two reasons why it was originally done this way:
- The golang.org website used to be available for running locally via the godoc command.
- The godoc command used to be provided as part of the Go release.
Point 1 is no longer true. We have changed the canonical website from x/tools/cmd/godoc to x/website/cmd/golangorg (see issues 29206 and 32011). godoc’s website content is becoming stale.
Point 2 is no longer true for Go 1.13 and newer. Go 1.12 was the last release that bundled the godoc command as part of the binary distribution.
After this change, the process of creating, reviewing, and submitting 5 CLs to the main repository before the release can be cut will be replaced with a single step that can be done asynchronously (e.g., while a long-running automated command is running):
- Create a CL to x/website to add go1.N.x and go1.N-1.x entries to x/website/content/static/doc/devel/release.html.
During the time that Go 1.12 is still supported (until Go 1.14 is released), we will also need to update its release branch because it has an old godoc bundled that displays the website.