conda-build 做贡献#

新问题#

如果您的问题是针对

行为准则#

conda 组织遵守 NumFOCUS 行为准则

贡献#

我们始终欢迎您为 conda-build 做贡献!请为 conda/conda-build 仓库创建分支,然后提交拉取请求(PR)。

如果 PR 处于开发阶段,请在标题中加上 [WIP]。预计贡献将通过 flake8 测试,并在 GitHub Actions 管道中运行测试套件。贡献者还需要签署我们的 贡献者许可协议

设置您的环境#

有两种方法可以为开发/测试设置您的环境。第一种是重用您的基本环境;这可能是最简单的选择,但存在可能破坏 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 固定装置。这些有时会触发 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

祝您发布愉快!