本文档是为任何有兴趣为 bat 项目做出贡献的人提供的全面指南。它涵盖了贡献流程、开发设置以及各种贡献类型的指南。有关在 Rust 应用程序中使用 bat 作为库的信息,请参阅 API 和库用法。
本指南旨在帮助所有经验水平的开发者有效贡献 bat。它解释了贡献工作流程、开发设置、测试程序以及提交代码更改的最佳实践。文档的结构旨在遵循从初始设置到 PR 提交的典型贡献生命周期。
bat 项目欢迎各种贡献,从错误修复和文档改进到新功能和语法定义。在开始贡献之前,了解整体流程会很有帮助。
在为 bat 贡献代码之前,您需要设置开发环境。
README 在“开发”部分包含有关开发设置的详细信息。基本工作流程涉及标准的 Rust 开发工具和实践。
在提交您的贡献之前,了解项目的指南以确保您的更改被接受非常重要。
维护变更日志对于跟踪更改和促进发布至关重要。对于大多数类型的更改,您都需要为 CHANGELOG.md 文件添加条目。
| 需要变更日志条目 | 不需要变更日志条目 |
|---|---|
bat 行为更改 | 文档更新 |
| 语法映射更改 | 拼写错误修复 |
| 语法定义更改 | |
| 主题更改 | |
| 构建系统/CI 更改 |
条目必须遵循此格式
- Short description of what has been changed, see #123 (@username)
#123 是您的 PR 编号,@username 是您的 GitHub 用户名。
该项目使用 GitHub Actions 工作流程,该工作流程会自动验证每个拉取请求是否具有正确的变更日志条目。此工作流程检查
CHANGELOG.md 添加了一行来源: CONTRIBUTING.md7-44 .github/workflows/require-changelog-for-PRs.yml1-34
修复错误时,重要的是
提交错误报告时,请使用错误报告模板,其中要求
bat --diagnostic)来源: .github/ISSUE_TEMPLATE/bug_report.md1-65 CONTRIBUTING.md72-91
对于新功能
该项目强烈鼓励在实现新功能之前提交功能请求 issue,以确保与项目目标一致并讨论实现细节。
来源: CONTRIBUTING.md53-57 .github/ISSUE_TEMPLATE/feature_request.md1-10
bat 支持添加新的语法和主题。此过程与其他贡献略有不同。
在提交语法以包含在 bat 中之前
项目文档解释说,用户可以本地添加语法,而无需将其包含在主存储库中。对于不太常见的语法,这是首选方法。
来源: CONTRIBUTING.md60-69 .github/ISSUE_TEMPLATE/syntax_request.md1-30
此图说明了为 bat 贡献的典型工作流程。该过程从 fork 存储库开始,在审查后合并您的更改。
以下图表将贡献活动映射到存储库中的实际代码结构
测试是贡献过程的关键部分。bat 使用不同类型的测试来确保代码质量。
强烈鼓励所有贡献都进行回归测试。它们
对于功能性更改,请在 tests/integration_tests.rs 中添加测试。这些测试会调用 bat 二进制文件并断言 stdout/stderr。
集成测试模式示例
对于语法高亮和主题更改,请按照资产文档中的说明添加适当的测试。该项目使用快照测试系统来验证语法高亮行为。
以下图表说明了贡献过程如何映射到存储库中的实际代码结构
来源: CONTRIBUTING.md1-91 .github/workflows/require-changelog-for-PRs.yml1-34
在为 bat 做贡献时,您可以使用各种沟通渠道
| 渠道 | 目的 | 模板 |
|---|---|---|
| GitHub Issues | 错误报告、功能请求 | 错误报告、功能请求模板 |
| GitHub Discussions | 问题、想法、支持 | 问题模板 |
| Pull Requests | 代码贡献 | 具有变更日志验证的 PR 模板 |
该项目鼓励使用 GitHub Discussions 来讨论 bat 的用法或开发问题。
来源: .github/ISSUE_TEMPLATE/question.md1-12
在提交您的 PR 之前,请确保
遵循 Rust 标准格式指南。在提交 PR 之前运行 cargo fmt 以确保格式一致。该项目使用标准的 Rust 代码风格并通过 CI 检查强制执行。
添加新功能时,请更新相关文档以反映您的更改。这包括
以下图表将不同类型的贡献映射到代码库中相应的组件
此图显示了不同贡献区域与相应的代码文件或目录之间的关系,这些文件或目录需要进行修改。
为 bat 做贡献可能是一次有益的体验。通过遵循本文档中的指南,您可以帮助改进这个流行的工具,并确保您的贡献顺利被接受。
请记住,社区重视各种类型的贡献,从代码到文档再到问题报告。每一次贡献都有助于使 bat 对每个人都更好。