Salut @conda-incubator/setup-miniconda-team,
J'ai créé https://github.com/conda-incubator/setup-miniforge pour faciliter le traitement direct de conda forge par défaut.
Mon plan était d'avoir un script mettant à jour les parties qui devaient être mises à jour afin qu'il suive ce référentiel, et que le script s'exécute de temps en temps pour maintenir les choses à jour.
Peut-être y a-t-il une meilleure façon de faire cela.
Les pensées?
Les changements seraient :
Si c'est le cas, je suppose que c'est facile à maintenir avec un petit script, oui. Pour ma part, je préférerais également Miniforge à Miniconda.
Une autre option serait de déprécier installer-url
et miniconda-version
et de les fusionner en une seule clé comme conda-distribution
ou quelque chose comme ça. Cette clé autoriserait les _mots-clés magiques_ tels que "miniconda", "miniforge" ou "anaconda", qui utiliseraient par défaut la dernière URL pour ces programmes d'installation, mais accepterait également les URL directement (par exemple, si les utilisateurs souhaitent utiliser leur constructor
personnalisé
Salut @jaimergp
Donc dans ta liste :
Modification du programme d'installation par défaut de Miniconda afin qu'il pointe plutôt vers les versions de Miniforge
Bien sûr, mais je pense que nous pouvons simplement supprimer les paramètres par défaut (ou les mettre à jour) lorsque les utilisateurs n'installent pas de nouveau miniconda/miniforge depuis. En général, je viens d'utiliser celui fourni (qui a tendance à être plus rapide même avec la mise à jour de conda).
Codage en dur conda-forge+defaults comme configuration de canal par défaut
Ouais on peut faire ça
Rien d'autre?
Hmmm assurez-vous que les scripts remplacent les bonnes choses sur les fichiers readme et conservez peut-être simplement une version V1, V2 (majeure) afin que nous n'ayons pas besoin de recréer les balises.
J'ai l'impression que ne pas rompre le back-compat est important, comme nous l'avons vu. Je dirais que la ligne v2 doit rester avec une valeur par défaut miniconda, tandis que la v3 conviendrait de modifier les valeurs par défaut, sinon le nom. Quoi qu'il en soit, je dirais qu'il n'y a rien de mal à n'avoir que des préfixes, par exemple miniforge-*
et miniconda-*
. De plus, miniforge utilise un schéma d'URL légèrement différent (par exemple pypy) de celui de miniconda, nous aurions donc besoin de gérer tous leurs bits de spécification pour le rendre fluide.
Le travail commencé sur #98 a souligné que nous devions renforcer le jeu « me procurer un installateur », peut-être le déplacer vers un autre dossier avec un fichier par stratégie, par exemple
download/
base.ts
file.ts
custom.ts
miniforge.ts
miniconda.ts
au fur et à mesure que nos architectures, etc. deviendront disjointes.
À cette fin, nous voulons probablement aussi un objet de niveau supérieur et bien typé des entrées d'actions analysées afin que nous ne fassions pas autant de choses sur les chaînes ... la liste géante de paramètres devient fastidieuse et ne peut qu'empirer . Une partie de moi veut tout jeter et faire le schéma d.ts -> JSON, mais nous n'obtiendrions pas de numéros de ligne (utiles), donc une partie de la valeur serait réduite.
Merci pour la contribution @bollwyvl
Le travail commencé sur #98 a souligné que nous devions renforcer le jeu « me procurer un installateur », peut-être le déplacer vers un autre dossier avec un fichier par stratégie, par exemple
J'aime ça, certainement quelque chose à faire!
Après les terres n°126, cela pourrait définitivement avancer. Le travail serait :
action.yml
, par exemple miniforge-version
, etc.input.ts
,only one of miniforge-version and miniconda-version
peut être fournidownload-miniforge.ts
providers
en installer/index.ts
Une fois une bonne chose : c'est d'une simplicité rafraîchissante d'obtenir les 30 dernières versions de miniforge :
https://api.github.com/repos/conda-forge/miniforge/releases
sans avoir à faire de grattage d'URL. Hourra !
Je pense que nous aurons également besoin d'une autre clé, donc par exemple :
use:
miniforge-version: *
miniforge-flavor: Mambaforge-pypy3 # `Miniforge3` default
Au lieu de flavor
nous pourrions avoir variant
ou build
ou même construct
.
Voici un WIP pour ce qui précède (besoin de documents, etc.) :
https://github.com/bollwyvl/setup-miniconda/pull/2
Cela commence à résoudre certains des problèmes liés à l'utilisation de mamba
plus tôt/plus... comme si vous installiez Mambaforge, j'imagine que vous voudriez _utiliser_ mamba
, non ? Ouais, eh bien, JOKE'S ON YOU, il ne prend pas en charge (ou ne délègue de manière transparente) un certain nombre de choses que nous utilisons comme init
. Donc, condaCommand
doit en tenir compte lors de la sélection de la commande appropriée à utiliser, ce qui signifie que vous devez disposer de conda
.
La différence de vitesse semble négligeable pour nos cas de test, mais cela vaut probablement la peine d'être poursuivi... et je ne sais pas comment nous allons gérer la fonctionnalité manquante pour micromamba
...
PR up (avec plus de tests et de documents): https://github.com/conda-incubator/setup-miniconda/pull/133