Proposal: Branch github.com/openjdk/jdk for stabilization (instead of fork)

Iris Clark iris.clark at oracle.com
Wed Mar 20 16:20:34 UTC 2024


Hi.

The source code for JDK main-line development has been managed in git since
September 2020 [0].

The jdk repository is always open for commits.  In June and December, we fork
the main line into a stabilization repository [1].  Changes are backported
from the jdk repository into the stabilization repository, typically by the
Committer who contributed the change [2].  The stabilization repository is
archived when the release is delivered.

We inherited the convention of forking repositories from Mercurial, which
originally had weak support for branches.  Forking repositories entails some
disadvantages.  Most notably, setting up a local branch tracking the "master"
branch in a stabilization repository is cumbersome, which makes diffs across
branches less convenient. Stabilization branches have been used successfully
by the JDK Updates Project since April 2021 (for 16.0.1).

I propose that the JDK feature releases (e.g., JDK 23, JDK 24) use branches
rather than repositories for stabilization.  The "master" branch will continue
to be the always-open default branch, used for main-line development.  Instead
of a stabilization repository "jdk$N" (where $N is the version number of the
next release, e.g. "jdk23" or "jdk24"), we will use a stabilization branch
with the same name, "jdk$N".  Changes will be backported from the master
branch via pull requests targeting the release-specific stabilization branch.
The stabilization branch will be locked when the release is delivered.

I suggest that we adopt this proposal for JDK 23 RDP 1, June 2024.

Concerns?

Thanks,
Iris

[0] https://mail.openjdk.org/pipermail/jdk-dev/2020-September/004694.html
[1] https://openjdk.org/jeps/3#rdp-1
[2] https://mail.openjdk.org/pipermail/jdk-dev/2023-April/007612.html


More information about the jdk-dev mailing list