本文档提供了向 Free Programming Books 仓库贡献代码的拉取请求流程的全面指南。它涵盖了提交拉取请求的步骤、运行的自动化检查以及合并您的贡献的审查流程。有关贡献指南以及何为适当内容的信息,请参阅贡献指南。
Free Programming Books 仓库采用结构化的拉取请求流程,以确保所有贡献的一致性和质量。该流程结合了自动化检查和人工审查,以在保持高标准的同时,也对新贡献者保持友好。
来源:.github/PULL_REQUEST_TEMPLATE.md .github/workflows/fpb-lint.yml .github/workflows/check-urls.yml
在创建拉取请求之前,请确保您已完成以下事项:
当您准备提交更改时,仓库提供了一个结构化的拉取请求模板来指导您。
仓库强制使用拉取请求模板,该模板会要求您提供有关您的贡献的特定信息
## What does this PR do?
Add resource(s) | Remove resource(s) | Add info | Improve repo
## For resources
### Description
### Why is this valuable (or not)?
### How do we know it's really free?
### For book lists, is it a book? For course lists, is it a course? etc.
## Checklist:
- [ ] Read our contributing guidelines
- [ ] Search for duplicates
- [ ] Include author(s) and platform where appropriate
- [ ] Put lists in alphabetical order, correct spacing
- [ ] Add needed indications (PDF, access notes, under construction)
- [ ] Used an informative name for this pull request
该模板有助于确保提供了所有必要信息,从而使审查流程更高效。
来源:.github/PULL_REQUEST_TEMPLATE.md1-20
当您提交拉取请求时,系统会运行多项自动化检查,以确保质量和一致性。了解这些检查有助于您排除故障并避免常见陷阱。
该仓库采用自动化 URL 检查系统,用于验证您更改文件中的所有链接均可访问。
check-urls 工作流
来源:.github/workflows/check-urls.yml1-133 .github/actions/awesomebot-gh-summary-action/action.yml1-106
该仓库使用自定义的代码检查工具(linter)(free-programming-books-lint),它强制执行本项目特有的格式标准。
Linting 过程检查以下内容:
当发现 Linting 错误时,它们会作为评论发布在您的拉取请求上,并附带需要修复的具体细节。
来源:.github/workflows/fpb-lint.yml1-37 .github/workflows/comment-pr.yml1-56
一个专门的工作流会自动检测并标记与其它开放的拉取请求或主分支冲突的拉取请求。
如果您的拉取请求存在冲突,它将:
来源:.github/workflows/detect-conflicting-prs.yml1-74
自动化检查完成后,维护者会手动审查您的拉取请求。此审查确保贡献符合质量标准并与仓库的宗旨保持一致。
维护者根据以下标准评估拉取请求:
审查流程可能有以下几种结果:
| 结果 | 描述 | 下一步 |
|---|---|---|
| 已批准 | 拉取请求满足所有要求 | 拉取请求已合并到主分支 |
| 请求更改 | 需要解决小问题 | 进行请求的更改并更新拉取请求 |
| 已关闭 | 拉取请求不符合仓库标准 | 考虑反馈以用于未来的贡献 |
当维护者请求更改时:
来源:.github/PULL_REQUEST_TEMPLATE.md21-24
为保持仓库活跃,过期处理系统会自动管理非活跃的拉取请求。
过期拉取请求系统的关键方面:
来源:.github/workflows/stale.yml1-209
为增加您的拉取请求快速被接受的可能性:
书籍条目的正确格式示例
来源:books/free-programming-books-bg.md1-53 .github/PULL_REQUEST_TEMPLATE.md13-19
下图展示了 Free Programming Books 仓库中拉取请求的完整生命周期:
此生命周期展示了拉取请求从创建到合并或关闭的整个过程。该过程包含多个反馈循环,贡献者可以在其中解决问题并继续争取批准。
来源:.github/workflows/check-urls.yml .github/workflows/fpb-lint.yml .github/workflows/stale.yml .github/PULL_REQUEST_TEMPLATE.md