Release stabilization: Create backport issues immediately

Pavel Rappo pavel.rappo at oracle.com
Wed Dec 13 15:44:52 UTC 2023


One disadvantage of the proposed adjustment I see is the need to create a JBS backport issue manually. (Unless I'm mistaken.) Not that it's difficult, but it's error-prone. In contrast, when using Skara /backport command, the JBS backport issue is created automatically.

Why can't we just _forward port_ an issue to the main-line using the same Skara /backport command, but with the benefits of automation? Fix your issue in the stabilisation repo first and then forward port it to the main-line. In this case, you don't even need any additional approvals, right? Unless, of course, people object to having "Backport-of" commits in the main-line repo. (Speaking of which, we already have 25 of such commits there.)

> On 13 Dec 2023, at 14:18, Mark Reinhold <mark.reinhold at oracle.com> wrote:
> 
> Last May, for JDK 21, we adopted Erik Duveblad’s proposal to use the
> Skara backport mechanism to stabilize the release after RDP 1 [1][2]:
> 
>> Erik proposes that we instead use the Skara backport mechanism, which
>> we already use for update releases.  To fix a bug in the release being
>> stabilized you’d first create a PR against the main-line repository.
>> Then, after that PR is reviewed and integrated, you’d use Skara’s
>> `/backport` command to backport the fix to the stabilization repository.
>> If your fix is intended only for the stabilization repository then you’d
>> create a PR directly against that repository.
> 
> This worked out reasonably well for JDK 21, except for one problem.
> 
> Suppose that you have a candidate bug [3] that you want to fix in the
> stabilization release (e.g., JDK 22).  Before you merge the PR against
> the main-line repository, you change the fix version of that bug to that
> of the main-line release (e.g., JDK 23) so that Skara will close the
> correct issue.  This causes the bug to disappear from the results of the
> candidate-bug queries [4] that we use to guide our work in the RDP 1,
> RDP 2, and RC phases, leaving us at risk of losing track of the bug for
> the stabilization release.
> 
> In JDK 21, various Committers worked around this in different ways, for
> example by using JIRA labels.  The difficulty with labels is that you
> have to remember to remove them when they’re no longer applicable, which
> makes the overall process more complex.
> 
> For JDK 22, let’s instead try the following small adjustment to the
> integration procedure:
> 
>    To fix a bug in the stabilization release, first target that bug to
>    the main-line release and **immediately create a backport of the bug
>    and target the backport to the stabilization release.**  Then create
>    a PR to integrate your fix into the main-line release.  After you
>    have obtained any necessary approvals, backport the main-line PR to
>    the stabilization repository via the Skara `/backport` command.
> 
>    (As before, if your fix is intended only for the stabilization
>     repository then target the bug to the stabilization release and
>     create a PR directly against that repository.)
> 
> We will also update the candidate-bug queries to include issues of type
> “Backport” as well as “Bug”.  These changes will ensure that a bug
> relevant to the stabilization release remains on the appropriate
> candidate-bug lists.  Its issue number will change when the fix is
> integrated into the main-line repository, but at least we won’t lose
> track of it.
> 
> Comments welcome, as always, but we’re already in RDP 1 so I suggest
> that we start using this process immediately and adjust if necessary.
> I’ve already updated the candidate-bug queries; I’ll update JEP 3
> shortly.
> 
> - Mark
> 
> 
> [1] https://mail.openjdk.org/pipermail/jdk-dev/2023-April/007612.html
> [2] https://mail.openjdk.org/pipermail/jdk-dev/2023-May/007822.html
> [3] https://openjdk.org/jeps/3#Candidate-bugs
> [4] https://j.mp/jdk-rdp-1, https://j.mp/jdk-rdp-2, https://j.mp/jdk-rc




More information about the jdk-dev mailing list