授权流程
建议
插件起步时会提供建议。您可以使用 Feature Request 模板创建新问题,以推荐插件。
阅读除了基本的功能请求信息之外,插件建议还应包括:
- 插件将公开的 API。
- 需要在核心 Blockly 中添加或更改以支持插件的 API。
- 屏幕截图、GIF 或模型(如果插件包含界面功能)。
- 解释为什么它应该是第一方插件而不是第三方插件。
Blockly 团队会在收到建议时进行审核,然后关闭问题或添加 status:thinkion 标签。
讨论
接下来,插件会进入讨论阶段。此阶段包括:
- 阐明所需功能。
- 阐明插件的 API。
- 制定实施计划。
- 规划测试。
- 讨论了核心 Blockly 中的 API 变更。
- 将大型插件拆分为实现步骤。
- 根据我们的命名惯例对插件进行命名。
- 确认会满足所有第一方条件。
这种讨论通常针对 GitHub 问题进行。插件的范围越小,讨论阶段就越快。大型插件可能会吸引社区的关注,以及对合适解决方案的强烈意见。如果您的问题遇到这种情况,那么恭喜您!您找到了大家关心的内容。
这样做的目标是在讨论阶段结束时,所有主要设计决策均已做出,并且一份清晰的实现步骤列表。两者都应记录在问题的注释中。
在讨论过程中,我们可能会决定插件应该是第三方插件,而不是在 @blockly
范围内发布。这样的话
我们将说明原因并结束问题
讨论完成后,Blockly 团队成员会为问题添加 status: implementation 标签。
实施步骤
实现步骤包括:
- 运行
npx @blockly/create-package
,以通过模板设置插件及其目录。了解详情... - 为插件实现核心逻辑。
- 实现界面(如果需要)。
- 使用 mocha 测试插件。
- 记录插件,包括
README
。
如果插件的问题带有 status: implementation 标签,则表明该插件已为实现或正在积极实现。为避免重复性工作,任何感兴趣的人都应对该问题发表评论,并询问其是否仍欢迎大家贡献内容。
实现可以由多个贡献者并行完成。您可以在自己的分支上协作实现插件,也可以通过针对此代码库的拉取请求来实现插件。如果您希望协作处理此代码库中的插件,请让 Blockly 团队为您创建功能分支。
插件应添加到 blockly-samples 的 master
分支中的 gh-pages/index.md
文件中。这些插件会将它们显示在我们的插件网站上。第一方插件应指向其测试页。第三方插件也可以添加到此页面,并且可以指向其所有者选择的链接,例如托管演示或 npm 页面。
正在发布
最后是发布。Blockly 团队使用 Lerna 管理所有插件的版本控制和发布。
每周四,我们都会发布自上次发布以来更改的所有插件。如果您需要尽快发布更改,请在拉取请求中注明。
插件网站也会在每次发布插件时更新。
尚未准备好发布的插件应在其 package.json
中标记为 private
。如果某个插件依赖于 core Blockly 中尚未发布的更改,则可能会发生这种情况。Core Blockly 在每个季度的最后一周发布(每三个月一次)。