3 puntos por GN⁺ 2024-12-09 | 1 comentarios | Compartir por WhatsApp

¿Qué es mise?

  • mise es una herramienta para gestionar diversas herramientas de desarrollo como node, python, cmake y terraform, de forma similar a asdf, nvm y pyenv
  • Gestiona variables de entorno por directorio de proyecto, de manera similar a direnv
  • Gestiona tareas usadas para el build y las pruebas del proyecto, de forma similar a make

Demo de 30 segundos

  • Muestra cómo usar mise para instalar distintas versiones de node
  • Al ejecutar el comando which node, se devuelve la ruta real, y no un shim

Inicio rápido

  • Cómo instalar mise:
    • $ curl https://mise.run | sh
    • Puedes verificar la versión instalada con el comando $ ~/.local/bin/mise --version
  • Instalar una versión específica:
    • $ curl https://mise.run | MISE_VERSION=v2024.5.16 sh
    • Puedes verificar la versión instalada con el comando $ ~/.local/bin/mise --version
  • Conectar mise al shell:
    • bash: echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
    • zsh: echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
    • fish: echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish
  • Instalar un runtime y establecer el valor predeterminado global:
    • $ mise use --global node@20
    • Puedes verificar la versión con el comando $ node -v

Documentación completa

  • La documentación completa está disponible en mise.jdx.dev

1 comentarios

 
GN⁺ 2024-12-09
Opiniones de Hacker News
  • Cuando empecé a usar mise, me dejó satisfecho porque compensaba las desventajas de asdf y al mismo tiempo ofrecía una configuración de shell rápida y menos invasiva

    • Se volvió todavía más útil con la incorporación de Task Running y Env Vars
    • Me impresionó que el desarrollador invirtiera mucho tiempo en mantener la compatibilidad con las herramientas existentes mientras construía funciones para el futuro
    • Recientemente, gracias a las funciones de backend, se volvió conveniente instalar fácilmente las herramientas de desarrollo necesarias
  • Me cambié a Mise para gestionar JS, Ruby, Python y Java SDK, y quedé satisfecho

    • Se sintió refrescante no tener que instalar RVM, NVM, herramientas de instalación de Python, etc.
  • Estamos usando mise para unificar la cadena de herramientas del equipo, y no usamos Docker ni Nix

    • Docker se sigue usando para ejecutar servicios, pero la experiencia de usuario de mise es excelente
    • Es cómodo que se haya añadido autocompletado a todos los scripts de los repositorios
  • Si intentas hacerlo todo, es muy probable que no hagas nada realmente bien

    • La mayoría de la gente no entiende a fondo los problemas de empaquetado de un ecosistema
    • Los desarrolladores tienen que saber muchas cosas, pero en la práctica no es más que un wrapper sobre herramientas existentes
  • Como no soy desarrollador, no entiendo los casos de uso de este tipo de herramientas

    • Uso asdf para gestionar todas las versiones de los programas en un monorepo; la UX no es muy buena, pero es confiable
    • En lugar de cargar variables de entorno en la sesión actual del shell, uso scripts o Makefiles para cargar las variables necesarias y ejecutar tareas
    • Uso Make para ejecutar pequeños comandos repetibles por directorio, paralelizar comandos o ejecutarlos en secuencia
    • Uso scripts de shell para crear herramientas un poco más largas o complejas que un target de Make
    • Todo el entorno se puede gestionar con solo instalar asdf; todo está automatizado y las versiones quedan fijas
  • Uso mise para gestionar versiones de Go; es un poco confuso y la documentación es escasa, pero está bien

    • Como nunca he usado asdf ni herramientas similares, puede haber una curva de aprendizaje
  • Uso mise como reemplazo de asdf y me ha dejado satisfecho

    • Ofrece la misma funcionalidad, pero es más rápido y tiene una mejor UX
  • Llevo más de un año usándolo y es una herramienta simple que me ha hecho la vida más fácil

    • Gracias al creador y a quienes contribuyen
  • Estoy pensando en cómo integrar mise en los workflows de GitHub Actions

    • Al ver los archivos de workflow del repositorio de mise, parece que solo añadieron algunos pasos de mise
    • Sería aún mejor si pudiera generar archivos de workflow
  • Después de leer el Readme del proyecto, me quedó la duda de "¿por qué?"

    • Uso Devbox para acceder a todo el ecosistema de Nix