拉取请求步骤详解#

为 PyMC 贡献的首选工作流程是 fork GitHub 仓库,将其克隆到您的本地机器,并在一个功能分支上进行开发。

步骤#

  1. 阅读 代码贡献礼仪

  2. 通过点击主仓库页面右上角的’Fork’按钮,分叉 项目仓库。这将创建一份代码副本到你的GitHub用户账户下。

  3. 将您在 GitHub 账户上的 PyMC 仓库分支克隆到本地磁盘,并将基础仓库添加为远程仓库:

    git clone git@github.com:<your GitHub handle>/pymc.git
    cd pymc
    git remote add upstream git@github.com:pymc-devs/pymc.git
    
  4. 创建一个 feature 分支来保存你的开发更改:

    git checkout -b my-feature
    

    注意

    始终使用 feature 分支。在任何仓库的 main 分支上常规工作从来都不是一个好的做法。

  5. 项目需求在 requirements.txt 中,用于开发的库在 requirements-dev.txt 中。设置开发环境最简单(也是推荐的)方式是通过 miniconda

    conda env create -f conda-envs/environment-dev.yml
    
    conda env create -f .\conda-envs\windows-environment-dev.yml
    
    conda env create -f conda-envs/windows-environment-dev.yml
    
    conda activate pymc-dev
    pip install -e .
    

    或者 你可以在(可能在一个 虚拟环境 中)运行:

    pip install -e .
    pip install -r requirements-dev.txt
    
  1. 在您的特性分支上开发该特性。

    git checkout my-feature   # no -b flag because the branch is already created
    
  2. 在提交之前,运行 pre-commit 检查。

    pip install pre-commit
    pre-commit run --all      # 👈 to run it manually
    pre-commit install        # 👈 to run it automatically before each commit
    
  3. 使用 git add 添加更改的文件,然后使用 git commit 提交文件:

    $ git add modified_files
    $ git commit
    

    在本地记录您的更改。

  4. 提交后,与基础仓库同步是一个好主意,以防有任何更改:

    git fetch upstream
    git rebase upstream/main
    

    然后使用以下命令将更改推送到您GitHub账户中的分支:

    git push -u origin my-feature
    
  5. 转到您在 GitHub 上的 PyMC 仓库分支页面。点击 ‘Pull request’ 按钮将您的更改发送给项目维护者进行审核。这将向提交者发送通知。

    小技巧

    现在你的PR已经准备好了,阅读 拉取请求检查清单 以确保它遵循最佳实践。