Unfork Blockly

Ten dokument jest przeznaczony dla deweloperów, którzy wcześniej utworzyli fork Blockly i chcą zaktualizować do najnowszej wersji Blockly bez łatania biblioteki. Chociaż może się to wydawać uciążliwe, możesz wykonać kilka czynności, które ułatwią Ci ten proces.

Co to jest odgałęzienie?

Korzystanie z głównej wersji Blockly oznacza, że używasz niedawno wydanej wersji Blockly, a wszystkie Twoje modyfikacje korzystają z publicznych interfejsów API Blockly bez monkeypatchingu. Unforking to czynności, które musisz wykonać, aby zaimplementować niestandardową funkcjonalność gałęzi za pomocą interfejsów API głównego repozytorium.

Prosty podział kodu

Oto 2 najczęstsze powody, dla których mogłeś utworzyć gałąź, oraz sposoby powrotu do głównej gałęzi:

  • Utworzyłeś/utworzyłaś własne bloki i generatory bez zmiany kodu Blockly: aby odłączyć gałąź, możesz po prostu przenieść niestandardowe bloki i generatory z repozytorium Blockly do kodu własnej aplikacji. Następnie możesz zaktualizować wersję Blockly.
  • Dodałeś niestandardową funkcjonalność w przestrzeni nazw Blockly bez zmiany żadnego kodu Blockly: na przykład dodałeś niestandardowe pola lub metody pomocnicze używane tylko przez Twoją aplikację. Aby w tej sytuacji odgałęzić projekt, przenieś ten kod niestandardowy do własnej aplikacji poza repozytorium Blockly. Następnie możesz zaktualizować wersję Blockly.

Rozwiązanie z rozgałęźnikiem

Określanie funkcji pochodnych

Ostatnim powodem, dla którego użytkownicy tworzą gałęzie, jest wdrożenie poprawki w Blockly w celu utworzenia niestandardowej funkcji, która ich zdaniem nie jest obecnie uwzględniona w głównej gałęzi. Jeśli Twoja wersja rozgałęzienia jest znacznie przestarzała, być może już dodaliśmy potrzebne Ci funkcje w postaci wtyczek lub w jądrze. Znajomość funkcji dodanych w Twoim forku może stanowić plan, który pomoże Ci określić, które funkcje należy zaktualizować.

Architektura

Gdy już poznasz funkcje, które korzystają z interfejsów API określonych dla danej gałęzi, rozważ:

  • Czy w przypadku każdej funkcji korzystającej z odgałęzi istnieje sposób na jej powielenie za pomocą interfejsów Blockly API?
  • Jeśli uważasz, że nie możesz odtworzyć tej funkcji za pomocą interfejsów API Blockly, skontaktuj się z nami na forum lub zgłoś problem na GitHub. Następnie nasz zespół sprawdzi możliwość dodania interfejsów API, aby umożliwić Ci dostosowanie.

Określ ścieżkę odgałęzi

Następnym krokiem jest rozpoczęcie wdrażania nowej architektury opartej na Blockly w przypadku funkcji korzystających z odgałęzi. Możesz zastosować 2 główne podejścia:

  • Uaktualnij Blockly i sprawdź, co się zepsuje: natychmiast zobaczysz obszary kodu, które wymagają aktualizacji. Możesz użyć tego w połączeniu z zachowaniem, które już znasz, aby ułatwić sobie tworzenie.
  • Refaktoryzacja kodu w celu oddzielenia funkcji od Blockly: wymaga to dokładnego poznania funkcji, które są niestandardowe w Twoim forku, a które pochodzą z Blockly. Gdy kod zostanie całkowicie oddzielony, zastąp starą wersję Blockly najnowszą wersją, a potem rozwiąż ewentualne problemy z integracją.

Dalsze działania

Oto kilka zasad, których powinieneś przestrzegać jako deweloper Blockly w przyszłości:

  • Ogólnie nie należy dodawać nowych klas do przestrzeni nazw Blockly. Możesz zarejestrować niestandardowe pola lub inne klasy, które można zarejestrować, bez deklarowania ich w repozytorium Blockly ani w przestrzeni nazw Blockly.
  • Nie należy używać narzędzi do kompilacji w Blockly do kompilowania własnych aplikacji. Nasze narzędzia do kompilacji nie są częścią publicznego interfejsu API, więc możemy wprowadzić w nich zmiany, które mogą spowodować awarię aplikacji. Jeśli chcesz skompilować aplikację, odpowiadasz za to samodzielnie.

Kontakt

Zespół Blockly jest dostępny na Forum Blockly. Jeśli podczas procesu odgałęzienia napotkasz jakieś problemy, opublikuj je tam, a my chętnie Ci pomożemy.