Call for Discussion: New Project: Skara -- investigating source code management options for the JDK sources

joe darcy joe.darcy at oracle.com
Sat Jul 28 03:28:33 UTC 2018


Hello,

On 7/27/2018 3:50 AM, Martijn Verburg wrote:
> Hi Mario,
>
> AdoptOpenJDK is not intended to be a place for source code development 
> of OpenJDK, so we deliberately don't accept patches there with the 
> exception of one patch to support a particularly esoteric platform 
> which OpenJDK did not want to support (completely understandable).  We 
> want all source code development to happen at OpenJDK.
>
> We've had a fair number of requests to allow patches because using 
> Git/GitHub has less friction for those folks (in particular new 
> developers to OpenJDK). More importantly they would like to see their 
> patches go through our build and test pipeline before submitting to 
> OpenJDK (upstream).
>
> We've still go some work to go on the build farm (e.g. adding 
> flexibility to build and test the various branches for amber and 
> panama etc) before we'd discuss / consider doing this, but all of 
> Infrastructure as Code that we have could be utilised to do so (and my 
> understanding is that a few vendors are trying just that).
>
> --
>
> As a side note SCM workflow hubs BitBucket and GitHub have powerful 
> hooks where you could also list and/or block a Pull Request / Issue on 
> patches, for example:
>
> * Have you discussed this change on X mailing list?
> * Have you signed your CLA?
> * Have you written / extended a jtreg test for this?
>
> They also has the built in mechanisms to support reviewers and a patch 
> lifecycle (authored, builds OK on all platforms, passes test pipeline, 
> ready for review, reviewed etc).
>
> I fairly regularly see exchanges on the mailing list where folks are 
> asking for a reviewer to review a patch, get sent to a different 
> mailing list(s), find out post commit that their patch breaks 
> something like the Zero compiler etc, etc. I think there's an awful 
> lot that a shared SCM workflow hub / CI pipeline can do for OpenJDK 
> developers in terms of managing their patch lifecycle, freeing them up 
> to work on the more important stuff.
>
> Cheers,
> Martijn
>

One of my professors was fond of saying "The essence of civilization is 
being about to benefit from someone else's experience without having to 
relive it." In that sense, I think we should also strive to have any SCM 
transition for the JDK to be a civilized one.

For example, the Python community migrated from Mercurial to Git on Github:

     PEP 512 -- Migrating from hg.python.org to GitHub
     https://www.python.org/dev/peps/pep-0512/

They put in place automation for contributor agreement checking, etc. I 
understand the Graal project on Github has OCA checking as well.

I think a change like an SCM transition is an opportunity to reassess 
existing processes and consider better aligning them with the preferred 
workflow of the new tool set. For example, a git migration for the JDK 
could involve adjustments to things like syntax of the commit messages 
and I would expect use of bots working with a hosting provider to 
automate other checking of various kinds too. For example, besides a 
contributor agreement bot it would be possible to have a jcheck bot 
validate a pull request. A CI bot could also notice a pull request, run 
tests on behalf of the author, and report back a comment summarizing the 
resulting build and test status.

Cheers,

-Joe


More information about the discuss mailing list