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

doc: improve release notes #64169

Closed
7 tasks done
jba opened this issue Nov 15, 2023 · 41 comments
Closed
7 tasks done

doc: improve release notes #64169

jba opened this issue Nov 15, 2023 · 41 comments
Assignees
Labels
Documentation early-in-cycle A change that should be done early in the 3 month dev cycle. NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@jba
Copy link
Contributor

jba commented Nov 15, 2023

This issue covers a set of improvements to the Go release notes:

  • Convert existing release notes from HTML to Markdown.
  • Change definition lists to level 4 headings.
  • Check that there is a valid release note fragment for each file in api/next.
  • Write a command that prints a report for incomplete release note fragments.
  • Have that command check that there is a release note for an issue if there is a commit that mentions the issue.
  • Write a command to merge release note fragments into a single file.
  • Handle standard library symbol references in release note fragments like the go/doc/comment package would.
@jba jba self-assigned this Nov 15, 2023
gopherbot pushed a commit to golang/website that referenced this issue Nov 15, 2023
Now that the notes are in Markdown, we don't need the html files.

For golang/go#64169.

Change-Id: I25f0b636ed4101c38966a2b7d97ec5e5e3cb827e
Reviewed-on: https://go-review.googlesource.com/c/website/+/541975
Run-TryBot: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
gopherbot pushed a commit to golang/website that referenced this issue Nov 15, 2023
Since 1.7, the "Minor changes to the library" second has used
a definition list to describe the changes to each package.

Use level 4 headings instead. This removes one feature
that is not CommonMark-compliant. It paves the way for
using a CommonMark-compliant Markdown parser and renderer
for both display and generation of release notes.

For golang/go#64169.

Change-Id: I2327499971a2db4eee06ef35e3e41cd0d2f953b3
Reviewed-on: https://go-review.googlesource.com/c/website/+/541976
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
@gopherbot
Copy link

Change https://go.dev/cl/541975 mentions this issue: _content/doc: remove html release notes

@gopherbot
Copy link

Change https://go.dev/cl/541976 mentions this issue: _content/doc: change relnote definition lists to headings

@gopherbot
Copy link

Change https://go.dev/cl/542495 mentions this issue: relnote: a package for working with release notes

@gopherbot
Copy link

Change https://go.dev/cl/542515 mentions this issue: doc/next: directory for release note fragments

@gopherbot
Copy link

Change https://go.dev/cl/542516 mentions this issue: cmd/relnote,doc/next: add release note check

@gopherbot
Copy link

Change https://go.dev/cl/542615 mentions this issue: Add paragraph to 1.8 relnotes.

gopherbot pushed a commit to golang/website that referenced this issue Nov 15, 2023
For golang/go#64169.

Change-Id: Iac58322c3bdd20a86e5492e5cdbb8e92182962a6
Reviewed-on: https://go-review.googlesource.com/c/website/+/542615
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
@seankhliao seankhliao changed the title improve release notes doc: improve release notes Nov 15, 2023
gopherbot pushed a commit to golang/build that referenced this issue Nov 17, 2023
This CL starts a package that will be used in at least two places
as part of the current improvements to the release notes process.

- This repo will use it to find incomplete note fragments and
  also to merge them into a final document.

- The main repo will use it in tests that validate the fragments.

It has few dependencies because it will be vendored into the main repo.
Aside from the standard library, it depends only on rsc.io/markdown,
which itself depends only on some packages in x/tools and x/text.

For golang/go#64169.

Change-Id: Ifa558834f491bc6a249cbb540574fdb9009e9f8d
Reviewed-on: https://go-review.googlesource.com/c/build/+/542495
Run-TryBot: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
@dmitshur dmitshur added this to the Go1.23 milestone Jan 15, 2024
@dmitshur dmitshur added NeedsFix The path to resolution is known, but the work has not been done. early-in-cycle A change that should be done early in the 3 month dev cycle. labels Jan 15, 2024
@gopherbot
Copy link

Change https://go.dev/cl/556455 mentions this issue: dashboard: disable x/build testing with Go 1.20

@gopherbot
Copy link

Change https://go.dev/cl/556359 mentions this issue: all: use Go 1.21 for building services

gopherbot pushed a commit to golang/build that referenced this issue Jan 17, 2024
The x/build repo is permitted to be outside of the Go support policy
and has dropped support for Go 1.20 just now in CL 556355. We need to
backport that from LUCI to the old infrastructure while the migration
is underway and both dashboards are being supported.

Updating this in the old infra is a bit more involved, but this code
will be going away after the migration so I'm not trying to refactor.

For golang/go#64169.

Change-Id: Ic5079e38dd13b5bfb56d4d430efb5c3919918d47
Reviewed-on: https://go-review.googlesource.com/c/build/+/556455
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
gopherbot pushed a commit to golang/build that referenced this issue Jan 17, 2024
Use a newer supported version.

For golang/go#64169.

Change-Id: Ice8fea55951bf1615a04aca24a870556c281877a
Reviewed-on: https://go-review.googlesource.com/c/build/+/556359
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Carlos Amedee <carlos@golang.org>
@gopherbot
Copy link

Change https://go.dev/cl/556163 mentions this issue: cmd/relnote: add generate subcommand

@gopherbot
Copy link

Change https://go.dev/cl/556162 mentions this issue: relnote: add headings for stdlib packages

@gopherbot
Copy link

Change https://go.dev/cl/556161 mentions this issue: relnote: merge link references

@gopherbot
Copy link

Change https://go.dev/cl/556160 mentions this issue: relnote: remove empty sections when merging

@gopherbot
Copy link

Change https://go.dev/cl/556159 mentions this issue: relnote: add Merge function

@gopherbot
Copy link

Change https://go.dev/cl/556164 mentions this issue: relnote: simplify CheckFragment

gopherbot pushed a commit to golang/build that referenced this issue Jan 18, 2024
Add a function that merges a tree of markdown files into a single file.

For golang/go#64169.

Change-Id: Ie3200d6cbe0e65f9c878de92c2d812b0ffbccc83
Reviewed-on: https://go-review.googlesource.com/c/build/+/556159
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
@gopherbot
Copy link

Change https://go.dev/cl/556655 mentions this issue: relnote: move merge tests to subdirectory

gopherbot pushed a commit to golang/build that referenced this issue Jan 18, 2024
Remove sections that have no content from the merged document.

For golang/go#64169.

Change-Id: Ic78b1e2dc46d14dcf885cef8ce0e7dd4a257298a
Reviewed-on: https://go-review.googlesource.com/c/build/+/556160
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
@gopherbot
Copy link

Change https://go.dev/cl/564134 mentions this issue: dashboard: remove x/build special case for Go 1.20

gopherbot pushed a commit to golang/build that referenced this issue Feb 14, 2024
CL 556455 incurred some complexity to opt x/build out of testing with
Go 1.20 sooner than it would've happened automatically. This complexity
is no longer needed since Go 1.20 is fully unsupported now. Remove it.

Updates golang/go#64169.

Change-Id: I99128b9294c50439ed95a91b968a65f18d8fec03
Reviewed-on: https://go-review.googlesource.com/c/build/+/564134
Commit-Queue: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
Auto-Submit: Dmitri Shuralyov <dmitshur@golang.org>
@gopherbot
Copy link

Change https://go.dev/cl/564396 mentions this issue: relnote: account for build in API file

gopherbot pushed a commit to golang/build that referenced this issue Feb 15, 2024
Most lines in api/next/NNN.txt files look like

    pkg PACKAGE, FEATURE #ISSUE

but there can also be build information, like

    pkg PACKAGE (windows-386), FEATURE #ISSUE

Fix the parser to account for that.

For golang/go#64169.

Change-Id: I7b82084f1a9589d162aa7f4fc8abbe5b0199b4d4
Reviewed-on: https://go-review.googlesource.com/c/build/+/564396
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
ezz-no pushed a commit to ezz-no/go-ezzno that referenced this issue Feb 18, 2024
This is the first CL in a sequence that adds support
for generating release notes from fragments.

The actual generator will live elsewhere, in x/build.
This repo will hold the content and some validity
checks.

For golang#64169.

Change-Id: Iaa8d9ad96393ab9433170b3cfa47334837f3f691
Reviewed-on: https://go-review.googlesource.com/c/go/+/542515
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
ezz-no pushed a commit to ezz-no/go-ezzno that referenced this issue Feb 18, 2024
Add files to doc/initial that set up the overall structure
of the release notes document.

For golang#64169.

Change-Id: Ifbf330e554e1fa20d47c72cc309d5cd26048a323
Reviewed-on: https://go-review.googlesource.com/c/go/+/556817
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
ezz-no pushed a commit to ezz-no/go-ezzno that referenced this issue Feb 18, 2024
Add a test that every file in api/next has corresponding
release note fragments.

Vendor in golang.org/x/build/relnote, which brings along some other
things.

Modify dist/test.go to configure the test to run on some trybots.

For golang#64169.

Change-Id: If87d11350ea6b2605bc3ab31c491fa28f1d6ee7d
Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest
Reviewed-on: https://go-review.googlesource.com/c/go/+/556995
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
ezz-no pushed a commit to ezz-no/go-ezzno that referenced this issue Feb 18, 2024
- State that new markdown files belong in doc/next.
- Give hints on correct markdown syntax.

For golang#64169

Change-Id: Ied70e7ac443530c910eea2992ca6e303bbc10499
Reviewed-on: https://go-review.googlesource.com/c/go/+/558855
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
ezz-no pushed a commit to ezz-no/go-ezzno that referenced this issue Feb 18, 2024
For golang#64169.

Change-Id: I0fc6d6a041ad48957f4aecd18b85c9098fc9b403
Reviewed-on: https://go-review.googlesource.com/c/go/+/559755
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
ezz-no pushed a commit to ezz-no/go-ezzno that referenced this issue Feb 18, 2024
Fix the check for release note files that correspond to API files
to look in the right directory, doc/next/*stdlib/*minor. Previously
the test looked in doc/next.

Improve the error messages when the test fails to explain the problem
better and refer to further documentation.

(These changes are actually in the x/build repo; this CL vendors
the latest version.)

Lastly, re-enable the check.

For golang#64169.

Change-Id: I8bba845e9bd12afbe269ce42d6d4b17b1e3c0252
Reviewed-on: https://go-review.googlesource.com/c/go/+/560516
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>
@gopherbot
Copy link

Change https://go.dev/cl/566455 mentions this issue: cmd: don't require build tags in relnote pathnames

gopherbot pushed a commit that referenced this issue Feb 23, 2024
Due to a bug in golang.org/x/build/relnote, API features affecting
specific builds would need to include those build tags in relnote
pathnames.

This CL vendors in the fixed golang.org/x/build. (That caused other
modules to be vendored in as well.)

It also renames the syscall relnote file to remove the build tags
from its pathname.

For #64169.

Change-Id: Iaf6cd9099df1156f4e20c63d519a862ea19a7a3b
Reviewed-on: https://go-review.googlesource.com/c/go/+/566455
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
@gopherbot
Copy link

Change https://go.dev/cl/577255 mentions this issue: cmd/relnote: improve error message

@gopherbot
Copy link

Change https://go.dev/cl/577295 mentions this issue: relnote: autolink text is code

@gopherbot
Copy link

Change https://go.dev/cl/577260 mentions this issue: relnote: handle symbol links with backticks

@gopherbot
Copy link

Change https://go.dev/cl/577299 mentions this issue: relnote: support symbol links inside emphasized text

@gopherbot
Copy link

Change https://go.dev/cl/577300 mentions this issue: relnote: use code elements for package headings

gopherbot pushed a commit to golang/build that referenced this issue Apr 8, 2024
When GOROOT/doc/next is missing, print the path instead of just '.'.

For golang/go#64169.

Change-Id: I921301026b488f169ba13cc531c40b448011ed21
Reviewed-on: https://go-review.googlesource.com/c/build/+/577255
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
gopherbot pushed a commit to golang/build that referenced this issue Apr 8, 2024
Autolinks arise from symbols in the release note that are enclosed in
square brackets, like

   See [bytes.Buffer] for details.

The text in square brackets becomes a link to the documentation for
that symbol.

This CL renders that text as code instead of plain text. That is,
before this CL, the above line would be converted to

    See [bytes.Buffer](/pkg/bytes#Buffer) for details.

but this CL adds backticks:

    See [`bytes.Buffer`](/pkg/bytes#Buffer) for details.

For golang/go#64169.

Change-Id: I30f203cf05de535cb8bb200d89912be4c296f34e
Reviewed-on: https://go-review.googlesource.com/c/build/+/577295
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
gopherbot pushed a commit to golang/build that referenced this issue Apr 9, 2024
Support symbol links in release notes that already are written
as a markdown code element.

For example,

   This release note mentions [`byte.Buffer`].

Previously we handled this properly only if the backticks were omitted.

The parsed markdown for this case is not a single Plain element, which
is what the original code was designed for, but a Plain, then a Code,
then another Plain. It was simpler overall to redesign the algorithm,
first preprocessing the input to isolate the square brackets, then
looking for triples of '[', Plain-or-Code, ']'.

For golang/go#64169.

Change-Id: Ia3036cac2d851efb43c625ccb58831a6fe2c00b6
Reviewed-on: https://go-review.googlesource.com/c/build/+/577260
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
gopherbot pushed a commit to golang/build that referenced this issue Apr 9, 2024
Convert things like *[Buffer]* to links.

Previously we were dropping the emphasis nodes.

For golang/go#64169.

Change-Id: Ic10030e2bb2e22a5f303a5cac89f03f559cac91a
Reviewed-on: https://go-review.googlesource.com/c/build/+/577299
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
gopherbot pushed a commit to golang/build that referenced this issue Apr 9, 2024
The headings for the "minor changes" section are package names,
so render them as code elements.

For golang/go#64169.

Change-Id: Ib2864dd295b11e7a32b7903e06dd6bf721915caf
Reviewed-on: https://go-review.googlesource.com/c/build/+/577300
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
@gopherbot
Copy link

Change https://go.dev/cl/577775 mentions this issue: _content/doc: convert go1.22.html to markdown

@gopherbot
Copy link

Change https://go.dev/cl/577658 mentions this issue: cmd/relnote: remove initial blank line from output

@gopherbot
Copy link

Change https://go.dev/cl/577915 mentions this issue: doc/README.md: note simpler symbol links

gopherbot pushed a commit to golang/build that referenced this issue Apr 10, 2024
The website code requires that the front matter
of a file start on the first line; there cannot be an initial
blank line. So remove it.

For golang/go#64169.

Change-Id: If268d23e15e19a125bab6ecf44c7c12ae728801d
Reviewed-on: https://go-review.googlesource.com/c/build/+/577658
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
gopherbot pushed a commit to golang/website that referenced this issue Apr 10, 2024
Convert the last release notes file from html to markdown.

See https://go.dev/cl/539755 for context.

The diffs were done by eye, because the screen grab for the local
server included the cookie warning, making the screentest diffs useless.

Along the way, fixed a bug: the html inadvertently used backticks
for code in one place.

For golang/go#64169.

Change-Id: I028982ad92a607974158a18496a1c3ac0a14d64a
Reviewed-on: https://go-review.googlesource.com/c/website/+/577775
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>
@jba jba closed this as completed Apr 10, 2024
gopherbot pushed a commit that referenced this issue Apr 10, 2024
Document that links to symbols in the standard library can be
written as "[foo]", without the actual link.

For #64169.

Change-Id: I9d8a33e85df70037320a169d55a2bb4a8a981ebf
Reviewed-on: https://go-review.googlesource.com/c/go/+/577915
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Documentation early-in-cycle A change that should be done early in the 3 month dev cycle. NeedsFix The path to resolution is known, but the work has not been done.
Projects
None yet
Development

No branches or pull requests

3 participants