Amélioration de la complétion par tabulation sous Bash et Zsh : affichage des descriptions pour les mots complets

2025-08-10

Cet article détaille une amélioration de la complétion par tabulation sous Bash et Zsh, permettant d’afficher les descriptions même pour les mots déjà complets. Auparavant, la complétion par tabulation n’affichait les descriptions que lorsque plusieurs options correspondaient, ce qui rendait difficile la consultation des descriptions de commandes uniques. L’auteur résout ce problème de manière astucieuse en ajoutant des options de complétion « fictives », permettant aux utilisateurs de voir les descriptions avec une simple pression sur la touche Tab. Cela améliore considérablement l’expérience utilisateur, malgré une légère imperfection de l’interface utilisateur due à la duplication des mots.

Lire plus

Mill : Une révolution des outils de build inspirée par React

2025-05-13

Mill est un outil de build unique qui adopte les décisions de conception clés de React.js : les builds de style direct et un seul langage généraliste. Contrairement aux outils de build traditionnels reposant sur des callbacks et plusieurs langages, Mill permet aux développeurs d'écrire des fonctions qui renvoient directement les artefacts de build finaux, Mill gérant automatiquement la mise en cache, la parallélisation et l'optimisation. Cette approche simplifie le processus de build, améliore la lisibilité et la maintenabilité, et améliore l'intégration de l'IDE.

Lire plus
Développement

Pourquoi Mill utilise Scala pour la configuration de build ?

2025-02-13

Le choix de Scala comme langage de configuration pour le système de build Mill, au lieu d'alternatives comme YAML ou XML, a soulevé des questions. Cet article aborde ce point en explorant trois raisons principales : les avantages de l'utilisation d'un langage de programmation généraliste, les avantages spécifiques de Scala et la justification de l'utilisation de la machine virtuelle Java. Bien que Scala soit un langage de niche, ses propriétés uniques le rendent particulièrement adapté à la configuration de systèmes de build, quelle que soit la taille du projet.

Lire plus
Développement

Binaires natifs multiplateformes de Mill via Github Actions

2025-02-02

Le projet Mill utilise Github Actions pour construire des binaires natifs sur différentes plateformes (Mac, Windows, Linux) et les télécharger sur Maven Central. Une configuration astucieuse sépare la publication des artefacts compatibles JVM des binaires natifs spécifiques à la plateforme, assurant ainsi une compatibilité multiplateforme. Les tâches personnalisées `artifactName` et `jar` génèrent des fichiers versionnés avec des suffixes OS et architecture CPU, permettant aux utilisateurs de choisir l'exécutable approprié pour leur environnement.

Lire plus

Outil de build Mill JVM : fichiers JAR d’assemblage directement exécutables

2025-01-02

L’outil de build Mill JVM crée des fichiers JAR d’assemblage directement exécutables, éliminant ainsi le besoin de la commande `java -jar`. Ceci est réalisé en préfixant un script shell au fichier JAR, qui appelle ensuite l’environnement d’exécution Java. Ce script est intelligemment conçu pour être compatible avec les systèmes Unix et Windows, permettant une exécution multiplateforme. L’article détaille le fonctionnement, en tirant parti de la nature des fichiers ZIP pour concaténer un script de lancement avec le contenu du JAR afin d’obtenir une exécution transparente. Cela améliore considérablement l’intégration des programmes Java dans les flux de travail en ligne de commande.

Lire plus
Développement outil de build

CI plus rapide avec Mill : stratégies de tests sélectifs

2024-12-30

Exécuter tous les tests dans les grandes bases de code est inefficace. Cet article explore trois approches de tests sélectifs : basée sur les dossiers, basée sur les dépendances et basée sur l’heuristique. L’approche basée sur les dossiers est simple mais peut manquer des erreurs ; l’approche basée sur les dépendances est plus exhaustive mais peut sur-tester ; l’approche basée sur l’heuristique optimise la sélection des tests avec des règles personnalisées, en équilibrant vitesse et exhaustivité. L’outil de construction Mill prend en charge nativement les tests sélectifs basés sur les dépendances, améliorant considérablement l’efficacité du CI. Cependant, sa combinaison avec des méthodes heuristiques optimise encore davantage l’équilibre entre vitesse et couverture des tests.

Lire plus

Outils de build Monorepo : Scalabilité de votre base de code

2024-12-20

Les outils de build traditionnels peinent à gérer les grandes bases de code (100 à 10 000 développeurs actifs). Les outils de build Monorepo comme Bazel et Mill offrent des solutions en prenant en charge plusieurs langages, des tâches de build personnalisées, la mise en cache et la parallélisation automatiques, la mise en cache et l'exécution à distance, améliorant ainsi considérablement la vitesse et l'efficacité du build. Ils incluent également la sélection des tests basée sur les dépendances et le sandboxing des tâches de build, réduisant ainsi le temps de test et le non-déterminisme. Bien que ces fonctionnalités puissent sembler inutiles pour les petits projets, elles sont cruciales pour la collaboration à grande échelle et l'intégration continue dans les grands projets, empêchant les temps de build de devenir un goulot d'étranglement.

Lire plus
Développement outils de build scalabilité