3 points par GN⁺ 2024-12-09 | 1 commentaires | Partager sur WhatsApp

Qu’est-ce que mise ?

  • mise est un outil qui, à l’instar de asdf, nvm et pyenv, permet de gérer divers outils de développement comme node, python, cmake et terraform
  • à la manière de direnv, il gère les variables d’environnement par répertoire de projet
  • à la manière de make, il gère les tâches utilisées pour le build et les tests d’un projet

Démo en 30 secondes

  • montre comment utiliser mise pour installer différentes versions de node
  • lorsque vous exécutez la commande which node, le chemin réel est renvoyé, et ce n’est pas un shim

Démarrage rapide

  • Méthode d’installation de mise :
    • $ curl https://mise.run | sh
    • vous pouvez vérifier la version installée avec la commande $ ~/.local/bin/mise --version
  • Installation d’une version spécifique :
    • $ curl https://mise.run | MISE_VERSION=v2024.5.16 sh
    • vous pouvez vérifier la version installée avec la commande $ ~/.local/bin/mise --version
  • Connecter mise au 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
  • Installer un runtime et définir la valeur globale par défaut :
    • $ mise use --global node@20
    • vous pouvez vérifier la version avec la commande $ node -v

Documentation complète

  • la documentation complète est disponible sur mise.jdx.dev

1 commentaires

 
GN⁺ 2024-12-09
Avis sur Hacker News
  • Lorsqu’ils ont commencé à utiliser mise, ils en ont été satisfaits, car l’outil corrigeait les défauts de asdf tout en offrant une configuration du shell plus rapide et moins intrusive

    • L’ajout des fonctionnalités Task Running et Env Vars l’a rendu encore plus utile
    • Ils ont été impressionnés par le temps investi par le développeur pour préserver la compatibilité avec les outils existants tout en construisant des fonctionnalités d’avenir
    • Récemment, les fonctionnalités backend ont permis d’installer facilement les outils de développement nécessaires, ce qui s’est révélé pratique
  • Ils sont passés à Mise pour gérer JS, Ruby, Python et les Java SDK, et en ont été satisfaits

    • Il leur a semblé rafraîchissant de ne plus avoir à installer RVM, NVM, des outils d’installation Python, etc.
  • Ils utilisent mise pour unifier la chaîne d’outils de leur équipe, sans recourir à Docker ni à Nix

    • Docker sert toujours à exécuter les services, mais l’expérience utilisateur de mise est excellente
    • L’autocomplétion a été ajoutée à tous les scripts des dépôts, ce qui est pratique
  • En voulant tout faire, on risque fort de ne rien faire correctement

    • La plupart des gens ne comprennent pas en profondeur les problèmes de packaging d’un écosystème donné
    • Les développeurs doivent connaître beaucoup de choses, mais en pratique il ne s’agit que d’un wrapper autour d’outils existants
  • Comme ils ne sont pas développeurs, ils ne comprennent pas les cas d’usage de ce type d’outils

    • Ils utilisent asdf pour gérer toutes les versions de programmes d’un monorepo, et même si l’UX n’est pas formidable, c’est fiable
    • Ils chargent les variables d’environnement nécessaires et exécutent les tâches via des scripts ou des Makefile, sans les injecter dans la session shell courante
    • Ils utilisent Make pour lancer de petites commandes reproductibles par répertoire, ou pour paralléliser des commandes ou les exécuter séquentiellement
    • Ils utilisent des scripts shell pour écrire des outils un peu plus longs ou complexes que des cibles Make
    • L’ensemble de l’environnement peut être géré en installant simplement asdf, tout est automatisé et les versions sont verrouillées
  • Ils utilisent mise pour gérer la version de Go ; c’est un peu déroutant et la documentation manque, mais cela reste correct

    • Comme ils n’ont jamais utilisé asdf ou des outils similaires, il peut y avoir une courbe d’apprentissage
  • Ils utilisent mise comme remplaçant de asdf et en sont satisfaits

    • Il offre les mêmes fonctionnalités, mais est plus rapide et propose une meilleure UX
  • C’est un outil simple qu’ils utilisent depuis plus d’un an et qui leur a facilité la vie

    • Remerciements au créateur et aux contributeurs
  • Ils réfléchissent à la manière d’intégrer mise dans un workflow GitHub Actions

    • En regardant les fichiers de workflow du dépôt mise, il semble qu’il suffise d’ajouter quelques étapes mise
    • Ce serait encore mieux s’il pouvait générer un fichier de workflow
  • Après avoir lu le README du projet, la question « pourquoi ? » demeure

    • Ils utilisent Devbox pour accéder à tout l’écosystème Nix