Hola @ conda-incubator / setup-miniconda-team,
Creé https://github.com/conda-incubator/setup-miniforge como una conveniencia para tratar directamente con conda forge en los valores predeterminados.
Mi plan era tener un script que actualizara las partes que necesitaban actualizarse para que siguiera este repositorio, y que el script se ejecutara de vez en cuando para mantener las cosas actualizadas.
Quizás haya una mejor manera de hacer esto.
¿Pensamientos?
Los cambios serían:
Si ese es el caso, supongo que es fácil de mantener con un pequeño guión, sí. Por mi parte, también preferiría Miniforge a Miniconda.
Otra opción sería desaprobar installer-url
y miniconda-version
y fusionarlos en una sola clave como conda-distribution
o algo así. Esta clave permitiría _palabras clave mágicas_ como "miniconda", "miniforge" o "anaconda", que por defecto sería la URL más reciente para esos instaladores, pero también aceptaría URLs directamente (por ejemplo, si los usuarios quieren usar sus constructor
personalizados
Hola @jaimergp
Entonces de tu lista:
Cambiar el instalador predeterminado de Miniconda para que apunte a las versiones de Miniforge en su lugar
Claro, pero creo que en realidad podemos eliminar los valores predeterminados predeterminados (o actualizarlos) cuando los usuarios no estén instalando una nueva miniconda / miniforge desde entonces. Por lo general, solo usé el incluido (que tiende a ser más rápido incluso con la actualización de conda).
Codificación de los valores predeterminados de conda-forge + como configuración de canal predeterminada
Sí, podemos hacer eso
¿Algo más?
Mmmm, asegúrese de que los scripts reemplacen las cosas correctas en los archivos Léame y tal vez solo mantengan una versión V1, V2 (principal) para que no necesitemos volver a crear etiquetas.
Siento que no romper la compatibilidad con versiones anteriores es importante, como hemos visto. Yo diría que la línea v2 debe permanecer con un valor predeterminado de miniconda, mientras que v3 estaría bien para cambiar los valores predeterminados, si no el nombre. De cualquier manera, diría que está bien tener prefijos, por ejemplo, miniforge-*
y miniconda-*
. Además, miniforge usa un esquema de URL ligeramente diferente (por ejemplo, pypy) que miniconda, por lo que tendríamos que manejar todos sus bits de especificaciones para que se sienta suave.
El trabajo que comenzó en el n. ° 98 señaló que necesitamos reforzar el juego "consígueme un instalador", tal vez moverlo a otra carpeta con un archivo por estrategia, por ejemplo
download/
base.ts
file.ts
custom.ts
miniforge.ts
miniconda.ts
a medida que nuestras arquitecturas, etc. se volverán inconexas.
Para _ ese_ fin, probablemente también queremos un objeto de alto nivel, bien escrito de las entradas de acciones analizadas para que no estemos haciendo tantas cosas de cadenas ... la lista gigante de parámetros se está volviendo tediosa y solo puede empeorar . Una parte de mí quiere tirarlo todo y hacer lo d.ts -> esquema JSON, pero no obtendríamos números de línea (útiles), por lo que parte del valor se reduciría.
Gracias por la entrada @bollwyvl
El trabajo que comenzó en el n. ° 98 señaló que necesitamos reforzar el juego "consígueme un instalador", tal vez moverlo a otra carpeta con un archivo por estrategia, por ejemplo
¡Me gusta esto, definitivamente algo que hacer!
Después de las tierras número 126, esto definitivamente podría avanzar. El trabajo sería:
action.yml
, por ejemplo, miniforge-version
, etc.input.ts
,only one of miniforge-version and miniconda-version
download-miniforge.ts
providers
en installer/index.ts
Una vez algo bueno: es refrescantemente simple obtener los últimos 30 lanzamientos de miniforge:
https://api.github.com/repos/conda-forge/miniforge/releases
sin tener que hacer raspado de URL. ¡Hurra!
Creo que también necesitaremos otra clave, por ejemplo:
use:
miniforge-version: *
miniforge-flavor: Mambaforge-pypy3 # `Miniforge3` default
En lugar de flavor
podríamos tener variant
o build
o incluso construct
.
Aquí hay un WIP para lo anterior (necesita documentos, etc.):
https://github.com/bollwyvl/setup-miniconda/pull/2
Esto comienza a abordar algunos de los problemas al usar mamba
antes / más ... como si estuviera instalando Mambaforge, me imagino que querría _use_ mamba
, ¿no? Sí, bueno, JOKE'S ON YOU, no admite (o delega de forma transparente) una serie de cosas que usamos como init
. Entonces condaCommand
tiene que tener eso en cuenta al seleccionar el comando adecuado para usar, y significa que debe tener conda
alrededor.
La diferencia de velocidad parece insignificante para nuestros casos de prueba, pero probablemente valga la pena seguirla ... y no sé cómo manejaremos la funcionalidad faltante por micromamba
...
PR arriba (con más pruebas y documentos): https://github.com/conda-incubator/setup-miniconda/pull/133