菜单

对仓库的贡献

相关源文件

本文档提供了如何为 Free Programming Books 仓库贡献的全面指南。它涵盖了贡献流程、指南、拉取请求程序以及现有的质量控制系统。有关将仓库用作资源的具体信息,请参阅概述

贡献流程概述

Free Programming Books 仓库欢迎所有人的贡献,无论他们对 Git 或 GitHub 的经验水平如何。无论您是想添加新资源、更新现有资源还是协助翻译,本节都将解释如何开始。

来源:README.md42-58 .github/workflows/fpb-lint.yml .github/workflows/comment-pr.yml

如果您是 GitHub 新手,请不用担心。许多贡献者都是通过此仓库完成了他们的首次开源贡献。您可以选择

  1. 如果您发现仓库中尚未存在有趣的内容,可以提交一个议题
  2. 如果您熟悉 Git,可以分叉仓库并提交拉取请求

本项目欢迎多语言贡献,文档提供超过 40 种不同语言版本。

贡献类型

该仓库接受各种类型的免费编程资源,并将其组织到特定类别中。贡献时,请确保您的资源符合其中一个类别。

来源:README.md70-217 docs/README.md3-146

贡献指南

在提交贡献之前,请确保您遵循以下基本准则,以维护仓库的质量和一致性。

资源要求

  1. 资源必须完全免费

    • 无注册要求(教育平台除外)
    • 不收集电子邮件
    • 无临时试用资源
  2. 适当分类

    • 书籍应归为书籍,课程应归为课程等。
    • 资源应放置在正确的语言或主题文件中
  3. 链接质量

    • 可用时使用 HTTPS 链接
    • 使用最权威的来源(作者网站 > 出版社 > 第三方)
    • 不使用文件托管服务(Dropbox、Google Drive 等)
    • 不使用短链接

格式要求

所有资源必须遵循特定的格式指南

元素格式示例
列表项* 标题 - 作者(可选备注)* [Python Basics](https://example.com/py) - John Doe (PDF)
间距`]` 和 `(` 之间没有空格,URL 后有一个空格* 标题 - 作者
作者格式在链接和作者之间使用 `-`(带空格的破折号)* 标题 - John Doe
格式备注在作者后加括号* 标题 - John Doe (PDF, EPUB)
出版年份在较旧书籍的标题中* 经典书籍 (1970) - 作者
进行中的书籍添加 `*(:construction: 进行中)*`* 标题 - 作者 *(:construction: 进行中)*
已归档书籍添加 `*(:card_file_box: 已归档)*`* 标题 - 作者 *(:card_file_box: 已归档)*

按字母顺序排列

资源必须在其部分内按字母顺序排列

  • 当多个标题以相同字母开头时,按第二个字母及后续字母排序
  • `one two` 排在 `onetwo` 之前
  • 自动化代码检查工具将检查排序是否正确

来源:.github/PULL_REQUEST_TEMPLATE.md1-24 docs/CONTRIBUTING-hi.md12-236

拉取请求流程

拉取请求流程是向仓库贡献的主要方法。以下是提交成功拉取请求的方法

来源:.github/workflows/fpb-lint.yml1-36 .github/workflows/comment-pr.yml1-56 .github/PULL_REQUEST_TEMPLATE.md1-24

使用拉取请求模板

创建拉取请求时,请使用提供的模板包含必要信息

  1. 拉取请求的作用:

    • 添加资源
    • 移除资源
    • 添加信息
    • 改进仓库
  2. 针对资源:

    • 资源描述
    • 为何有价值
    • 您如何验证它是免费的
    • 确认它属于特定类别
  3. 清单:

    • 阅读贡献指南
    • 搜索重复项
    • 包含作者和平台信息
    • 使用正确的字母顺序
    • 添加必要的说明(PDF、访问备注等)
    • 使用具有信息量的拉取请求名称

来源:.github/PULL_REQUEST_TEMPLATE.md1-24

拉取请求审查流程

提交后,您的拉取请求将经过

  1. 自动化代码检查 - 检查格式、间距和字母顺序
  2. 维护者审查 - 由项目维护者进行手动审查
  3. 反馈和修改 - 如有需要,您将收到要求修改的评论
  4. 合并 - 获得批准后,您的贡献将被合并到仓库中

质量控制系统

该仓库使用多个自动化系统来维护所有资源的质量和一致性。

自动化代码检查

该仓库使用一个名为 free-programming-books-lint 的自定义代码检查工具,它会检查

  • 资源的字母顺序
  • 正确的格式和间距
  • Markdown 语法
  • 与既定指南的一致性

当您提交拉取请求时,GitHub Actions 会自动运行此代码检查工具

  1. .github/workflows/fpb-lint.yml1-36 中定义的工作流会在所有拉取请求上运行
  2. 如果代码检查失败,一个自动化评论将添加到您的拉取请求中,其中包含具体的错误信息
  3. 拉取请求将被标记为“linter error”,直到问题修复

来源:.github/workflows/fpb-lint.yml1-36 .github/workflows/comment-pr.yml1-56

行为准则

所有贡献者都应遵守项目的行为准则,该准则基于贡献者公约。这确保了所有参与者都能在一个相互尊重和包容的环境中进行贡献,无论其经验水平、性别、性别认同、性取向、残疾、外貌、种族、民族、年龄、宗教或国籍如何。

行为准则提供多种语言版本,以便全球贡献者查阅。

来源:README.md42-46 docs/CODE_OF_CONDUCT-mr.md1-29 docs/CODE_OF_CONDUCT-ml.md1-23

翻译贡献

该仓库欢迎将文档翻译成不同语言的贡献。目前,主要文档(CONTRIBUTING、HOWTO、CODE_OF_CONDUCT)已有多种语言版本,但仍缺少一些翻译。

文档可用翻译如何贡献
行为准则30+ 种语言遵循现有翻译的格式
贡献指南25+ 种语言确保技术术语翻译准确
操作指南30+ 种语言保持说明清晰准确

如果您想协助将文档翻译成缺失的语言,请遵循与添加资源相同的拉取请求流程,但重点是准确翻译内容并保持技术含义。

来源:docs/README.md3-146 README.md220-230

成功贡献的最佳实践

为了最大程度地提高您的贡献被接受的可能性

  1. 先搜索 - 使用搜索功能检查资源是否已列出
  2. 严格遵循指南 - 特别注意格式和字母顺序
  3. 提供完整信息 - 包含所有关于资源的必要详细信息
  4. 积极响应 - 及时处理拉取请求上的反馈
  5. 从小处着手 - 如果您是新手,请先从简单的添加开始,再进行较大的贡献
  6. 检查代码检查结果 - 在请求审查之前,检查并修复任何自动化警告

来源:README.md42-58 .github/PULL_REQUEST_TEMPLATE.md13-24