CFV: New Project: Skara

joe darcy joe.darcy at oracle.com
Wed Aug 29 17:58:24 UTC 2018


I hereby propose the creation of the Skara Project with Joe Darcy as the 
Lead and the Build Group as the sponsoring Group.

The source code management (SCM) system of a software project is a 
fundamental piece of its infrastructure and workflows. Starting in 
February 2008, the source code of different JDK releases and supporting 
projects has been hosted in Mercurial repositories under 
http://hg.openjdk.java.net/. Code reviews of JDK changes are typically 
conducted as discussions in mailing lists over small patches sent to one 
or more lists or over webrevs hosted on cr.openjdk.java.net. Since 2008, 
many open source projects have successfully adopted more efficient SCM 
and review tooling, in some cases provided by third parties.

In order to help OpenJDK contributors be more productive, both seasoned 
committers and relative newcomers, the Skara project proposes to 
investigate alternative SCM and code review options for the JDK source 
code, including options based upon Git rather than Mercurial, and 
including options hosted by third parties.

The Skara project intends to build prototypes of hosting the JDK 12 
sources under different providers.

The evaluation criteria to consider include but are not limited to:

     * Performance: time for clone operations from master repos, time of 
local operations, etc.

     * Space efficiency

     * Usability in different geographies

     * Support for common development environments such as Linux, Mac, 
and Windows

     * Able to easily host the entire history of the JDK and the 
projected growth of its history over the next decade

     * Support for general JDK code review practices

     * Programmatic APIs to enable process assistance and automation of 
review and processes

If one or more prototypes indicate a different SCM arrangement offers 
substantial improvements over the current situation, the Skara project 
will shepherd a JEP to change the SCM for the JDK.

Skara previously had a call for discussion 
(http://mail.openjdk.java.net/pipermail/discuss/2018-July/004801.html) 
and was a topic at the OpenJDK Committers’ Workshop 
(http://cr.openjdk.java.net/~darcy/Presentations/ocw-2018-08-01-skara.pdf). 
A range of passionate opinions were expressed regarding the choice of 
SCM for the JDK, but the prototype imports of the JDK sources to hosting 
providers:

     https://github.com/Project-Skara/jdk.git
     https://gitlab.com/jddarcy/jdk.git

have demonstrated much shorter clone times, on the order of one to three 
minutes as compared to fifteen minutes to over a half hour from 
hg.openjdk.java.net.

The envisioned future iterations of prototypes could explore how to 
adapt JDK development practices to better conform to conventions on 
different SCMs. For example, some syntax changes in JDK commit messages 
would work more naturally with git tooling. Such prototypes would be 
published and made available for comment.

Joe is  a reviewer in the JDK project, the lead of the CSR 
(Compatibility & Specification Review) group 
(http://openjdk.java.net/groups/csr/), previous lead of Project Coin 
(http://openjdk.java.net/projects/coin/), initial moderator and 
inaugural release manager for OpenJDK 6, and was the lead for JEP 296: 
Consolidate the JDK Forest into a Single Repository 
(http://openjdk.java.net/jeps/296).

Initial reviewers are Tim Bell (tbell), Joe Darcy (darcy), Erik Duveblad 
(ehelin), Erik Joelsson (erikj), Mark Reinhold (mr), Tony Squier 
(squierts), Tiep Vo (tiep), and Robin Westberg (rwestberg).

Votes are due by September 12, 11 am Pacific Time.

Only current OpenJDK Members [1] are eligible to vote on this motion.  
Votes must be cast in the open on the discuss list. Replying to this 
message is sufficient if your mail program honors the Reply-To header.

For Lazy Consensus voting instructions, see [2].

-Joe Darcy

[1] http://openjdk.java.net/census#members
[2] http://openjdk.java.net/projects/#new-project-vote



More information about the announce mailing list