# 添加第一方插件
详细了解 插件
# 流程
# 建议
一个插件从建议开始。您可以通过使用 功能请求 (opens new window) 模板创建新 issue 来建议插件。
详细了解请阅读 如何撰写功能请求
除了基本的功能请求信息之外,插件建议应包含以下内容:
- 插件将公开的 API。
- 需要在核心 Blockly 中添加或更改的 API 以支持插件。
- 屏幕截图、GIF 或原型(如果插件包含界面功能)。
- 解释为何应将其用作第一方插件而不是第三方插件。
Blockly 团队会在收到建议时进行审核,并关闭 issue 或添加 status: discussion (opens new window) 标签。
# 讨论
接下来,插件将进入 讨论 阶段。此阶段包括:
- 阐明所需功能。
- 阐明插件的 API。
- 实施规划。
- 测试规划。
- 讨论核心 Blockly 中的 API 变更。
- 将大型插件分解为实现步骤。
- 插件的命名,需基于我们的 命名规则。
- 确认满足所有第一方规范。
此讨论一般在 GitHub issue 上发起。插件的范围越小,讨论阶段的速度就越快。较大的插件可能会吸引社区关注并就正确的解决方案积极发表意见。如果你的 issue 涉及上述情况 ,那么恭喜您!您找到了大家关心的东西
我们的目标是在讨论阶段结束时做出所有主要设计决策,并且有一个清晰的实现步骤列表。两者应记录在对该 issue 的评论中。
在讨论过程中,我们可能会判定某个插件应为第三方插件,且不在 @blockly
范围内发布。在这种情况下,我们将说明原因并关闭 issue。
讨论结束后,Blockly 团队成员会为 issue 添加 status: Implementation (opens new window)(状态:实现)标签。
# 实现
实现步骤包括:
- 运行
npx @blockly/create-package
,通过模板设置插件及其目录结构。 - 实现插件的核心逻辑。
- 根据需要实现用户界面。
- 使用 mocha 测试插件。
- 为插件编写文档,包括
README
。
如果插件的 issue 带有 status: Implementation (opens new window) 标签,则表明该 issue 已准备好实现或正在积极实现。为避免重复劳动,任何感兴趣的用户应针对该 issue 发表评论,并询问该 issue 是否仍可进行贡献。
实现可以由多个贡献者并行完成。您可以在自己的分支上协作实现插件,也可以通过针对此代码库的拉取请求来实现。如果您希望协作使用此代码库中的插件,请让 Blockly 团队为您创建一个功能分支。
处于构建初期的插件无法发布。
# 发布
最后,发布。Blockly 团队使用 Lerna (opens new window) 管理所有插件的版本控制和发布。
每个星期四,Blockly 团队的成员都会使用 Lerna 来检查所有已发布插件中的更改,并重新发布所有已更改的插件。如果您需要更快地发布更改,请在拉取请求中加以记录。
尚未准备好发布的插件应在其 package.json
中标记为 private
。如果插件依赖于 core Blockly (opens new window) 中尚未发布的更改,则可能会发生这种情况。Core Blockly 发布在每个季度的最后一周(每三个月一次)。