贡献 conda-build#

新问题#

如果你的问题是关于以下内容的错误报告或功能请求:

行为准则#

conda 组织遵守 NumFOCUS 行为准则

贡献#

欢迎随时贡献 conda-build!请 fork conda/conda-build 仓库,并提交拉取请求 (PR)。

如果 PR 正在进行中,请在标题中添加 [WIP]。贡献需要通过 flake8 检查以及在 GitHub Actions Pipeline 上运行的测试套件。贡献者还需要签署我们的贡献者许可协议

设置你的环境#

设置你的开发/测试环境有两种方法。第一种是重用你的基础环境;这可能是最简单的选择,但存在破坏 conda/conda-build 的风险。第二种选择是创建一个开发环境,我们在其中安装 conda/conda-build,这不会影响安装在你的基础环境中的 conda/conda-build 的功能。

使用基础环境:#

    # activate/install into base env
    $ conda activate base
    (base) $ conda install --file tests/requirements.txt --channel defaults

    # run tests
    (base) $ pytest

    # install as editable so you can play around with it
    (base) $ pip install -e .
    (base) $ conda-build --version
    conda-build 3.21.5+17.gcde7b306

创建开发环境:#

    # create/activate standalone dev env
    $ ENV_NAME=conda-build make setup
    $ conda activate conda-build

    # Run all tests on Linux and Mac OS X systems (this can take a long time)
    (conda-build) $ make test

    # install as editable so you can play around with it
    (conda-build) $ pip install -e .
    (conda-build) $ conda-build --version
    conda-build 3.21.5+17.gcde7b306

测试#

按照上面的安装说明正确设置你的测试环境。

测试套件使用 pytest 运行。以下是在 conda-build 根文件夹中运行特定测试的一些有用命令

运行所有测试:#

    # On Linux and Mac OS X
    make test

运行一个测试文件:#

    pytest tests/test_api_build.py

运行一个测试函数:#

    pytest tests/test_api_build.py::test_early_abort

运行一个参数化测试函数的一个参数:#

一些测试是参数化的,用于运行一些小的更改,或构建多个配方文件夹。要仅选择其中一个:

    pytest tests/test_api_build.py::test_recipe_builds.py[entry_points]

请注意,我们的测试广泛使用 pytest fixtures。这些有时会使 IDE 样式检查器对未使用或重新定义的变量发出警告。这些警告可以安全地忽略。

发布#

conda-build 的发布可以通过 rever 命令执行。Rever 被配置为执行典型 conda-build 发布的活动。要进行发布,只需运行 rever <X.Y.Z>,其中 <X.Y.Z> 是你要升级到的发布版本号。例如,rever 1.2.3。但是,最好始终确保你拥有在任何地方执行发布的权限。因此,习惯上在发布之前运行 rever check 以确保。标准工作流程如下

    rever check
    rever 1.2.3

如果由于某种原因发布中途失败,或者你想撤回已进行的发布,rever 允许你撤消活动。如果你发现自己处于这种困境,你可以将 --undo 选项传递一个逗号分隔的活动列表,你想撤消这些活动。例如

    rever --undo tag,changelog,authors 1.2.3

发布愉快!