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/relnote: missed API changes #62376

Open
rsc opened this issue Aug 30, 2023 · 7 comments
Open

x/build/cmd/relnote: missed API changes #62376

rsc opened this issue Aug 30, 2023 · 7 comments
Assignees
Labels
Builders x/build issues (builders, bots, dashboards) FixPending Issues that have a fix which has not yet been reviewed or submitted. NeedsFix The path to resolution is known, but the work has not been done. release-blocker
Milestone

Comments

@rsc
Copy link
Contributor

rsc commented Aug 30, 2023

Somehow we missed the addition of binary.NativeEndian, which is listed in the API files, when preparing the Go 1.21 documentation. The existence in the API files marked with #57237 should have provoked relnote to insist on a reference to go.dev/issue/57237 in go1.21.html, but there is no such mention. #62349 tracks updating the docs. This issue is about fixing the process that led to the incomplete docs.

Just before the release we noticed that we'd forgotten to document the new runtime.PanicNilError, and again it seems like relnote should have noticed and caught that for us.

Marking a release blocker for Go 1.22 because we need to understand why we are dropping release notes on the floor. Either we are not using relnote often enough or correctly or there is a bug in it.

@rsc rsc added this to the Go1.22 milestone Aug 30, 2023
@gopherbot gopherbot added the Builders x/build issues (builders, bots, dashboards) label Aug 30, 2023
@dmitshur dmitshur added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Aug 30, 2023
@dmitshur dmitshur changed the title x/build/cmd/relnotes: missed API changes x/build/cmd/relnote: missed API changes Aug 30, 2023
@ianlancetaylor
Copy link
Contributor

Looking at cmd/relnote, I think it's this line:

				if issue := gh.Issue(num); issue != nil && !issue.ClosedAt.Before(cutoff) && hasLabel(issue, "Proposal-Accepted") {

Note `ClosedAt. The issue in question, #57237 was not closed. I think that it wasn't closed because there were two parts to it, one for encoding/binary and one for x/sys/cpu. The two independent CLs referenced it but didn't close it. I just closed it today as I think the work is complete.

@dmitshur
Copy link
Contributor

I spotted another source of possible inaccuracies in relnote while looking into this earlier: it uses a fairly crude heuristic for computing the start and end of each major Go release cycle, exactly 6 months apart (source). That heuristic is still fairly accurate, but the development cycle is now slightly expanded due to recent changes including a late freeze and early thaw, which may also contribute to some items being missed if they were at the very start or end of a cycle.

@jba Are you interested in taking this issue since you're working on #64169 now and this seems related?

@dmitshur dmitshur removed their assignment Nov 15, 2023
@jba jba self-assigned this Nov 15, 2023
@jba
Copy link
Contributor

jba commented Nov 15, 2023

Yes, I'll own it.

@gopherbot
Copy link

Change https://go.dev/cl/542855 mentions this issue: cmd/relnote: warn about unclosed proposals with CLs

gopherbot pushed a commit to golang/build that referenced this issue Jan 10, 2024
Occasionally a proposal is implemented, but the associated issue isn't
closed. To ensure we don't forget to write a release note in that
case, print a warning for all unclosed proposal issues that are
mentioned by at least one CL.

For golang/go#62376.

Change-Id: I3cca9065a3dd34af3c8bbbaf9c09dcdfaad2c9e1
Reviewed-on: https://go-review.googlesource.com/c/build/+/542855
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>
@gopherbot gopherbot modified the milestones: Go1.22, Go1.23 Feb 6, 2024
@rsc
Copy link
Contributor Author

rsc commented Apr 22, 2024

Marking this as a release blocker for Go 1.23 because the general problem of missing API changes may still remain. I don't understand how relnote can work on the new markdown files in the RELNOTE=yes CL comment case, since there are no CL numbers in the new markdown files for it to look for. Or are there?

@jba
Copy link
Contributor

jba commented Apr 26, 2024

We shouldn't miss API changes, because there is a test in the main repo. We may miss other things, like changes to commands.

RELNOTE= comments are obsolete in the current design; authors should instead add a doc/next/*.md file, possibly with a TODO. The relnote todo command would print these out.

This wasn't communicated clearly in the README; fixed in https://go.dev/cl/582075.

The relnote todo will look for these, since they may keep happening (https://go.dev/cl/582097). As you say, we can't point to places in the markdown files that need to be modified, but at least we won't drop anything.

We should probably also ask authors of release notes about accepted proposals to put the issue number in a comment in the note. Then we can look for CLs that mention accepted proposals that don't appear in the notes. That is future work.

@dmitshur dmitshur added NeedsFix The path to resolution is known, but the work has not been done. FixPending Issues that have a fix which has not yet been reviewed or submitted. and removed NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Apr 26, 2024
@gopherbot
Copy link

Change https://go.dev/cl/582097 mentions this issue: cmd/relnote: improve todo subcommand

gopherbot pushed a commit to golang/build that referenced this issue Apr 29, 2024
- The `todo` subcommand now looks at CLs with "RELNOTE=" comments,
  as well as TODO comments in doc/next/*.md files.

- The cutoff date must now be provided manually on the command line,
  avoiding errors in calculating it automatically.

- It is now an error to run `relnote` without a subcommand.

For golang/go#62376.

For golang/go#62376.

Change-Id: I34cf3d9dc7537daf7d0b479245b4c870106ac987
Reviewed-on: https://go-review.googlesource.com/c/build/+/582097
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>
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) FixPending Issues that have a fix which has not yet been reviewed or submitted. NeedsFix The path to resolution is known, but the work has not been done. release-blocker
Projects
Status: In Progress
Development

No branches or pull requests

6 participants