このドキュメントは、以前に Blockly をフォークし、ライブラリにパッチを適用せずに Blockly の最新リリースにアップデートしようとしているデベロッパーを対象としています。これは大変な作業のように思えますが、プロセスを管理しやすくするためにいくつかの手順があります。
フォークの解除について
メインライン Blockly を使用するということは、最近リリースされたバージョンの Blockly を使用していることを意味します。すべてのカスタマイズで、モンキー パッチなしで公開 Blockly API が使用されます。フォークの解除は、フォークのカスタム機能をメインライン API で実装するために必要な作業です。
単純な分岐解除のケース
フォークする一般的な理由は次の 2 つです。また、メインラインに戻す方法も次のとおりです。
- Blockly のコードを変更せずに独自のブロックとジェネレータを作成した: この状況でフォークを解除するには、カスタム ブロックとジェネレータを Blockly リポジトリから独自のアプリケーションのコードに移動します。これで、Blockly のバージョンを更新できるようになります。
- Blockly コードを変更せずに Blockly 名前空間にカスタム機能を追加した: たとえば、独自のアプリでのみ使用されるカスタム フィールドやヘルパー メソッドを追加しました。この状況でフォークを解除するには、このカスタムコードを Blockly リポジトリ外の独自のアプリに移動します。これで、Blockly のバージョンを更新できるようになります。
広範なフォークの解除のケース
フォークされた機能を特定する
ユーザーがフォークする最後の理由は、Blockly にパッチを適用して、当時アップストリームに含まれていなかったカスタム機能を作成することです。フォークが大幅に古い場合は、必要な機能がすでにプラグインまたはコアに追加されている可能性があります。フォークに追加した機能を把握することで、更新が必要な機能を把握できます。
アーキテクチャを理解する
フォーク固有の API を使用する機能について理解したら、次の点を検討してください。
- フォークを使用している機能ごとに、Blockly API を使用して複製する方法はありますか?
- Blockly API を使用してこの機能を再現できないと思われる場合は、フォーラムからお問い合わせいただくか、GitHub で問題を報告してください。カスタマイズを可能にするための API の追加について、Google の担当チームが調査いたします。
フォーク解除パスを決定する
次のステップは、フォークを使用して、機能の新しい Blockly ベースのアーキテクチャの実装プロセスを実際に開始することです。主に次の 2 つの方法があります。
- Blockly をアップグレードして破損を確認する: 更新が必要なコードの領域がすぐに表示されます。この情報と、すでにカスタム動作として把握している情報とを組み合わせて、開発を進めることができます。
- コードをリファクタリングして、Blockly から機能を分離する: これを行うには、フォークに固有の機能と Blockly から取得した機能の違いを深く理解する必要があります。コードが完全に分離されたら、古いバージョンの Blockly を最新バージョンに置き換え、残りの統合の問題を修正します。
前へ進む
今後、Blockly デベロッパーとして遵守すべきルールは次のとおりです。
- 通常、Blockly 名前空間に新しいクラスを追加しないでください。カスタム フィールドやその他の登録可能なクラスは、Blockly リポジトリ内や Blockly 名前空間で宣言しなくても登録できます。
- 独自のアプリケーションをコンパイルするために Blockly のビルドツールに依存しないでください。Google のビルドツールは公開 API の一部ではないため、アプリケーションが破損するような変更が行われる可能性があります。アプリをコンパイルするかどうかはお客様の判断となります。
支援を求める
Blockly チームは Blockly フォーラムでサポートを提供しています。フォークの解除プロセスで問題が発生した場合は、そのスレッドに投稿してください。サポートさせていただきます。