Setup-miniconda: セットアップ-miniforge

作成日 2020年09月24日  ·  9コメント  ·  ソース: conda-incubator/setup-miniconda

こんにちは@ conda-incubator / setup-miniconda-team、

デフォルトでcondaforgeを直接処理するための便利さとして、 https://github.com/conda-incubator/setup-miniforgeを作成しました。

私の計画は、このリポジトリに従うように、更新が必要な部分をスクリプトで更新し、スクリプトを時々実行して、更新を維持することでした。

たぶん、これを行うためのより良い方法があります。

考え?

question

全てのコメント9件

変更は次のようになります。

  • 代わりにMiniforgeリリースを指すようにデフォルトのMinicondaインストーラーを変更する
  • デフォルトのチャネル構成としてconda-forge + defaultsをハードコーディングする
  • 他に何か?

そうだとすれば、小さなスクリプトで簡単に保守できると思います。 私は、MinicondaよりもMiniforgeの方が好きです。

もう1つのオプションは、 installer-urlminiconda-versionを非推奨にし、それらをconda-distributionなどの単一のキーにマージすることです。 このキーを使用すると、「miniconda」、「miniforge」、「anaconda」などの_magicキーワード_が許可されます。これらのキーワードは、デフォルトでこれらのインストーラーの最新のURLになりますが、URLを直接受け入れることもできます(たとえば、ユーザーがカスタムconstructorを使用する場合)。

こんにちは@jaimergp

だからあなたのリストから:

代わりにMiniforgeリリースを指すようにデフォルトのMinicondaインストーラーを変更する

もちろんですが、それ以降、ユーザーが新しいminiconda / miniforgeをインストールしていない場合は、実際にはデフォルトのデフォルトを削除(または更新)できると思います。 私は通常、バンドルされているものを使用しました(これは、condaを更新しても高速になる傾向があります)。

デフォルトのチャネル構成としてconda-forge + defaultsをハードコーディングする

うん、それはできる

他に何か?

うーん、スクリプトがreadmeの正しいものを置き換えることを確認し、タグを再作成する必要がないように、V1、V2(メジャー)バージョンを維持するだけかもしれません。

これまで見てきたように、バックコンパットを壊さないことが重要だと感じています。 名前ではないにしても、v2の行はミニコンダのデフォルトのままにする必要がありますが、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

    • (最初は)ダウンロードのコピーパスタジョブ

    • 2つのファイル間でコードを再利用する方法があることは間違いありませんが、たとえば、アーキテクチャは異なります。

  • installer/index.ts providersに追加

    • 順序はまだ非常に明確なので、どこに行くかは_本当に_重要ではありません

  • テスト

かつては素晴らしいことでした。miniforgeの最新の30リリースを入手するのはとても簡単です。

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

URLスクレイピングを行う必要はありません。 やったー!

別のキーも必要になると思います。たとえば、次のようになります。

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

flavor代わりに、 variantまたはbuild 、さらにはconstructます。

上記のWIPは次のとおりです(ドキュメントなどが必要です)。

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

これにより、 mamba以前/もっと使用する際の問題のいくつかに対処し始めます... Mambaforgeをインストールするかのように、 mambaを_使用したいと思いますか? ええ、まあ、JOKE'S ON YOU、 initような私たちが使用する多くのものをサポート(または透過的に委任)していません。 したがって、 condaCommandは、使用する適切なコマンドを選択するときにそれを考慮に入れる必要があります。つまり、 condaを用意する必要があります。

テストケースでは速度の違いはごくわずかに見えますが、それでも追求する価値はあります...そしてmicromambaの不足している機能をどのように処理するかはわかりません...

PRアップ(より多くのテストとドキュメントを含む): https

このページは役に立ちましたか?
0 / 5 - 0 評価