取消分支 Blockly

本文件適用於先前已分支 Blockly 的開發人員,他們希望更新至 Blockly 的最新版本,但不想修補程式庫。雖然這項工作看起來很困難,但您可以採取幾個步驟,讓這個程序更容易管理。

瞭解 Unforking

使用主線 Blockly 表示您使用的是最近發布的 Blockly 版本,且所有自訂項目都會使用公開 Blockly API,而不需要猴子修補。取消分支是指您必須執行的工作,才能使用主線 API 實作分支的自訂功能。

簡單的未分支案例

以下是您可能會分支的兩個常見原因,以及如何返回主線的解決方案:

  • 您建立了自訂方塊和產生器,但未變更任何 Blockly 程式碼:在這種情況下,您只要將自訂方塊和產生器從 Blockly 存放區移至自有應用程式程式碼即可取消分支。接著,您應該可以更新 Blockly 版本。
  • 您在 Blockly 命名空間中新增自訂功能,但未變更任何 Blockly 程式碼:例如,您新增了自有應用程式專用的自訂欄位或輔助方法。如要在此情況下取消分支,請將這段自訂程式碼移至 Blockly 存放區以外的應用程式。接著,您應該可以更新 Blockly 版本。

大量的 Unforking 案例

判斷分支功能

我們發現使用者分支的最後一個原因,是為了修補 Blockly,以便建立他們認為當時上游未納入的自訂功能。如果分支版本已過時,我們可能已新增您需要的功能,可做為外掛程式或核心功能使用。瞭解您在分支中新增了哪些功能,就能提供路線圖,說明您需要更新哪些功能。

瞭解架構

瞭解使用分支專屬 API 的功能後,請考慮:

  • 對於每個使用分支的功能,是否有辦法透過 Blockly API 複製?
  • 如果您無法使用 Blockly API 複製這項功能,請透過論壇與我們聯絡,或在 GitHub 上提出問題。我們的團隊會接著調查是否要新增 API,以便您進行自訂。

決定不分支的路徑

接下來,我們將開始實作使用分支的功能,實作以 Blockly 為基礎的新架構。您可以採用兩種主要方法:

  • 升級 Blockly 並查看哪些部分發生錯誤:您會立即看到程式碼中需要更新的部分。您可以將這項資訊與已知的自訂行為結合,作為開發工作的指南。
  • 重構程式碼,將功能與 Blockly 分開:您必須深入瞭解哪些功能是您分支自製的,哪些功能來自 Blockly。程式碼完全分離後,請將舊版 Blockly 取代為最新版本,然後修正任何剩餘的整合問題。

未來展望

以下是您日後擔任 Blockly 開發人員時應遵循的幾項規則:

  • 一般來說,您不應在 Blockly 命名空間中新增類別。您可以註冊自訂欄位或其他可註冊的類別,而無須在 Blockly 存放區或 Blockly 命名空間中宣告這些欄位。
  • 您不應仰賴 Blockly 的建構工具來編譯自己的應用程式。我們不認為我們的建構工具是公開 API 的一部分,因此我們可能會對這些工具進行變更,導致您的應用程式無法運作。如要編譯應用程式,您必須自行負責。

聯絡

您可以透過 Blockly 論壇與 Blockly 團隊聯絡!如果在取消分支過程中遇到任何問題,歡迎在該論壇發布問題,我們會提供協助。