为 conda-build
做贡献#
新问题#
如果您的问题是针对
**特定 conda 包** 的错误报告或功能请求:请在 ContinuumIO/anaconda-issues#issues 中提交。
**anaconda.org**:请在 https://anaconda.org/contact/report 中提交。
**repo.anaconda.com**:请在 ContinuumIO/anaconda-issues#issues 中提交。
**
conda env
下的所有命令以及其他所有 conda 命令**:请在 conda/conda#issues 中提交。
行为准则#
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
祝您发布愉快!