审查拉取请求#

使用工作流功能#

审查拉取请求时,请根据需要使用 Github 上的工作流跟踪功能。

  1. 完成审查后,并希望提交者进行更改

    • 将您的审查状态更改为“需要更改”。

      这可以在 Github、PR 页面、Files changed 选项卡、Review changes(右上角按钮)上完成。

    • 或者:添加 needs-work 标签。

      这可以在 PR 页面、右侧的 Labels 菜单上完成。

  2. 当您再次审查同一个拉取请求,并希望请求更多更改时

    • 再次执行“需要更改”操作,即使之前状态也是“需要更改”。

    • 或者:删除现有的 needs-work 标签,然后重新添加该标签。(Github 会在页面上添加一个通知,说明您已执行此操作。)

  3. 如果您对当前状态感到满意

    • 将拉取请求标记为已批准(与请求更改的方式相同)。

    • 或者:删除 needs-work 标签。

    • 或者(对于核心开发人员):合并拉取请求,如果您认为它已准备好合并。

这允许自动跟踪哪些 PR 需要关注。

审查状态列在:https://pav.iki.fi/scipy-needs-work/ 该页面也可以使用 pv/github-needs-work 生成

一些信息也直接在 Github 上可见,尽管(截至 2019 年 8 月)Github 不会显示自上次审查以来哪些拉取请求已更新。

来自拉取请求的代码#

当您审查其他人创建的拉取请求时,在自己的机器上拥有他们代码的副本非常有用,这样您就可以在本地玩弄它。

一种方法是安装 GitHub CLI,然后在终端中导航到 SciPy 根目录并输入

gh pr checkout PULL_REQUEST_ID

其中 PULL_REQUEST_ID 是与拉取请求相对应的五位数字(例如 10286 对应于 PR #10286)。这会立即将拉取请求检出到一个分支,其名称与 PR 作者使用的名称匹配。

假设您按照 从源代码构建 设置了开发环境,您现在可以激活您的开发环境

conda activate scipy-dev

构建代码并测试它

python dev.py test -v

如果您从 IPython 中 import SciPy(使用 python dev.py ipython 启动它),您将导入作者修改版本的 SciPy。

如果您想与作者合作完成他们的 PR,您可能希望为作者的 SciPy 分支设置一个新的远程仓库

git remote add REMOTE_NAME https://github.com/AUTHOR/scipy.git

其中 AUTHOR 是作者的 GitHub 用户名,而 REMOTE_NAME 是您想用来引用此作者的存储库的任何名称。

从那里,您可以查看作者的分支

git remote show REMOTE_NAME

并根据其中一个创建您自己的分支

git checkout --track REMOTE_NAME/BRANCH_NAME

其中 BRANCH_NAME 是您要从中开始的分支的名称。这将在您的本地存储库中创建该分支的副本(具有相同的名称)。如果您对该分支进行更改并推送到您的 GitHub 存储库 (origin),那么您可以创建一个拉取请求,将您的更改与作者的存储库合并。