如何为mathlib做出贡献#

这里有一些提示和技巧使贡献过程尽可能顺利。

一旦你有了想要贡献的代码,你应该打开一个PR。

使用mathlib#

我们使用吉特管理和版本控制马特里布.这个主人branch是mathlib的“生产”版本。重要的是,主分支中的所有内容编译时都没有错误,并且没有对不起的第条。为了确保这一点,我们只将更改提交给主人已经通过自动化持续集成(“CI”)测试,并且已经得到mathlib维护人员的批准。

当你为马特里布,您应该在其他分支上执行此操作。你可以在自己的叉子里做这件事马特里布储存库,或者您可以在Zulip上介绍自己,并请求对非-主人mathlib存储库的分支,你可以选择制作自己的线程介绍自己,或要求进入这个主题.请在您的请求中包含您的GitHub用户名(并使用个人设置面板将此用户名添加到您的Zulip配置文件中)。有礼貌的做法是在分支名称前面加上用户名,这样我们就更容易清理混乱。(一旦您发出拉取请求,我们将要求您从mathlib存储库的一个分支进行请求,而不是从你自己的分叉,因为CI这样做效果更好。)

典型工作流程:

发出拉取请求(PR)#

一旦您对本地更改感到满意,就可以提出请求了。

公关的生命周期#

我们使用GitHub“标签”来管理审查。(标签只能由“GitHub合作者”编辑,这与“请求写访问权限的人”大致相同。)

在PR的主页面右侧,应该有一个带有面板“审阅者”、“受让人”、“标签”等的侧栏。单击“标签”标题以在当前项目中添加或删除标签。

最重要的标签是“等待评论”和“等待作者”。如果你的公共关系建立(有一个绿色复选标记),并且你用“等待审查”,可能有人会在几天内“审查”它(取决于公关的规模;较小的公关会得到更快的回应)。审阅者可能会留下评论并将标签更改为“等待作者”。您应该解决每个评论,在问题解决后单击“解决对话”按钮。理想情况下,每个问题都可以通过新的提交来解决,但这里没有硬性规定。一旦实现了所有请求的更改,您应该将标签更改回“等待审阅”以重新开始该过程。

经过一些迭代后,审阅者将“批准”请购单,“准备合并”标签将自动应用于请购单博尔斯将从这里取走它。(参见在这里有关bor的更多详细信息。)在对bors做出适当回应(如有必要)后,PR将被添加到“合并队列”。合并队列会自动清除,但这需要一定的时间,因为它需要构建mathlib的分支。

以下是一些其他常用标签:

处理合并冲突#

由于多人并行处理mathlib,因此可能有人对主人这与你在公关上提议的改变相冲突。如果你的公关发生了这种情况,请检查本GitHub教程如何使用联机工具解决合并冲突。