Menü

Java: OpenJDK-Entwicklung soll künftig unter Git laufen

Ein JDK Enhancement Proposal schlägt einen Umstieg der Versionsverwaltung von Mercurial auf Git vor.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 61 Beiträge
Von

Ein Jahr nach den ersten Überlegungen, die Versionsverwaltung des OpenJDK auf ein anderes System umzustellen, existiert nun ein offizielles JDK Enhancement Proposal (JEP), das die Migration zu Git vorschlägt. Das JEP 357 schlägt die Umstellung für alle OpenJDK-Projekte vor, die aus einem einzelnen Repository bestehen.

Verantwortlich für das JEP zeichnet Joe Darcy, der bereits im Sommer 2018 in einer Mail zur Suche nach einer Alternative für Mercurial aufgerufen hatte. Unter dem Projektnamen Skara hat seitdem die Suche nach einem alternativen Source-Code-Management-System (SCM) stattgefunden. Als Reviewer des JDK ist Mark Reinhold, der Chief Archtiect der Java Platform Group, gelistet. Der geschätzte Aufwand zur Umsetzung der Migration ist hoch (Effort L), die vermutliche Dauer liegt im mittleren Bereich (Duration M).

Das erklärte Ziel ist die Migration aller Single-Repository-OpenJDK-Projekte von Mercurial auf Git. Dabei will das Team die komplette Historie inklusive der Tags übernehmen. Commit-Nachrichten will es umformatieren, damit sie den Vorgaben beziehungsweise Best Practices von Git entsprechen. Zur Übersetzung von Mercurial- nach Git-Hashes ist die Entwicklung eines eigenen Tools geplant. Auch die Portierungen der Werkzeuge jcheck, webrev und defpath nach Git ist vorgesehen.

Explizit nicht geplant ist die Migration der OpenJDK-Projekte, die aus mehreren Repositorys bestehen wie das JDK8-Updates-Projekt (jdk8u). Solche Projekte können auf Git wechseln, falls und sobald sie in ein einzelnes Repository konsolidiert sind. Das Bug-System JBS möchte das Team beibehalten. Auch sieht das JEP direkt keine Änderungen für den grundsätzlichen Entwicklungsprozess des JDK vor.

Die Entscheidung, ob die OpenJDK-Git-Repositorys intern oder bei einem externen Provider liegen sollen, ist nicht Bestandteil des Vorschlags, sondern soll in einem separaten JEP entschieden werden. Als prominente Plattformen kommen wohl GitHub, GitLab und Bitbucket in Betracht. Die Vielfalt der Hosting-Optionen gehört aber sehr wohl zu den aufgeführten Gründen für die geplante Umstellung.

Eine weitere Motivation ist der Speicherbedarf der Metadaten und die damit verbundene verkürzte Zeit beim Klonen: Das ".git"-Verzeichnis im jdk/jdk-Repository umfasst laut dem JEP 300 MByte, während das ".hg"-Verzeichnis desselben Repositorys je nach verwendeter Mercurial-Version auf die vierfache Größe kommt.

Schließlich spielt die Toolanbindung eine große Rolle. So bieten Sourcecode- beziehungsweise Texteditoren wie Emacs, Vim, Atom und Visual Studio Code sowie Entwicklungsumgebungen wie IntelliJ IDEA, Eclipse, NetBeans und Visual Studio meist eine integrierte und ansonsten Anbindung an Git. Dort, wo die native Integration fehlt, sind zumindest Plug-ins vorhanden. Zudem existieren für Git diverse Desktop-Clients.

Auch wenn das Proposal noch nicht umgesetzt ist und offiziell Kandidatenstatus (Candidate) hat, haben die Vorbereitungen für die Umstellung bereits begonnen. Das Team hat den Prototypen eines Programms zur Konvertierung von Mercurial- zu Git-Repositorys erstellt. Auch die Umstellung der Werkzeuge jcheck, webrev und defpath sind in Arbeit.

Als größtes Risiko nennt das JEP, das sich durch die Umstellung Fehler einschleichen, was aber eine strikte Überprüfung beim Umstellen weitgehend verhindern soll. Die einzige genannte Alternative zur Migration auf Git wäre der Verbleib bei Mercurial. (rme)