上次验证时间:2020-04-21 (更新历史记录)
联系人: laurentlb
目标
我们的目标是使 Bazel 更具可扩展性。用户应该能够轻松实现自己的规则,并支持新的语言和工具。我们希望改进编写和维护这些规则的体验。
我们专注于以下两个方面:
- 使语言和 API 简单而强大。
- 提供更好的工具来读取、写入、更新、调试和测试代码。
2020 年第 2 季度
健康和最佳实践:
- P0. 不鼓励使用没有名称的宏,并确保名称是唯一的字符串字面量。此工作重点在于 Google 代码库,但可能会影响公开提供的工具。
- P0. 使 Buildozer 命令在选择和变量方面可靠。
- P1. 使 Buildifier 移除因注释而未排序的列表中的重复项。
- P1. 更新 Buildifier linter 以建议内联简单表达式。
- P2. 研究 native.existing_rules 的使用情形并提出替代方案。
- P2. 研究序曲文件的使用情形,并提出替代方案。
效果:
- P1. 使用扁平环境和字节码编译优化 Starlark 解释器。
减少技术债:
- P0. 添加了在 @bazel_tools 下将原生符号移植到 Starlark 的功能。
- P1. 删除过时的标志(其中一些仍在 Google 使用,因此我们需要先清理代码库):
incompatible_always_check_depset_elements、incompatible_disable_deprecated_attr_params、incompatible_no_support_tools_in_action_inputs、incompatible_new_actions_api。 - P1. 确保以下标志可在 Bazel 4.0 中翻转:
incompatible_disable_depset_items、incompatible_no_implicit_file_export、incompatible_run_shell_command_string、incompatible_restrict_string_escapes。 - P1. 完成 lib.syntax 工作(API 清理、与 Bazel 分离)。
- P2. 将对 Bazel 的 Java 软件包进行微小编辑时的构建+测试延迟时间缩短 50%。
社区:
rules_python由社区积极维护。- 持续支持 rules_jvm_external(没有未完成的 pull 请求、问题分类、发布版本)。
- 维护 Bazel 文档基础架构:集中管理并规范化 bazel-website、bazel-blog、docs 中的 CSS 样式
- Bazel 文档:为端到端文档网站构建添加了 CI 测试,以防止出现回归问题。
2020 年第 1 季度
健康和最佳实践:
- 允许目标跟踪其宏调用堆栈,以便通过
bazel query进行导出 - 实现
--incompatible_no_implicit_file_export - 移除了已废弃的 depset API (#5817、#10313、#9017)。
- 在 Buildifier 中添加了跨文件分析器,实现了对已弃用函数的检查。
效果:
- 使 Bazel 自己的基于 Java 的测试速度提高 2 倍。
- 实现 Starlark CPU 性能分析器。
减少技术债:
- 移除了 8 个不兼容的标志(翻转后)。
- 完成 lib.syntax 清理工作(打破依赖关系)。
- Starlark 优化:扁平环境、字节码编译
- 尽可能删除分析阶段的所有序列化
- 制定简化/优化 lib.packages 的计划
社区:
- 发布包含所有 Bazel 特定术语定义的术语表