Setup-miniconda: 设置-miniforge

创建于 2020-09-24  ·  9评论  ·  资料来源: conda-incubator/setup-miniconda

嗨@conda-incubator/setup-miniconda-team,

我创建了https://github.com/conda-incubator/setup-miniforge以方便直接处理默认值的 conda forge。

我的计划是让一个脚本更新需要更新的部分,这样它就会遵循这个 repo,并且让脚本不时运行以保持更新。

也许有更好的方法来做到这一点。

想法?

question

所有9条评论

变化将是:

  • 更改默认的 Miniconda 安装程序,使其指向 Miniforge 版本
  • 硬编码 conda-forge+defaults 作为默认通道配置
  • 还要别的吗?

如果是这样的话,我想用一个小脚本很容易维护,是的。 我个人更喜欢 Miniforge 而不是 Miniconda。

另一种选择是弃用installer-urlminiconda-version并将它们合并到一个键中,例如conda-distribution或类似的东西。 此键将允许使用 _magic 关键字_,例如“miniconda”、“miniforge”或“anaconda”,默认为这些安装程序的最新 URL,但也可以直接接受 URL(例如,如果用户想要使用他们的自定义constructor派生的安装程序)。

@jaimergp

所以从你的列表中:

更改默认的 Miniconda 安装程序,使其指向 Miniforge 版本

当然,但我认为当用户没有安装新的 miniconda/miniforge 时,我们实际上可以删除默认的默认值(或更新它们)。 我通常只使用捆绑的(即使更新 conda 也会更快)。

硬编码 conda-forge+defaults 作为默认通道配置

是的,我们可以做到

还要别的吗?

嗯,确保脚本替换自述文件中的正确内容,并且可能只维护 V1、V2(主要)版本,因此我们不需要重新创建标签。

正如我们所见,我觉得不破坏 back-compat 很重要。 我会说 v2 行需要保留 miniconda 默认值,而 v3 可以更改默认值,如果不是名称。 无论哪种方式,我都会说只有前缀完全没问题,例如miniforge-*miniconda-* 。 此外,miniforge 使用与 miniconda 略有不同的 URL 方案(例如 pypy),因此我们需要处理它们的所有规范位以使其感觉流畅。

开始于 #98 的工作指出我们需要加强“给我一个安装程序”游戏,也许将它移动到另一个文件夹,每个策略都有一个文件,例如

download/
  base.ts
  file.ts
  custom.ts
  miniforge.ts
  miniconda.ts

因为我们的架构等将变得不相交。

为此,我们可能还需要一个更高级别的、类型良好的解析动作输入对象,这样我们就不会做那么多的字符串事情……庞大的参数列表越来越烦人,只会变得更糟. 我的一部分想把它全部扔掉,做 d.ts -> JSON 模式的事情,但我们不会得到(有用的)行号,所以一些价值会减少。

感谢您的输入@bollwyvl

开始于 #98 的工作指出我们需要加强“给我一个安装程序”游戏,也许将它移动到另一个文件夹,每个策略都有一个文件,例如

我喜欢这个,绝对有事可做!

#126落地后,这绝对可以继续前进。 工作将是:

  • 决定action.yml方案,例如miniforge-version等。
  • 也许添加一些新的检查input.ts

    • 例如only one of miniforge-version and miniconda-version可以提供

  • 一个新文件download-miniforge.ts

    • (最初) download-miniconda.ts的复制

    • 毫无疑问,有多种方法可以在两个文件之间重用代码,但例如,它们具有不同的体系结构等。

  • 添加到providers中的installer/index.ts

    • 排序仍然很明确,所以它去哪里并不_真的_重要

  • 测试

曾经的好事:获得最新的 30 个 miniforge 版本非常简单:

https://api.github.com/repos/conda-forge/miniforge/releases

无需进行 URL 抓取。 万岁!

我认为我们还需要另一个密钥,例如:

use:
  miniforge-version: *
  miniforge-flavor: Mambaforge-pypy3  # `Miniforge3` default 

我们可以用variantbuild甚至construct代替flavor construct

这是上述的 WIP(需要文档等):

https://github.com/bollwyvl/setup-miniconda/pull/2

这开始解决之前/更多使用mamba一些问题......就像你正在安装 Mambaforge,我想你会想要 _use_ mamba ,不是吗? 是的,好吧,笑话在你身上,它不支持(或透明地委托)我们使用的许多东西,比如init 。 所以condaCommand在选择要使用的正确命令时必须考虑到这一点,这意味着你必须有conda

对于我们的测试用例来说,速度差异看起来可以忽略不计,但它可能仍然值得追求......我不知道我们将如何处理micromamba缺失的功能......

PR up(有更多测试和文档): https :

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

bollwyvl picture bollwyvl  ·  12评论

bradyrx picture bradyrx  ·  11评论

tdegeus picture tdegeus  ·  11评论

ma-sadeghi picture ma-sadeghi  ·  9评论

magland picture magland  ·  4评论