您可以通过多种方式为 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/java
和src/test/java
中。- 核心代码,主要由 SkyFrame 和一些实用程序。
- 内置规则在
com.google.devtools.build.lib.rules
和com.google.devtools.build.lib.bazel.rules
。你可能想了解 编写规则所面临的挑战。
- Java 原生接口位于
src/main/native
中。 - 有关语言支持的各种工具,请参见 编译 Bazel 部分中所述。
搜索 Bazel 的源代码
要快速搜索 Bazel 的源代码,请使用 Bazel 代码搜索。你可以浏览 Bazel 的 代码库、分支和文件您还可以查看历史记录、差异和 blame 信息。如需了解详情,请参阅 Bazel 代码搜索用户指南。