Release stabilization: Create backport issues immediately

Wei-Jun Wang weijun.wang at oracle.com
Wed Dec 13 16:41:00 UTC 2023


Or, we can still fix in the main line first and backport it. Only, let Skara do something different.

Suppose I keep the bug’s target to jdk22, currently the Skara bot is already able to notice it and shows a warning in the jdk23 PR. When the jdk23 PR is integrated, I wonder if the bot can:

1. Change the JBS target to 23, where the fix is integrated
2. Create a backport for 22, which is the original target

If I remember correctly, its current behavior is to keep the original bug unchanged and create a “backport” for jdk23. If we believe that backport is always backward, this should be fixed anyway. If we believe a backport can be forward, then all is fine. The bug id used in the comment is still the non-backport one.

Thanks,
Weijun

p.s. From what Mark said "so that Skara will close the correct issue", it seems backport should only be backward.



> On Dec 13, 2023, at 10:44 AM, Pavel Rappo <pavel.rappo at oracle.com> wrote:
> 
> 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