1

我维护一个名为switch_model的 conda-forge 包。在我们的上一个版本 ( 2.0.5) 之后,我们依赖的一个包进行了不兼容的更改。因此,我正在尝试发布一个2.0.5.post2需要该软件包的旧版本的发布后版本。

我已经设法在PyPi上创建发布后版本,并且可以使用pip. 我还更新了我meta.yaml的食谱并将其推送到 github(https://github.com/conda-forge/switch_model-feedstock/blob/master/recipe/meta.yaml)。

现在,位于https://anaconda.org/conda-forge/switch_modelconda-forge的网站将最新版本标识为. 但是当我尝试使用 安装到我的计算机时,它说它将安装旧版本。如果我尝试,我会收到一条消息,指出它找不到。但是,如果我使用,它会安装最新版本 ( )。2.0.5.post2conda install -c conda-forge switch_model2.0.5conda install -c conda-forge switch_model=2.0.5.post2conda install -c conda-forge/label/main switch_model2.0.5.post2

就目前情况而言,新版本在 conda-forge 上,但是尝试安装我的包的人仍然会得到具有错误依赖项的旧版本,并且无法正常工作。

有谁知道如何conda自动安装发布后版本?我可能需要将switch_model-feedstock存储库分叉到我在 github 上的个人帐户中,然后向 conda-forge 帐户发出拉取请求。但是我不确定这是否会有所作为(我认为我没有为原始的 2.0.5 版本这样做),而且我不确定我将如何追溯,因为我已经推动了新版本meta.yaml进入 conda-forge 版本的存储库。

更新

当我写完这个问题时,该2.0.5.post2版本现在默认安装。所以我可能只需要等到交付系统发生某些事情。所以我现在的问题是,我可以做些什么来测试新版本的软件包很快可供用户使用(例如,清除一些可用版本的缓存)?如果我通过来自另一个存储库的拉取请求而不是直接推送到 conda-forge 版本来更新包,会有所不同吗?

4

1 回答 1

0

当我写完这个问题时,现在默认安装的是 2.0.5.post2 版本。所以我可能只需要等到交付系统发生某些事情。

软件包可能需要一些时间(约 1 小时)才能通过 实际安装conda,即使它们出现在 anaconda.org 上也是如此。

所以我现在的问题是,我可以做些什么来测试新版本的软件包是否很快可供用户使用(例如,清除一些可用版本的缓存)?

不完全确定这里问的是什么

  • 如果您询问是否可以强制用户更新他们的版本,不可以。
  • 如果您希望确保构建没有被破坏,您可以在构建过程中运行它的测试:https ://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#test -命令
  • 如果您担心的是它看似在线与 Anaconda 的服务器实际上通过 将其交付给用户之间存在差异,那conda不是真的。一旦构建通过了 conda-forge 机器人所做的所有状态检查,那么以后用户无法使用它的原因就很少了。

如果我通过来自另一个存储库的拉取请求而不是直接推送到 conda-forge 版本来更新包,它会有所不同吗?

不,一般来说,只要有可能,最好留在conda-forge已经建成的基础设施内。

于 2020-10-17T19:04:41.027 回答