Workflow quotidien¶
Utiliser mise au quotidien — changer de version, installer des outils, gérer la confiance.
Commandes essentielles¶
| Commande | Action |
|---|---|
mise use <outil>@<version> | Installer et activer une version (écrit dans .tool-versions) |
mise install | Installer toutes les versions listees dans .tool-versions |
mise ls | Lister les runtimes actifs et leur source |
mise ls-remote <outil> | Lister les versions disponibles a l'installation |
mise current | Afficher les versions actives dans le répertoire courant |
mise exec <outil>@<version> -- <cmd> | Exécuter une commande avec une version spécifique |
mise prune | Supprimer les versions non referencees |
mise upgrade | Mettre a jour les runtimes vers la dernière version compatible |
Changer de version¶
# Voir les versions disponibles
mise ls-remote node | tail -20
# 20.10.0
# 20.11.0
# 20.11.1
# 21.0.0
# ...
# Changer la version du projet courant
mise use node@20.11.1
# Utiliser la derniere LTS
mise use node@lts
# Utiliser une version pour une seule commande
mise exec node@18 -- node -e "console.log(process.version)"
# v18.19.0
Plugins¶
mise utilise les mêmes plugins qu'asdf. Les plugins principaux sont intégrés :
# Installer un outil via un plugin
mise use terraform@1.7.0
mise use kubectl@1.29.0
mise use helm@3.14.0
# Lister les plugins disponibles
mise plugins ls-remote | head -20
Pour un plugin non standard :
# Ajouter un plugin custom
mise plugins install my-tool https://github.com/user/asdf-my-tool.git
mise use my-tool@1.0.0
Hooks de confiance (trust)¶
Quand vous clonez un dépôt avec un .tool-versions, mise ne l'active pas automatiquement (sécurité) :
cd ~/projets/nouveau-clone
# mise WARN mise.toml is not trusted. Run `mise trust` to trust it.
# Inspecter le fichier d'abord
cat .tool-versions
# Si OK, autoriser
mise trust
Pourquoi le trust ?
Un .tool-versions ou mise.toml malveillant pourrait installer des binaires compromis. Le trust force une vérification humaine au premier clone.
Fichier mise.toml¶
Alternative a .tool-versions avec plus de fonctionnalités :
# mise.toml
[tools]
node = "20.11.0"
python = "3.12.1"
[env]
NODE_ENV = "development"
DATABASE_URL = "postgres://localhost:5432/mydb"
[tasks.dev]
run = "npm run dev"
description = "Lancer le serveur de dev"
[tasks.test]
run = "pytest -v"
description = "Lancer les tests"
[tasks.lint]
run = ["npm run lint", "ruff check ."]
description = "Lancer les linters"