Datum für den Umzug auf Git fix

Java zieht um: Projekt Skara steht vor der Vollendung
Keine Kommentare

Es wird ernst: Die Umzugskartons sind gepackt, die Freunde bestellt, der Kasten Bier im Kühlschrank – der Duke zieht um. Die neue Heimat wird Git bzw. GitHub sein, wie die beiden JEPs (357 und 369) definieren, die im Zuge von Projekt Skara entstanden sind. Nun steht auch der definitive Umzugstermin fest…

Früher als erwartet macht Oracle Nägel mit Köpfen und treibt den Umzug auf Git bzw. GitHub voran. Die beiden relevanten Java Enhancement Proposals (JEPs) wurden für Java 16, das im März erscheinen wird, vorgesehen. Der Umzug selbst hat jetzt allerdings ein definitives Zieldatum, den 5. September 2020. Das ist sogar noch vor dem offiziellen Release von Java 15, das aktuell in der zweiten RC-Phase angelangt ist. Die Taktik leuchtet ein, sollte etwas Unvorhergesehenes passieren beim Umzug, hat man bis kommenden März noch genug Zeitpuffer, um Probleme zu beheben. Auch im Hinblick auf die Veröffentlichungspolitik bzw. die Long-Term-Support-Problematik scheint der Termin „JDK 16“ nicht ohne Hintergedanken gewählt worden zu sein: Java 17 wird das nächste Long-Term-Support-Release und dementsprechend ist es natürlich aus Sicht von Oracle und der Community wichtig, möglichst vorher auf Git umzusatteln.

Besondere Probleme erwartet derweil eher niemand. Projekt Skara, unter dessen Schirm JEP 357 (Migrate from Mercurial to Git) und JEP 369 (Migrate to GitHub) erarbeitet wurden, ist bereits vor rund zwei Jahren ins Leben gerufen worden. Damals ging es in erster Linie um das Finden einer möglichen Alternative zu dem mittlerweile eher als veraltet und schwerfällig geltenden Mercurial. Die Kritik an Mercurial hat schließlich dafür gesorgt, dass Git als Versionskontrollsystem (VCS) und das allseits beliebte (und von Microsoft für viel Geld erworbene) GitHub als Hosting-Plattform dienen sollen.

Der Ablauf

Da dies nun in Stein gemeißelt ist, die JEPs für das nächste Java-Release getargeted sind und die Arbeit begonnen hat, wird es Zeit, den Ablauf genauer unter die Lupe zu nehmen. Dazu hat Erik Helin auf der jdk-dev-Mailing-Liste einige Informationen zusammengefasst. Die Arbeiten am Umzug sollen am 4. September starten, indem man initial das Mercurial Repository jdk/jdk nur noch lesbar macht. Am Wochenende vom 5. bis 6. September wird der Umzug dann vonstatten gehen und ab Montag, 7. September, wird das Git Repository jdk/jdk auf den Status read-write umgestellt.

Mitarbeiter am OpenJDK-Projekt wird empfohlen, sich (falls noch nicht geschehen) die Anleitung des Skara-Projektes durchzulesen, um auch in Zukunft ohne Probleme weiter am Projekt teilhaben zu können. Außerdem gibt es einen sogenannten Playground, auf dem man die neuen Tools etc. ausprobieren und testen kann. Wer auf Backports setzt, kann das Skara CLI Tool git hg-export nutzen. Damit lassen sich Commits aus einem Git Repository von OpenJDK in einem Format exportieren, das mit hg und dem entsprechenden Mercurial Repository kompatibel ist. Auch ein kleines Snippet, wie ein sauberer Backport aussieht, stellt Erik Helin bereit:

$ git clone https://git.openjdk.java.net/jdk
$ git -C jdk hg-export  | hg -R /path/to/hg/repo import

Zwei Repositorys könnten bzw. werden verschwinden: jdk/submit wird nicht auf Git umgezogen, dort ist das Pull-Request-Kommando /test funktionsgleich. Das Repository jdk/client könnte ebenfalls obsolet werden, an einer entsprechenden Lösung wird bereits gearbeitet. Ob diese bis 5. September vorliegt, ist fraglich, daher könnte es sein, dass das Repository doch noch mit umgezogen wird, bis die Funktion nativ angeboten werden kann.

Hintergrund: Performance ist alles

Um die Gründe nachzuvollziehen, Mercurial ersetzen zu wollen, braucht man sich einfach nur nackte Zahlen und die gängigen Prozesse anzusehen: Beim Verschieben einer Datei erstellt Mercurial eine komplette Kopie der ursprünglichen Datei und speichert diese. Verschiebt man nun viele Dateien, wie bei der Entwicklung eines JDKs (gerade für JDK 9 wurden wegen des neuen Modulsystems viele Dateien verschoben), kommt es dabei zu extrem großen Speichermengen. JDK 8 hatte eine Größe von 412 Megabyte, JDK 9 war schon auf 800 Megabyte angewachsen und JDK 10 hat über 1,5 GB. Auch die Art und Weise, Code Reviews durchzuführen, aktuell noch via Mailing-Listen, ist nicht wirklich modern. Git bietet hier adäquatere Alternativen.

Weitere Informationen zu Projekt Skara und dem Umzug auf Git / GitHub gibt es im offiziellen Projekt-Wiki sowie in den Beschreibungen zu JEP 357 und JEP 369. Den Source Code für Projekt Skara gibt es auf GitHub und auf der skara-dev-Mailing-Liste kann über das Projekt diskutiert werden. Aktuell ist Erik Helins Beitrag auf der jdk-dev-Mailing-Liste ein guter Startpunkt, um tiefer in das Projekt Skara einzublicken.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -