Aller au contenu

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"
# Executer une tache
mise run dev
mise run test
mise run lint

# Lister les taches
mise tasks