取消创建 Blockly 分支

本文档适用于之前针对 Blockly 开发了分支、并且希望更新到 Blockly 最新版本而不修补库的开发者。虽然这看起来是一项艰巨的任务,但您可以采取几个步骤来使该流程更易于管理。

了解 Unforking

使用 Mainline Blockly 意味着您使用的是最新发布的 Blockly 版本,并且您的所有自定义都使用了公共 Blockly API,无需使用 monkeypatch。取消分支是使用 Mainline API 实现分支的自定义功能所需执行的一项工作。

简单的开分支箱

以下是您可能会创建分支的两个常见原因,以及有关如何返回 Mainline 的解决方案:

  • 您自己创建了自己的块和生成器,而没有更改任何 Blockly 代码:如需在这种情况下取消分支,您只需将自定义块和生成器移出 Blockly 代码库并放入自己的应用代码中。然后,您应该就能够更新 Blockly 版本了。
  • 您在 Blockly 命名空间中添加了自定义功能,而没有更改任何 Blockly 代码:例如,您添加了仅供自己的应用使用的自定义字段或辅助方法。如需在这种情况下取消分支,请将此自定义代码移至 Blockly 代码库之外的您自己的应用中。然后,您应该能够更新 Blockly 版本。

大量未分支案例

确定分支功能

我们看到用户进行分支的最终原因是,通过修补 Blockly 来创建用户认为尚未包含在上游的自定义功能。如果您的分支明显过时,我们可能已经以插件形式或核心形式添加了您需要的功能。了解您在分支中添加了哪些特性,即可为需要更新哪些特性提供路线图。

了解架构

了解使用分支专用 API 的功能后,请考虑:

  • 对于使用分支的每个功能,是否有办法使用 Blockly API 复制该功能?
  • 如果您无法使用 Blockly API 复制该功能,请通过论坛与我们联系,或在 GitHub 上提交问题。然后,我们的团队将研究如何添加 API 来实现您的自定义。

确定解分支路径

下一步是使用分支实际上开始为功能实现新的基于 Blockly 的架构的过程。您可以采取的方法主要有两种:

  • 分块升级并查看中断部分:您可以立即看到代码中需要更新的区域。您可以将它与您已了解的自定义行为相结合,以指导您的开发。
  • 重构代码,将您的功能与 Blockly 分离:您需要深入了解哪些功能是您的分支自定义的,哪些功能来自 Blockly。代码完全分离后,请将旧版本的 Blockly 替换为最新版本,然后修复剩余的所有集成问题。

展望未来

作为 Blockly 开发者,将来您应遵循以下几条规则:

  • 一般而言,您不应向 Blockly 命名空间添加新类,您可以注册自定义字段或其他可注册类,而无需在 Blockly 代码库内或 Blockly 命名空间中声明。
  • 您不应依赖 Blockly 的构建工具来编译您自己的应用。我们并未将构建工具视为公共 API 的一部分,因此可能会对其进行更改,导致您的应用无法正常工作。您应自行负责编译应用(如果需要)。

伸出援手

您随时可以通过 Blockly Forum 访问 Blockly!如果您在拆分过程中遇到任何问题,请随时将其发布到这里,我们可以提供帮助。