Source code of my website
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

✏️ : fix spacing issues in mise-en-place article

+25 -25
+25 -25
content/posts/2025-12-19-mise-en-place/index.md
··· 96 96 97 97 ### Une stack java 98 98 99 - Déclarer une stack Java est très simple avec un fichier `mise.toml` : 99 + Déclarer une stack Java est très simple avec un fichier `mise.toml` : 100 100 101 101 ```toml 102 102 [tools] ··· 104 104 maven = "3" 105 105 ``` 106 106 107 - Une fois le fichier crée, au chargement du répertoire, `mise` affichera une erreur, car il ne souhaite par exécuter les fichiers par défaut (par mesure de sécurité) : 107 + Une fois le fichier crée, au chargement du répertoire, `mise` affichera une erreur, car il ne souhaite par exécuter les fichiers par défaut (par mesure de sécurité) : 108 108 109 109 ```shell 110 110 $ cd workspaces/gitlab-classrooms ··· 114 114 mise ERROR Run with --verbose or MISE_VERBOSE=1 for more information 115 115 ``` 116 116 117 - La commande `mise trust` permet donc d'activer le fichier de configuration donné : 117 + La commande `mise trust` permet donc d'activer le fichier de configuration donné : 118 118 119 119 ```shell 120 120 $ mise trust ··· 122 122 mise WARN missing: java@temurin-25.0.1+8.0.LTS maven@3.9.12 123 123 ``` 124 124 125 - Il est aussi possible de configurer `mise` pour truster des répertoires complets dans le fichier `.config/mise/config.toml` : 125 + Il est aussi possible de configurer `mise` pour truster des répertoires complets dans le fichier `.config/mise/config.toml` : 126 126 127 127 ```toml 128 128 [settings] 129 129 trusted_config_paths = ["~/workspaces"] 130 130 ``` 131 131 132 - Une fois le fichier créé et trusté, `mise` affichera les outils manquants s'il y en a avec un warning : 132 + Une fois le fichier créé et trusté, `mise` affichera les outils manquants s'il y en a avec un warning : 133 133 134 134 ```shell 135 135 mise WARN missing: java@temurin-25.0.1+8.0.LTS maven@3.9.12 136 136 ``` 137 137 138 - Pour installer les outils manquants, il suffit alors d'exécuter la commande `mise install` : 138 + Pour installer les outils manquants, il suffit alors d'exécuter la commande `mise install` : 139 139 140 140 ```shell 141 141 $ mise install ··· 143 143 mise java@temurin-25.0.1+8.0.LTS download OpenJDK25U-jdk_x64_linux_hotspot_25.0.1_8.tar.gz 128.19 MiB/134.21 MiB (0s) ███████████████████░ 2s 144 144 ``` 145 145 146 - Une fois les outils installés, ils sont ajoutés au `$PATH` et peuvent être utilisés immédiatement : 146 + Une fois les outils installés, ils sont ajoutés au `$PATH` et peuvent être utilisés immédiatement : 147 147 148 148 ```shell 149 149 $ echo $PATH ··· 163 163 OS name: "linux", version: "6.17.12-1-manjaro", arch: "amd64", family: "unix" 164 164 ``` 165 165 166 - Si je veux utiliser une autre version de Java, rien de plus simple, je peux simplement modifier le fichier `mise.toml`, ou exécuter la commande `mise use` (qui va aussi modifier le fichier `mise.toml`) : 166 + Si je veux utiliser une autre version de Java, rien de plus simple, je peux simplement modifier le fichier `mise.toml`, ou exécuter la commande `mise use` (qui va aussi modifier le fichier `mise.toml`) : 167 167 168 168 ```shell 169 169 $ mise use graalvm@25 ··· 187 187 188 188 C'est pratique, flexible et bluffant. 189 189 190 - Les packages sont installés par défaut dans le répertoire `~/.local/share/mise/installs/`, et utilisent des liens symboliques pour relier les différentes version et alias de versions : 190 + Les packages sont installés par défaut dans le répertoire `~/.local/share/mise/installs/`, et utilisent des liens symboliques pour relier les différentes version et alias de versions : 191 191 192 192 ```shell 193 193 $ tree -L 2 ~/.local/share/mise/installs/ ··· 219 219 220 220 Bien qu'installer Hugo est plutôt facile, autant essayer de basculer le maximum de choses avec `mise` pour ce test. 221 221 222 - Hugo est disponible dans le registry de `mise` : 222 + Hugo est disponible dans le registry de `mise` : 223 223 224 224 ```shell 225 225 $ mise registry | grep hugo ··· 228 228 ``` 229 229 230 230 Plutôt que d'intialiser directement le fichier `mise.toml` avec la configuration de l'outil, 231 - il est possible d'utiliser la commande `mise use`, qui va générer le fichier pour nous et installer l'outil directement, qui sera immédiatement utilisable : 231 + il est possible d'utiliser la commande `mise use`, qui va générer le fichier pour nous et installer l'outil directement, qui sera immédiatement utilisable : 232 232 233 233 ```shell 234 234 $ mise use hugo ··· 238 238 hugo v0.152.2+extended+withdeploy linux/amd64 BuildDate=unknown 239 239 ``` 240 240 241 - Le fichier généré est alors le suivant : 241 + Le fichier généré est alors le suivant : 242 242 243 243 ```toml 244 244 [tools] ··· 247 247 248 248 Utiliser une version "latest" est bien entendu déconseillé, mais cela permet de tester rapidement la nouvelle version de l'outil. 249 249 250 - Et encore une fois, tout fonctionne parfaitement : 250 + Et encore une fois, tout fonctionne parfaitement : 251 251 252 252 ```shell 253 253 hugo serve ··· 277 277 278 278 ## Utiliser des variables d'environnement 279 279 280 - `mise` permet de déclarer des variables d'environnement dans le fichier `mise.toml` avec le bloc `[env]` : 280 + `mise` permet de déclarer des variables d'environnement dans le fichier `mise.toml` avec le bloc `[env]` : 281 281 282 282 ```toml 283 283 [env] 284 284 SPRING_PROFILES_ACTIVE = 'local' 285 285 ``` 286 286 287 - Il est aussi possible de charger un fichier `.env` avec [une directive](https://mise.jdx.dev/environments/#env-directives) : 287 + Il est aussi possible de charger un fichier `.env` avec [une directive](https://mise.jdx.dev/environments/#env-directives) : 288 288 289 289 ```toml 290 290 [env] ··· 310 310 Enter value for GITLAB_CLIENT_SECRET ************ 311 311 ``` 312 312 313 - Les valeurs chiffrées sont stockées dans le fichier `mise.toml`, qui peut alors être poussé sur un repo git en toute sécurité : 313 + Les valeurs chiffrées sont stockées dans le fichier `mise.toml`, qui peut alors être poussé sur un repo git en toute sécurité : 314 314 315 315 ```toml 316 316 [env] ··· 318 318 GITLAB_CLIENT_SECRET = { age = "YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1yc2EgYWM5WlV3Cmpsa0EweTlISnFLQmJ4NHBRQTRDVGRBd21NM3JWbVo1b3NFZHQ3dXcvZHZaQmFYMkEyWjViWmpJWCtLT0R1aVkKckNsUW1qVHZ1NlBEelYzQm9nNkk1SEp3REJsNzZvdmJuTkdYd2tLV3VCRFBRUXlCYjhhVzNvSnBib0dDcUFXTwpydW1INWIyMWtjaCt2WnlGeEx5dXM5Q205NUJBdmlycjUzdE41ejFFOW9PZ1YzaXczM292bXlsSkpPWW5hVldQCkJOUUZ3ditlbGFJbzRWZU5TeTBaSitoUk1TeDh4RVJqUjRaVkV5MGJrOXhJeitsbjBKcEQ0TkZla1V4bnNybUoKWVBjeSttUkFMVkd2Q2t1dDJVUWxjMk9vcER3cWFZcjNBRHNTZVJqMGZNc01xQ1VZd3pHU2hQazJWczFRbjd6OAowSHRqS0tCeE1HL2MrVG5FaUhaVndvWm9xNzNrME41VjJDRzlzbEFGRzdvQ040elNSeVAxcVdGMVlSK2NsQlM3ClJFbGZtV2pVOUh3VmF2RXlhNE5pekpIcnVpSzF2WWs5YWMvSTRqYnBQMnBMUFpValNTajI2WVp2YXRSTWgxd1AKTGVZektqdWxjRENjMVJaZy9aVEhvQkgzNXdyT01PY1NKT2t0MHB2VW9RK1hCSmxkbk5aWElGVndKeTRZRi90VApXMDhnWFlCVGRZeTFZcHRKSUdRbHkrRXlidXdKY0lCUVNjYy8vR21LbTk5eG5UTFp3L1RUM3JFbldRNldkTkJFCmVsZ2VqWXc3c3Q0eERtb0YxSDhNZjlrOUdJdmp4QjhEVW16UlRGY0xrbGtBZXkwcVkvZ1MrWVRKYXdqTm9QYjkKcUJzNS9MdUR4UENvU05iRHo5cGVEaGpvTDVwdU0xMUsrUGRBQkNaUFZaVQotPiB0LWdyZWFzZSA5KklKaXIgWlcyCjJzUlRqRXo3ZnJ6ZVZndk92UVE5QllNejhNZGZqVjYxMWN5U0JjbzhUbTJhCi0tLSBmRXEwQnh0Ykc4NWtIdk1nd200LzI2aEZtVEJqZ2x6QWp3ZCs0TlJjYThBCrPsAPxQrwsNRNctYosJQ7GQM8+Zc4bdoMoTbSehN6Fyf/5AvfJ2ko3Gm5FJ9L2qnW0ZGW+QTLMsR4vLInmecojm/eu4LKC5EqBB/3oFCAJJNZAdOtYiJnwUCWml5WY" } 319 319 ``` 320 320 321 - Et les valeurs sont automatiquement déchiffrées pour être disponibles dans le shell en variable d'environnement : 321 + Et les valeurs sont automatiquement déchiffrées pour être disponibles dans le shell en variable d'environnement : 322 322 323 323 ```shell 324 324 $ env | grep GITLAB ··· 336 336 337 337 Et on peut aller assez loin dans la configuration, avec des dépendances entre les tâches ou conditionner l'exécution à la mise à jour d'un fichier par exemple. 338 338 339 - Pour mon site, j'avais un `justfile` qui contenait quelques commandes, je l'ai rapidement migré, et en voici le résultat : 339 + Pour mon site, j'avais un `justfile` qui contenait quelques commandes, je l'ai rapidement migré, et en voici le résultat : 340 340 341 341 ```toml 342 342 [tools] ··· 398 398 399 399 ## Liens et références 400 400 401 - * Le blog post de Siegfried Erhet : https://sieg.fr/ied/avent-2025/04-mise/ 401 + * Le blog post de Siegfried Erhet : https://sieg.fr/ied/avent-2025/04-mise/ 402 402 * Mon [article sur mon usage de `direnv`](/2022/06/17/direnv-pour-votre-shell) 403 - * La documentation officielle de `mise` : https://mise.jdx.dev 404 - * L'installation de `mise` : https://mise.jdx.dev/installing-mise.html 405 - * L'utilisation des DevTools : https://mise.jdx.dev/dev-tools/ 406 - * La liste des outils disponibles : https://mise.jdx.dev/registry.html#tools 407 - * L'utilisation des variables d'environnement : https://mise.jdx.dev/environments/ 408 - * Utilisation de tâches : https://mise.jdx.dev/tasks/ 403 + * La documentation officielle de `mise` : https://mise.jdx.dev 404 + * L'installation de `mise` : https://mise.jdx.dev/installing-mise.html 405 + * L'utilisation des DevTools : https://mise.jdx.dev/dev-tools/ 406 + * La liste des outils disponibles : https://mise.jdx.dev/registry.html#tools 407 + * L'utilisation des variables d'environnement : https://mise.jdx.dev/environments/ 408 + * Utilisation de tâches : https://mise.jdx.dev/tasks/