퍼스트 파티 플러그인 추가

플러그인에 대해 자세히 알아보기

처리 과정

플러그인은 제안, 토론, 구현, 게시의 4단계를 거칩니다.

추천

플러그인은 제안으로 시작됩니다. 기능 요청 템플릿으로 새로운 문제를 만들어 플러그인을 제안할 수 있습니다.

기능 요청을 작성하는 방법을 알아보세요.

기본 기능 요청 정보 외에도 플러그인 추천에는 다음 항목이 포함되어야 합니다.

  • 플러그인이 노출하는 API입니다.
  • 플러그인을 지원하기 위해 Core Blockly에 추가하거나 변경해야 하는 API입니다.
  • 스크린샷, GIF 또는 모형(플러그인에 UI 기능이 포함된 경우)
  • 서드 파티 플러그인이 아닌 퍼스트 파티 플러그인이어야 하는 이유를 설명합니다.

Blockly팀은 제안이 들어오는 대로 검토하고 문제를 종료하거나 status: 토론 라벨을 추가합니다.

토론

그런 다음 플러그인이 토론 단계로 넘어갑니다. 이 단계에는 다음이 포함됩니다.

  • 원하는 기능에 대한 설명.
  • 플러그인 API에 대해 설명합니다.
  • 구현 계획 수립
  • 테스트 계획
  • 핵심 Blockly의 API 변경사항에 관한 설명
  • 대규모 플러그인을 구현 단계로 분할
  • 이름 지정 규칙에 따른 플러그인 이름 지정
  • 모든 퍼스트 파티 기준을 충족하는지 확인합니다.

이러한 논의는 일반적으로 GitHub 문제에서 이루어집니다. 플러그인의 범위가 작을수록 토론 단계가 빨라질 수 있습니다. 플러그인이 클수록 적합한 솔루션에 대한 커뮤니티의 관심과 강력한 의견을 유도할 수 있습니다. 이러한 문제가 발생했다면 축하드립니다. 사람들이 관심을 가지는 거리를 찾았어요

토론 단계가 끝날 때 모든 주요 설계 결정을 내리고 명확한 구현 단계를 제시해야 합니다. 둘 다 문제에 관한 의견에 문서화되어야 합니다.

논의 중에 플러그인이 서드 파티 플러그인이어야 하고 @blockly 범위에 게시되어서는 안 된다고 결정할 수 있습니다. 이 경우에는 이유를 설명하고 문제를 종료합니다

토론이 끝나면 Blockly 팀원이 문제에 status:implementation 라벨을 추가합니다.

구현

구현 단계에는 다음이 포함됩니다.

  • npx @blockly/create-package를 실행하여 템플릿에서 플러그인과 디렉터리를 설정합니다. 자세히 알아보기
  • 플러그인의 핵심 로직 구현
  • 필요한 경우 UI 구현
  • Mocha를 사용하여 플러그인을 테스트합니다.
  • README를 포함하여 플러그인을 문서화합니다.

플러그인 문제에 status: implementation 라벨이 있으면 구현 준비가 완료되었거나 현재 구현 중인 것입니다. 중복되지 않도록 관심 있는 사람은 문제에 댓글을 달고 아직 참여 가능한지 문의해야 합니다.

여러 기여자가 동시에 구현할 수 있습니다. 자체 포크에서 또는 이 저장소에 대한 pull 요청을 통해 플러그인을 공동으로 구현할 수 있습니다. 이 저장소에서 플러그인으로 공동작업하려면 Blockly팀에 기능 브랜치를 만들어 달라고 요청하세요.

플러그인은 blockly-samples의 master 브랜치에 있는 gh-pages/index.md 파일에 추가해야 합니다. 이렇게 하면 Google의 플러그인 사이트에 표시됩니다. 퍼스트 파티 플러그인은 테스트 페이지를 가리켜야 합니다. 이 페이지에 서드 파티 플러그인을 추가할 수도 있으며, 호스팅된 데모 또는 npm 페이지와 같이 소유자가 선택한 링크를 가리킬 수 있습니다.

게시

마지막으로 게시입니다. Blockly팀은 Lerna를 사용하여 모든 플러그인의 버전 관리와 게시를 관리합니다.

마지막 출시 이후 변경된 모든 플러그인은 매주 목요일에 게시됩니다. 변경사항을 더 빨리 게시해야 하는 경우 pull 요청에 기재하세요.

또한 플러그인이 게시될 때마다 플러그인 사이트가 업데이트됩니다.

게시할 준비가 되지 않은 플러그인은 package.jsonprivate로 표시해야 합니다. 이 문제는 플러그인이 core Blockly에서 아직 게시되지 않은 변경사항을 사용하는 경우에 발생할 수 있습니다. Core Blockly는 분기의 마지막 주에 게시됩니다 (3개월에 한 번).