Java’s move to GitHub set for September
- 30 July, 2020 08:42
The OpenJDK Community effort to move the source code of standard Java from Mercurial repos to Git repos on GitHub is proceeding, with early-September set as the target date.
Current plans have Oracle’s Java Platform Group transitioning the jdk/jdk repo hosted on GitHub, which is currently a read-only mirror, to become the read-write master for Java Development Kit (JDK) 16 sources by that time. This transition would take place a few weeks before the planned general availability of JDK 15 on September 15.
As per standard Java’s six-month release cycle, JDK 16 is due in March 2021. The repo migration plan has been done through Project Skara, which has involved investigating alternative source code management and code review options for OpenJDK source code, and migrating to GitHub.
The three primary reasons cited for migrating OpenJDK repos to Git include the size of version control system metadata, available tools, and available hosting. Initial prototypes of converted repositories have shown a significant reduction in the size of version control metadata.
For example, the .git directory of the jdk/jdk repository is approximately 300 MB with Git while the .hg directory is around 1.2 GB with Mercurial. Reduction in metadata preserves local disk space and reduces cloning times, with fewer bits going over the wire.
This is in addition to available tools, with many more tools available for Git than Mercurial. All text editors have Git integration, either natively or through plug-ins. Further, almost all IDEs ship with Git integration, including Eclipse and Visual Studio.
Further motivations include available hosting, with many options available for hosting Git repositories, either self-hosted or hosted as a service. Reasons to use an external source code hosting provider include performance, access to web APIs to interact with developers, and expanded community. Several Java projects already have been moved to GitHub including OpenJFX, Panama, Valhalla and Loom.