Blockly 포크 해제

이 문서는 이전에 Blockly를 포크했으며 라이브러리를 패치하지 않고 Blockly의 최신 버전으로 업데이트하려는 개발자를 대상으로 합니다. 이 작업은 부담스러울 수 있지만 이 과정을 더 쉽게 관리할 수 있는 몇 가지 단계가 있습니다.

포크 해제 이해

메인라인 Blockly를 사용한다는 것은 최근에 출시된 Blockly 버전을 사용하고 있으며 모든 맞춤설정이 원숭이 패치 없이 공개 Blockly API를 사용한다는 것을 의미합니다. 포크 해제는 포크의 맞춤 기능을 메인라인 API로 구현하기 위해 실행해야 하는 작업입니다.

간단한 포크 해제 케이스

다음은 포크를 했을 수 있는 두 가지 일반적인 이유와 메인라인으로 돌아가는 방법에 관한 해결 방법입니다.

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

광범위한 포크 해제 케이스

포크된 기능 확인

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

아키텍처 이해

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

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

포크 해제 경로 결정

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

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

향후 계획

앞으로 Blockly 개발자로 활동할 때 따라야 할 몇 가지 규칙은 다음과 같습니다.

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

문의하기

Blockly팀은 Blockly 포럼을 통해 지원받을 수 있습니다. 포크 해제 과정에서 문제가 발생하면 언제든지 포크 해제 페이지에 게시해 주세요. 최선을 다해 도와드리겠습니다.