为 Bazel 贡献力量

报告问题 查看源代码

您可以通过多种方式帮助 Bazel 项目和生态系统。

提供反馈

在使用 Bazel 时,您可能会发现有待改进之处。在下列情况下,您可以报告问题来寻求帮助:

  • Bazel 崩溃,或者您遇到了只能使用 bazel clean 解决的 bug
  • 文件不完整或不够清晰。您还可以使用页面右上角的“创建问题”链接来报告当前查看的页面存在的问题。
  • 错误消息有待改进。

加入社区

您可以通过以下方式与 Bazel 社区互动:

  • 在 Stack Overflow 上回答问题。
  • 帮助其他用户使用 Slack
  • 完善文档或贡献示例
  • 在博客或社交媒体上分享您的体验或提示。

贡献代码

Bazel 是一个大型项目,很难更改 Bazel 源代码。

您可以通过以下方式为 Bazel 生态系统做贡献:

  • 通过贡献拉取请求来帮助规则维护者。
  • 创建新规则并将其开源。
  • 为与 Bazel 相关的工具(例如迁移工具)做贡献。
  • 改进 Bazel 与其他 IDE 和工具的集成。

在进行更改之前,请创建 GitHub 问题或发送电子邮件至 bazel-discuss@

最有用的贡献会修复 bug 或添加功能(而不是样式、重构或“清理”更改)。您所做的更改应包含测试和文档,同时注意向后兼容性、可移植性以及对内存用量和性能的影响。

如需了解如何提交更改,请参阅补丁接受流程

Bazel 的代码说明

Bazel 有一个庞大的代码库,其中有多个位置的代码。如需了解详情,请参阅代码库指南

Bazel 的组织方式如下:

  • 客户端代码位于 src/main/cpp 中,并提供命令行界面。
  • 协议缓冲区位于 src/main/protobuf 中。
  • 服务器代码位于 src/main/javasrc/test/java 中。
    • 核心代码,主要由 SkyFrame 和一些实用程序组成。
    • 内置规则位于 com.google.devtools.build.lib.rulescom.google.devtools.build.lib.bazel.rules 中。您可能需要先阅读编写规则的挑战
  • Java 原生接口位于 src/main/native 中。
  • 编译 Bazel 部分的列表中介绍了各种语言支持工具。

搜索 Bazel 的源代码

如需快速搜索 Bazel 的源代码,请使用 Bazel 代码搜索。您可以浏览 Bazel 的存储库、分支和文件。您还可以查看历史记录、差异和责制信息。如需了解详情,请参阅 Bazel 代码搜索用户指南