FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • FreeBSD 中文期刊
  • 编辑日志
  • 2025-123 下游项目
    • FreeBSD 发布工程:新主管上任
    • GhostBSD:从易用到挣扎与重生
    • BSD Now 与将来
    • 字符设备驱动教程(第三部分)
    • 学会走路——连接 GPIO 系统
    • FreeBSD 中对 SYN 段的处理
    • FreeBSD 2024 年秋季峰会
  • 2024-1112 虚拟化
    • 字符设备驱动程序教程(第二部分)
    • 面向 Linux 和 Windows 用户的 bhyve
    • Xen 与 FreeBSD
    • Wifibox:一种嵌入式虚拟化无线路由器
    • 嵌入式 FreeBSD:Fabric——起步阶段
    • DGP:一种新的数据包控制方法
    • 会议报告:我在都柏林的 EuroBSDCon 体验
  • 2024-0910 内核开发
    • 字符设备驱动程序教程
    • VPP 移植到了 FreeBSD:基础用法
    • 利用 Kyua 的 Jail 功能提升 FreeBSD 测试套件的并行效率
    • FreeBSD 上的 Valgrind
    • 嵌入式 FreeBSD:探索 bhyve
    • TCP/IP 历险记:FreeBSD TCP 协议栈中的 Pacing
    • 实用软件:实现无纸化(Paperless)
  • 2024-0708 存储与文件系统
    • FreeBSD 中的 NVMe-oF
    • FreeBSD iSCSI 入门
    • 使用 ZFS 原生加密保护数据
    • 嵌入式 FreeBSD:打造自己的镜像
    • TCP LRO 简介
    • 基于 Samba 的时间机器备份
  • 2024-0506 配置管理对决
    • 基本系统中的 mfsBSD
    • rdist
    • Hashicorp Vault
    • 在 GitHub 上向 FreeBSD 提交 PR
    • 悼念 Mike Karels
    • 2024 年 5-6 月来信
    • 嵌入式 FreeBSD 面包板
    • TCP/IP 历险记:TCP BBLog
    • 实用软件:开发定制 Ansible 模块
  • 2024-0304 开发工作流与集成
    • FreeBSD 内核开发工作流程
    • FreeBSD 与 KDE 持续集成(CI)
    • 更现代的内核调试工具
    • 从零开始的 ZFS 镜像及 makefs -t zfs
    • 提升 Git 使用体验
  • 2024-0102 网络(十周年)
    • FreeBSD 中的 RACK 栈和替代 TCP 栈
    • FreeBSD 14 中有关 TCP 的更新
    • if_ovpn 还是 OpenVPN
    • SR-IOV 已成为 FreeBSD 的重要功能
    • FreeBSD 接口 API(IfAPI)
    • BATMAN:更优的可移动热点网络方式
    • 配置自己的 VPN——基于 FreeBSD、Wireguard、IPv6 和广告拦截
    • 实用软件:使用 Zabbix 监控主机
  • 2023-1112 FreeBSD 14.0
    • LinuxBoot:从 Linux 启动 FreeBSD
    • FreeBSD 容器镜像
    • 现在用 Webhook 触发我
    • 新的 Ports 提交者:oel Bodenmann (jbo@freebsd.org)
  • 2023-0910 Port 与软件包
    • 回忆录:与 Warner Losh(@imp)的访谈
    • 在你自己的仓库中定制 Poudriere 源
    • Wazuh 和 MITRE Caldera 在 FreeBSD Jail 中的使用
    • PEP 517
    • CCCamp 2023 旅行报告
  • 2023-0708 容器与云
    • 在 Firecracker 上的 FreeBSD
    • 使用 pot 和 nomad 管理 Jail
    • 会议报告:C 与 BSD 正如拉丁语与我们——一位神学家的旅程
    • 抒怀之旅:与 Doug Rabson 的访谈
    • 基于 Jail 的广告拦截教程
    • 我们收到的来信
  • 2023-0506 FreeBSD 三十周年纪念特刊
    • CheriBSD 近十多年的历程
    • AArch64:成为 FreeBSD 新的一级架构
    • 岁月如梭:我个人的时间线
    • 安装 FreeBSD 1.0:回顾 30 年前
    • ZFS 是如何进入 FreeBSD 的呢?
    • 我不是来自约克郡的,我保证!
    • 回忆录:采访 David Greenman Lawrence
    • FreeBSD 和早期的 Unix 社区
    • 早期的 FreeBSD 移植
    • FreeBSD 30 周年:成功的秘诀
    • FreeBSD 在日本:回忆之旅与今日之实
  • 2023-0304 嵌入式
    • CheriBSD port 和软件包
    • 让我们来试试 ChatGPT
    • GPU 直通
  • 2023-0102 构建 FreEBSD Web 服务器
    • ZFS 的原子 I/O 与 PostgreSQL
    • 虚拟实验室——BSD 编程研讨会
    • ZFS 简介
    • 会议报告:落基山庆祝女性计算机科学家
    • 进行中的工作/征求反馈:数据包批处理
    • 基金会与 FreeBSD 桌面
  • 2022-1112 可观测性和衡量标准
    • 在 FreeBSD 的 DDB 内核调试器中编写自定义命令
    • DTrace:老式跟踪系统的新扩展
    • 基于证书的 Icinga 监控
    • 活动监控脚本(activitymonitor.sh)
    • 实用 IPv6(第四部分)
    • EuroBSDCon 会议报道
    • 实用 Port:Prometheus 的安装与配置
    • 书评:《用火解决问题:管理老化的计算机系统(并为现代系统保驾护航)》Kill It with Fire: Manage Aging Computer Systems (and Future Proof Modern Ones)
  • 2022-0910 安全性
    • CARP 简介
    • 重构内核加密服务框架
    • PAM 小窍门
    • SSH 小窍门
    • 实用 IPv6(第三部分)
    • 书评:Understanding Software Dynamics(深入理解软件性能——一种动态视角)—— Richard L. Sites 著
    • 访谈:保障 FreeBSD 安全性
    • MCH 2022 会议报告
  • 2022-0708 科研、系统与 FreeBSD
    • 在 FreeBSD 上构建 Loom 框架
    • 教授本科生 Unix 课程
    • FreeBSD 入门研讨会
    • 实用 IPv6(第二部分)
    • 在 2022 年及以后推广 FreeBSD
    • 进行中的工作/征求反馈:Socket 缓冲区
    • FreeBSD 开发者峰会报告
    • 支持 Electromagnetic Field 2022
  • 2022-0506 灾难恢复
    • 使用 FreeBSD 构建高弹性的私有云
    • LLDB 14 —— FreeBSD 新调试器
    • 实用 IPv6(第一部分)
    • 利用 netdump(4) 进行事后内核调试
    • 进行中的工作/征求反馈:FreeBSD 启动性能
    • 实用 Port:在 OpenZFS 上设置 NFSv4 文件服务器
  • 2022-0304 ARM64 是一级架构
    • FreeBSD/ARM64 上的数据科学
    • Pinebook Pro 上的 FreeBSD
    • 嵌入式控制器的 ACPI 支持
    • 进行中的工作/征求反馈:Lumina 桌面征集开发人员
    • 实用 Port:如何设置 Apple 时间机器
  • 2022-0102 软件与系统管理
    • 为 FreeBSD Ports 做贡献
    • 使用 Git 贡献到 FreeBSD Ports
    • CBSD:第一部分——生产环境
    • 将 OpenBSD 的 pf syncookie 代码移植到 FreeBSD 的 pf
    • 进行中的工作/征求反馈:mkjail
    • 《编程智慧:编程鬼才的经验和思考》(The Kollected Kode Vicious)书评
    • 会议报告:EuroBSDCon 2021 我的第一次 EuroBSDCon:一位新组织者的视角
  • 2021-1112 存储
    • 开放通道 SSD
    • 构建 FreeBSD 社区
    • 与完美操作系统同行 27 年
    • 进行中的工作/征求反馈:OccamBSD
    • 通过 iSCSI 导入 ZFS ZIL——不要在工作中这样做——就像我做的那样
  • 2021-0910 FreeBSD 开发
    • FreeBSD 代码审查与 git-arc
    • 如何为 FreeBSD 实现简单的 USB 驱动程序
    • 内核开发技巧
    • 程序员编程杂谈
  • 2021-0708 桌面/无线网
    • 通往 FreeBSD 桌面的直线路径
    • FreeBSD 13 中的人机接口设备 (HID) 支持
    • Panfrost 驱动程序
    • 用 Git 更新 FreeBSD
    • FreeBSD 的新面孔
    • 想给你的桌面加点佐料?
  • 2021-0506 安全
    • 七种提升新安装 FreeBSD 安全性的方法
    • copyinout 框架
    • 使用 TLS 改善 NFS 安全性
    • Capsicum 案例研究:Got
    • 对 Jail 进行安全扫描
  • 2021-0304 FreeBSD 13.0
    • 展望未来
    • FreeBSD 13.0 工具链
    • FreeBSD 13.0 中有新加载器吗?
    • TCP Cubic 准备起飞
    • OpenZFS 中的 Zstandard 压缩
    • 会议报告:FreeBSD 供应商峰会
    • Git 不够吗?
  • 2021-0102 案例研究
    • Tarsnap 的 FreeBSD 集群
    • BALLY WULFF
    • Netflix Open Connect
    • FreeBSD 的新面孔
    • 写作学者的 FreeBSD
    • 在世界之巅
  • 2020-1112 工作流/持续集成(CI)
    • FreeBSD Git 快速入门
    • 使用 syzkaller 进行内核 Fuzzing
    • Mastering Vim Quickly 书评
    • 线上会议实用技巧
    • 在控制台上进行网络监控
  • 2020-0910 贡献与入门
    • 采访:Warner Losh,第 2 部分
    • 代码审查
    • 撰写良好的提交消息
    • 如何在不是程序员的情况下做出贡献——成为 FreeBSD 译者
    • 如何成为文档提交者
    • 谷歌编程之夏
    • 为 FreeBSD 期刊撰写文章
    • 你为什么使用 FreeBSD
    • FreeBSD 的新面孔
  • 2020-0708 基准测试/调优
    • FreeBSD Friday
    • 采访:Warner Losh,第 1 部分
    • 构建和运行开源社区
    • 在 FreeBSD 上轻松搭建我的世界(Minecraft)服务器
    • FreeBSD 的新面孔
  • 2020-0506 网络性能
    • 内核中的 TLS 卸载
    • 访谈:Michael W Lucas
    • FreeBSD 桌面发行版
    • 使用 Poudriere 进行 Port 批量管理
    • FreeBSD 的新面孔
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
在GitHub上编辑
导出为 PDF
  1. 2020-0910 贡献与入门

如何成为文档提交者

上一页如何在不是程序员的情况下做出贡献——成为 FreeBSD 译者下一页谷歌编程之夏

最后更新于2个月前

警告

本文译者敬告读者,不要在没有耐心(你的提交经常会被忽略一年或更长时间)或准备的情况下参与任何 FreeBSD 文档工作。这也是《FreeBSD 从入门到跑路》的肇因。

  • 原文链接:

  • 作者:BENEDICT REUSCHLING

FreeBSD 文档集包含了面向用户和开发者的各种手册、常见问题解答、特定主题的文章、位于 src 仓库中的 man 页以及主要的 FreeBSD.org 网站。这是新手向 FreeBSD 项目做出初次贡献的一个很好的途径,并且是许多目前仍活跃的开发者的起点。在阅读我们的文档时,人们经常会发现一些需要修正的地方:从缺少逗号,到单词中的拼写错误,再到整个段落过时需要重写。那些不会只是耸耸肩然后无所谓的人,通常会在我们的 Bugzilla 系统上报告这个问题 [https://bugs.freebsd.org/bugzilla/enter_bug.cgi?product=Documentation] 或者提出补丁来修复问题。虽然后者肯定不是必需的(尤其是对于临时报告和尚不熟悉我们文档工具链的人),但总比后者什么都不做要好。

这不仅仅是发现现有材料中的错误。如果您发现了更简单的做法并能够解释清楚,提交一份包含您工作的 bug 报告。其他人可能会发现我们的手册可以增加更多的图片来帮助说明其中的概念(毕竟,一图胜万语),并可能希望向我们提交他们的草图。更新的截图也属于这一类,并帮助新手通过与自己屏幕上的内容进行对比,确认自己走在正确的道路上。在会议上发放的展示常用 FreeBSD 命令的传单和备忘单也是展示您才华的另一种方式。我提到过我们需要更多的 EXAMPLE 部分在各种用户 man 页面中吗?定期运行链接检查器,检查我们链接的网页,并报告死链(更好的是,找到一个替代位置)。如果您喜欢维基并且在那里进行编辑,加入 Freenode IRC 上的 #freebsd-wiki 组吧。换句话说,让我们惊讶一下(以一种好的方式),并用一些示例展示您对这项工作的认真态度。

无论是什么,文档提交者会接手您的工作(通常是一个补丁或文本描述)并开始处理。如果没有,适当的提醒可能会有所帮助,因为开发者们有很多工作要做。在最简单的情况下(逗号或拼写错误修复),他们会直接修改源代码并提交,您作为原提交者会在提交信息的“提交者:”一行中获得归功。感谢您的贡献,您刚刚让 FreeBSD 文档变得更好!

在其他情况下(当问题变得更复杂或补丁较大时),您也可以在我们的 Phabricator 实例上创建账户 ,并通过这种方式提交补丁(添加文档组或个人作为审阅者)。这使得补丁审阅过程更容易追踪,并能从不同的角度(写作风格、格式等)进行反馈和更新现有补丁。如果您只收到几行反馈,并且这些反馈可能听起来过于苛刻,不要气馁。在大多数情况下,我发现进行审阅的人通常只有几分钟的时间来做这些工作,因此他们的反馈通常简短而直接。如果您不理解我们使用的术语或不知道如何继续进行,不要害怕提问。不要把反馈看得太个人化,因为我们批评的并不是您,而只是代码。我通常会尽量在我的评论中加入一些积极的反馈。“感谢提交补丁”,“好眼力”,“很高兴您花时间报告这个”这类话语可以让提交者感到鼓舞,并愿意将提供的反馈融入他们的代码中,进行下一轮审阅。

随着时间的推移、耐心和一些实践,您将把您的第一个贡献提交到文档树中。感觉不错吧?您可能会把它展示给您的朋友和同事,在社交媒体上发布,甚至从最高的山峰上呐喊出来。我认为人们都渴望在生活中有这样的成功时刻,可以指着某个东西骄傲地说:“看,这就是我干的。”虽然有些人可能会说:“哼,这有什么大不了的”,但请记住,正是基于您的贡献,提交者才接手了这个补丁,并在 FreeBSD 仓库中做出了更改。您已经成为这个有着 30 余年历史的项目的一部分了。而且,这也是一个与人们共同为您关心的事物工作的大好机会。许多人如此喜欢这种体验,以至于他们继续贡献其他补丁。而问题也就从这里开始了……

随着时间的推移,同一个人可能会向文档树提交很多优秀的贡献。从几周内提交大量小补丁,到开创性的、添加大量新材料的工作(以及其中的任何情况)。项目中的人开始注意到这一点。此外,您会认真对待反馈,并以一种建设性和合作的方式与开发者合作。然后,有一天,这种情况发生了:提交者感到烦恼,因为他们正在为您做这些工作,而这些工作您基本上可以自己做。这就是我们所谓的“惩罚”某人并给予提交权限的原因。

文档提交者会创建一个您过去贡献的清单(有些人可能称其为一种特殊形式的“调皮名单”)。这就是为什么我们会在提交信息中的“Submitted by:”字段中收集您的记录。Phabricator 还可以生成您所有审阅互动的漂亮清单。然后,这个清单会被发送到文档工程团队(简称 doceng),该团队负责(除了其他工作外)管理文档提交权限。通常,会附带一份“请让我指导那个人,这样他们可以提交自己的工作,而我可以腾出时间”的请求。该提案会在团队内部进行评估和投票。有时,提交者会组建一个小型小组来更好地覆盖导师和学员之间的不同时间区间(更快的反馈循环)。如果认为有必要,doceng 团队可以选择额外的导师。如果投票结果支持学员,他们会收到通知并获得访问项目资源的权限,必要时可以与文档协作。如果未能授予提交权限,通常会提供反馈,说明缺少的内容(通常是“充实您的贡献记录”),并鼓励在一段时间后再次提出提案。

导师随后会教导新学员所需了解的所有内容:从理解我们的格式规则,如何在手册页发生重大变化时更新 .Dd(文档日期),到他们第一次紧张(通常是手心出汗)的提交。在此过程中,当学员犯错时,导师会提供帮助。指导阶段旨在让学员获得足够的信心,不再犯这些错误,并从导师在项目中积累的丰富经验中学习。学员在社区中的社交互动也是过程的一部分,并且欢迎其他贡献者的反馈(这完成了反馈循环),与社区中的其他成员合作,通常在导师审阅后提交自己提交的补丁。

现代工具如 Phabricator 使得这个过程比通过电子邮件处理要容易得多,虽然电子邮件也能完成这项工作(那是我早期的指导方式),但会花费更多时间。这是一项紧张的工作,但根据我的经验,也是非常有趣的。我见过导师和学员在这个过程中建立了深厚的个人关系,这本身就是一种令人满足的体验。当然,每个学员都不同,但通常我看到的是,导师和学员第一次在会议上见面时,马上就像老朋友一样交谈。

项目中的一些人认为指导不值得花费时间,因为这会剥夺他们自己进行 FreeBSD 工作的时间。虽然这可能是真的,但我发现,我在工作中减少的时间,通过整个项目增加的生产力,多次得到了回报。毕竟,两个人人一起做出更改,而新学员的激情和热情可能会激励您共同进行那项长期拖延的文档更改。指导不是适合每个人,因此没有人被强迫去指导。幸运的是,有足够愿意做这项工作的人员,其中一些人愿意共同指导某人以分担负担。在我的经验中,通常是一个群体在指导学员,而不仅仅是一个人。反馈和鼓励不仅仅来自导师,而是来自更广泛的社区,这鼓励学员逐步拓展自己的网络。我看到过很多曾是我学员的人,他们进入了我不熟悉的项目领域,因为我在该领域的知识有限。但这对整个项目来说是一个极大的好处。

无论如何,指导期可能会持续一段时间,这取决于可用的工作量、时间限制以及学员和导师的参与情况。过了一段时间,导师可能会觉得他们只是批准更改,而不再需要做太多的修正,学员也已学到了所有必要的知识。在学员同意的情况下,他们将被释放,成为与其他人一样的平等文档提交者。我个人在告别信息中鼓励我的前学员,如果他们有任何疑问,继续向我提问。此外,我还会告诉他们尤达的智慧之言:“传承你所学”,意思是当时机来临时,他们应该去指导自己的学员。我曾多次和我的前学员一起指导其他人,看到他们在指导过程中投入了同样的努力。

是不是让你感兴趣了?看看《FreeBSD 文档项目新人指南》。它向你展示了如何检出文档树以及如何对现有文档做出修改。快速入门部分涵盖了这些内容。如果你对手册页的修改感兴趣,它有专门的部分。其他部分涉及格式、格式元素以及如何正确配置你的编辑器,让你的工作更轻松。开始并不难,谁知道随着时间推移,这会引导你走向何方?


BENEDICT REUSCHLING 是 FreeBSD 项目的文档提交者,也是文档工程团队的成员。他还是 FreeBSD 基金会董事会的副主席。在过去,他曾在 FreeBSD 核心团队服务两届。他在德国达姆施塔特应用科技大学管理一个大数据集群。他还为本科生教授《开发者的 Unix》课程。与 Allan Jude 一起,他是每周 bsdnow.tv 播客的主持人。

How to Become a Doc Committer
https://reviews.freebsd.org/
https://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/