TeamQuest Blog

OpenJDK przechodzi na GitHuba

OpenJDK przechodzi na GitHuba

Marcin Sarna , 28.07.2020 r.

Projekt OpenJDK zakończy we wrześniu 2020 roku proces migracji z Mercurial do Githuba.

Po co ta migracja?

Niektóre z oczekiwanych korzyści nowego rozwiązania do zarządzania kodem źródłowym to większa wydajność i lepsze wsparcie dla przeglądów kodu.

Od 2008 roku OpenJDK używa rozwiązania Mercurial do zarządzania kodem źródłowym, a więc do jego przechowywania i przeprowadzania przeglądów. Niektóre z projektów OpenJDK zostały już wcześniej przeniesione na GitHub i projekt JDK dołączy do nich. Github stanie się oficjalnym głównym repozytorium OpenJDK we wrześniu 2020 roku (zarówno do odczytu jak i zapisu).

Postępy prac

Wspomnianymi, przeniesionymi wcześniej projektami OpenJDK, są na przykład Loom, Valhalla czy JMC. Kilka innych, takich jak sam JDK, jest właśnie w trakcie przenoszenia. W przypadku tych projektów repozytoria są już w serwisie GitHub, ale nadal są kopią tylko do odczytu. Joe Darcy, odpowiedzialny za migrację do GitHub, niedawno poinformował o postępach:

Chcemy przenieść główną linię JDK do Skary pod koniec JDK 15, najpóźniej z początkiem JDK 16.

Przypomnijmy, że JDK 15 zostanie wydany we wrześniu 2020 roku a JDK 16 w marcu 2021 roku. O ile można w dzisiejszych czasach przywiązywać się do prognozowanych terminów.

O co chodzi z tym Skara?

W 2018 roku rozpoczęto projekt Skara w celu oceny możliwych alternatyw dla Mercurial w zakresie zarządzania kontrolą wersji. Misją projektu miało być zwiększenie produktywności wszystkich rozwijających kod, zarówno tych nowych, jak i istniejących.

Wersje JDK 16 z wczesnym dostępem, opublikowane na jdk.java.net, mogą przejść na Github, a nie na Mercurial, jeszcze zanim przeniesione zostanie całe repozytorium OpenJDK. To, który SCM jest używany jako podstawa dla kompilacji JDK, można wywnioskować z zawartości pliku release w katalogu głównym kompilacji. Plik wydania zawiera między innymi wartości haszy źródeł SCM użytych do kompilacji.

Aby ocenić możliwe alternatywy dla Mercurial, Project Skara zdefiniował listę kryteriów oceny, do których zaliczono m.in.:

1) wydajność: czas operacji klonowania z repozytoriów głównych, czas operacji lokalnych itp.

2) użyteczność w różnych lokalizacjach;

3) obsługę typowych środowisk programistycznych, takich jak Linux, Mac i Windows;

4) możliwość obsłużenia całej bogatej historii JDK z uwzględnieniem rozwoju projektu przez następną dekadę;

5) Wsparcie dla ogólnych praktyk przeglądu kodu JDK

6) programowe interfejsy API umożliwiające wspomaganie procesów oraz automatyzację przeglądów i procesów.

Dlaczego wygrał Git?

Pomimo znajomości Mercuriala przez obecnych deweloperów OpenJDK i kosztów migracji, członkowie projektu Skara zdecydowali się przejść na Git. Główne powody to rozmiar metadanych systemu kontroli wersji oraz dostępność zarówno narzędzi, jak i hostingu. GitHub został wybrany po prostu ze względu na wydajność, interfejs API i rozbudowaną społeczność. Sam projekt Skara ma repozytorium na GitHub i zawiera listę narzędzi ułatwiających przejście na GitHub. Istnieją narzędzia do importowania repozytoriów Mercurial do Git i odwrotnie. Oprócz tego dostępne są narzędzia wiersza linii poleceń, które pomagają w migracji (chodzi tu np. o tłumaczenie hashy mercurialowych na githubowe).

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej