如何指定 conda 构建包的来源(git 分支)

How to specify the source (git branch) of a conda build package

我创建了一个构建成功的 conda 包,我可以用 conda 安装它。我正在使用 versioneer 自动生成我的版本号。我的项目在一个有多个分支的 git 存储库中。

我的问题是,当我想安装软件包时,conda 将安装最后构建的版本(无论分支),而我希望它默认安装分支 Master 的最新版本。 我的解决方法是手动指定我想要的版本的版本号。

有没有办法用 versioneer 生成版本号,使 conda install 优先安装 branch master 的最后一个构建版本?或者,有没有办法指定 conda 分支以获取最新版本?

谢谢

与其改变版本,我建议研究将分支信息编码为 the build string or the label/subdirectory。对我来说,这些似乎在语义上更符合情况。

构建变体

对于前者,这可以通过定义一个包含一些与 Git 分支协调的 jinja 模板变量的构建字符串来明确完成,或者通过 conda_build_config.yaml 中定义的变体自动完成。如果你得到这个工作,那么从分支 foo 安装构建将是这样的:

conda install my_package=*=*foo

我不知道这方面的简单示例,但 Conda Forge blas-feedstock 使用 a conda_build_config.yaml to define the set of blas_impl options, which is then used to define build strings on the various outputs in meta.yaml.

存储库标签

对于后者,我只知道 Anaconda 云托管(您可能不会使用它)。在这种情况下,添加一个标签(子目录):

anaconda upload -l foo my_package.tar.gz

如果你走这条路,那么从分支 foo 安装构建会是这样的:

conda install channel/foo::my_package

其中“channel”是您上传到的频道。