블록리로 언포크

이 문서는 이전에 Blockly를 포크한 적이 있고 라이브러리를 패치하지 않고 Blockly의 최신 버전으로 업데이트하려는 개발자를 대상으로 합니다. 버거운 작업처럼 보이지만, 프로세스를 보다 원활하게 관리하기 위해 취할 수 있는 몇 가지 단계가 있습니다.

언포크에 대한 이해

mainline Blockly를 사용하면 최근에 출시된 Blockly 버전을 사용 중이며 모든 맞춤설정에서 monkeypatch 없이 공개 Blockly API를 사용합니다. 포크 해제는 메인라인 API로 포크의 맞춤 기능을 구현하기 위해 실행해야 하는 작업입니다.

간단한 포크 해제 케이스

다음은 포크하는 일반적인 이유 두 가지와 메인라인으로 돌아갈 수 있는 해결 방법입니다.

  • Blockly 코드를 변경하지 않고 자체 블록과 생성기를 만든 경우: 이 문제를 해결하려면 맞춤 블록과 생성기를 Blockly 저장소에서 자체 애플리케이션 코드로 이동하면 됩니다. 그런 다음 Blockly 버전을 업데이트하시면 됩니다.
  • Blockly 코드를 변경하지 않고 Blockly 네임스페이스에 맞춤 기능을 추가함: 예를 들어 내 애플리케이션에서만 사용하는 맞춤 필드나 도우미 메서드를 추가했습니다. 이러한 상황을 포크하려면 이 맞춤 코드를 Blockly 저장소 외부의 자체 애플리케이션으로 옮기세요. 그런 다음 Blockly 버전을 업데이트할 수 있습니다.

광범위한 언포크 케이스

포크된 기능 확인

사용자가 포크하는 마지막 이유는 Blockly를 패치하여 당시 사용자가 업스트림에 포함되어 있지 않다고 인식하는 맞춤 기능을 만들기 위해서입니다. 포크가 매우 오래된 경우 필요한 기능을 플러그인 또는 코어로 이미 추가했을 수 있습니다. 포크에 추가한 기능을 알면 업데이트해야 하는 기능에 관한 로드맵을 제공할 수 있습니다.

아키텍처 이해

포크별 API를 사용하는 기능을 이해했다면 다음을 고려하세요.

  • 포크를 사용하는 각 기능에 Blockly API를 사용하여 복제할 수 있나요?
  • Blockly API를 사용하여 기능을 복제할 수 없는 경우 포럼을 통해 문의하거나 GitHub에서 문제를 제출하세요. 그러면 팀에서 맞춤설정을 사용 설정할 API를 추가하는 방법을 조사합니다.

포크 해제 경로 결정

다음 단계는 포크를 사용하는 기능에 새로운 Blockly 기반 아키텍처를 구현하는 프로세스를 실제로 시작하는 것입니다. 다음과 같은 두 가지 주요 접근 방식을 취할 수 있습니다.

  • Blockly 업그레이드 및 중단되는 부분 확인: 코드에서 업데이트가 필요한 영역이 즉시 표시됩니다. 이미 알고 있는 맞춤 동작과 함께 사용하여 개발을 안내할 수 있습니다.
  • 코드를 리팩터링하여 Blockly에서 기능 분리: 포크에 맞춤설정되는 기능과 Blockly에서 가져온 기능을 자세히 파악해야 합니다. 코드가 완전히 분리되면 이전 버전의 Blockly를 최신 버전으로 바꾸고 남아 있는 통합 문제를 해결합니다.

앞으로 이동

향후 Blockly 개발자가 따라야 할 몇 가지 규칙은 다음과 같습니다.

  • 일반적으로 Blockly 네임스페이스에 새 클래스를 추가하면 안 됩니다. Blockly 저장소 또는 Blockly 네임스페이스에서 선언하지 않고 맞춤 필드 또는 기타 등록 가능한 클래스를 등록할 수 있습니다.
  • 자체 애플리케이션을 컴파일할 때 Blockly의 빌드 도구에 의존해서는 안 됩니다. Google에서는 빌드 도구를 공개 API의 일부로 간주하지 않으므로 변경사항을 적용하여 애플리케이션이 손상될 수 있습니다. 원하는 경우 애플리케이션을 컴파일할 책임은 개발자에게 있습니다.

연락

Blockly는 Blockly 포럼을 통해 언제든지 사용할 수 있습니다. 포크를 해제하는 동안 문제가 발생하면 언제든지 게시하세요. Google에서 도와드리겠습니다.