[11u] Proposal: Switch jdk11u development to Git/Skara with 11.0.13 cycle
Volker Simonis
volker.simonis at gmail.com
Fri Feb 12 21:33:47 UTC 2021
On Fri, Feb 12, 2021 at 6:40 PM Andrew Dinn <adinn at redhat.com> wrote:
>
> On 12/02/2021 16:37, Severin Gehwolf wrote:
> > Don't get me wrong, moving JDK 8u to git is doable, but it'll need some
> > more thought than 11u.
>
> That's what I was thinking.
>
> > My preference would be to do it in steps:
> > 1.) HG forest -> monorepo conversion (using JEP 296 scripts)
> > 2.) HG -> git conversion using Skara tooling (should take care of
> > proper metadata, etc.)
> Yes, I think this is the right way to go about it. If nothing else
> because the tools for the second step assumed that the first one had
> happened.
>
> The really tricky differences I see happen at step 1 (although they
> might have a knock-on effect at step 2)
>
I think converting 8u to a Git mono-repo might not be as complicated
and risky as it seems. We have to remember that most of the work has
already been done by JEP 296 in jdk10. That process already converted
all the old history and as nobody seems to have been complaining about
it in jdk10 and later, that conversion must have been fine. I.e. The
jdk 10 repository naturally contains the sources of jdk8 from which is
was initially forked (I think at jdk8-b120).
So we "only" have to take a clone of jdk10 or 11 up to the tag jdk8-b120:
hg clone -r jdk8-b120 jdk11u-dev/ jdk11u-dev-jdk8-b120
This will give us a mono-repo at the stage of jdk8-b120. Afterwards,
we only have to use the JEP 296 scripts or something equivalent (I
hope that the Oracle build group can assist or at least give some good
advice here :)
>From a quick look at the "jdk11u-dev-jdk8-b120" repo which I created
with the above command, it looks like the "JEP 296" script worked as
follows:
- let's assume were at a changeset which merges all the subrepos at a
specific build tag "jdk8-bXX" (builds were usually tagged weekly, so
every jdk8-bXX tag corresponds to a weekly version).
- sequentially transplant all the changes from a single subrepo up
until the next tag "jdk8-bXX+1" into the new repo
- do this sequentially for all the other sub-repositories
- create a merge change in the new mono-repo which merges all the
newly transplanted changes and tag it with "jdk8-bXX+1"
- verify that the sources of the new mono-repo at tag "jdk8-bXX+1" are
bit-wise equal to the sources of the jdk8u forest when every single
repo is synced to the same tag.
- repeat the procedure for all the other jdk8-bXX tags
We can probably take the above jdk11u-dev-jdk8-b120 repo and follow
the described procedure for all the additional changes between
jdk8-b121 up to the latest jdk8u-XXX tag from the jdk8u-dev forest.
Needless to say that the Corretto team is fully supporting the
transition of jdk8u from a Mercurial forest to a Git mono-repo and
will be happy to get involved into the process :)
Best regards,
Volker
> JEP 296 had to relocate all the java code into modules
> JEP 296 did not have to retain (and therefore relocate) all of the
> java code we need to keep in jdk8u (corba?, jaxb?, jaxws?)
>
> I don't suppose these differences would be impossible to sort out but I
> think they would require some effort.
>
> regards,
>
>
> Andrew Dinn
> -----------
>
More information about the jdk8u-dev
mailing list