取消分叉 Blockly

本文档面向之前分叉了 Blockly 并希望在不打补丁库的情况下更新到 Blockly 的最新版本的开发者。虽然这似乎是一项艰巨的任务,但您可以采取一些步骤来简化流程。

了解取消分叉

使用主线 Blockly 意味着您使用的是最近发布的 Blockly 版本,并且您的所有自定义都使用公共 Blockly API,而无需猴子补丁。解分叉是指您需要执行的工作,以便使用主线 API 实现分支的自定义功能。

简单的分叉情况

以下是您可能分叉的两个常见原因,以及如何返回主线的解决方案:

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

大量分叉情况

确定分叉功能

我们发现用户分叉的最后一个原因是修补 Blockly,以创建他们认为当时上游不包含的自定义功能。如果您的分支版本已过时,我们可能已将您需要的功能添加为插件或核心功能。了解您在分支中添加了哪些功能,有助于您确定需要更新哪些功能。

了解架构

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

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

确定取消分叉路径

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

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

后续措施

以下是您日后作为 Blockly 开发者应遵循的一些规则:

  • 一般来说,您不应向 Blockly 命名空间添加新类。您可以注册自定义字段或其他可注册类,而无需在 Blockly 代码库内或 Blockly 命名空间中声明它们。
  • 您不应依赖 Blockly 的构建工具来编译自己的应用。我们不认为我们的构建工具属于公共 API,因此我们可能会对其进行更改,导致您的应用无法运行。如果您希望编译应用,则需自行负责。

与我们联系

您可以通过 Blockly 论坛与 Blockly 团队联系!如果您在分叉过程中遇到任何问题,请随时在该论坛中发布问题,我们会为您提供帮助。