Setup-miniconda: Configuración-miniforge

Creado en 24 sept. 2020  ·  9Comentarios  ·  Fuente: conda-incubator/setup-miniconda

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?

question

Todos 9 comentarios

Los cambios serían:

  • Cambiar el instalador predeterminado de Miniconda para que apunte a las versiones de Miniforge en su lugar
  • Codificación de los valores predeterminados de conda-forge + como configuración de canal predeterminada
  • ¿Algo más?

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:

  • decidir sobre un esquema action.yml , por ejemplo, miniforge-version , etc.
  • tal vez agregue algunos cheques nuevos a input.ts ,

    • por ejemplo, se puede proporcionar only one of miniforge-version and miniconda-version

  • un nuevo archivo download-miniforge.ts

    • (inicialmente) un trabajo de copia-pasta de download-miniconda.ts

    • sin duda hay formas de reutilizar código entre los dos archivos, aunque, por ejemplo, tienen arquitecturas diferentes, etc.

  • agregar a providers en installer/index.ts

    • el orden sigue siendo bastante explícito, por lo que _realmente_ no importa a dónde vaya

  • prueba

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

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

magland picture magland  ·  4Comentarios

tdegeus picture tdegeus  ·  11Comentarios

bollwyvl picture bollwyvl  ·  12Comentarios

mrmundt picture mrmundt  ·  12Comentarios

goanpeca picture goanpeca  ·  9Comentarios