Hi Michael,
Thanks for starting this discussion. We want the backport process to be transparent and easy to understand—there should be as little mystery or uncertainty about who is responsible for what, or what's blocking. The more clear it is to everyone, the less inefficiency there is. We generally rely on the process being documented at
https://golang.org/wiki/MinorReleases, but this thread shows we have ways to improve.
As background, we target the beginning of each month to issue minor releases. It's not a guarantee, as security releases pre-empt an upcoming minor release, or there may be no fixes to deliver in a given release, or other factors. We start a release when it is safe to do so, which means it is sometimes later than the target date.
The general goal is for minor releases to happen monthly, so that when a backport fix makes it to the release branch, it will be included in the upcoming minor release. That means the month leading up to the next minor release is a window of opportunity for backports to land on the release branches. We on the release team make progress on backport issues continuously throughout the month, and when a new month starts, we issue a minor release with all the fixes that are ready by then. If a backport is critical to include, the release-blocking label is used for that, but otherwise the fix will can only get included in the next minor release, if it is ready by then.
In this particular case, the backport issues 40693 (for 1.15) and 40694 (for 1.14) were approved, CLs were sent for both, trybots were passing, but there was no code review done on either CL. The CLs were not submitted by a release manager as it could not be submitted without a +2 code review, and there was no release-blocking label on the issue, so it didn't get included in the release at the beginning of this month.
The next minor release is targeting Oct 1 (only 20 days away from today), so as long as it gets code reviewed by then, it should get submitted and included since the backport issue is approved. As documented at
https://golang.org/wiki/MinorReleases, only release managers can submit CLs to the release branches. However, everyone can and should help with creating the cherry pick CL, ensuring trybots have been started and are passing, and finding a code reviewer.
Please also note that issuing overall robust releases that everyone can use is a higher priority than delivering any particular backport fix more quickly. The risk of a problem goes up with the number of changes, so we will sometimes opt to move slowly on a backport issue if we need more signal that it is going to be safe to include. The main point is that the month before a minor release comes out is the best time to make progress. At the beginning of a new month, our goal is to issue a minor release as soon as it is safe to do so, possibly on the 1st of the month.
Thanks,
Dmitri