Google vient d’annoncer la mise à disposition, en version bêta, de son système de build Open Source Bazel, conçu pour supporter une diversité de langages et de plateformes. Il existe déjà de nombreux outils de build - Maven, Gradle, Ant, Make ou CMake figurant parmi les plus connus - utilisés par les développeurs pour construire les livrables de leurs logiciels. Mais cette fois-ci, il s’agit du propre système mis en oeuvre par Google pour la grande majorité de ses logiciels, explique dans un billet Jeff Cox, responsable du développement au sein de l’équipe Bazel.

En tant que tel, l’outil a été conçu pour gérer les problèmes de build spécifiques à l’environnement de développement de Google. Cela inclut un référentiel de code partagé très conséquent dans lequel tous les logiciels sont construits depuis la source. Le système met aussi fortement l’accent sur les processus automatisés de test et de livraison et la diversité des langages et des plateformes. « Bazel n’est pas indiqué pour tous les cas d’usage, mais nous ne sommes pas les seuls à rencontrer ce genre de problèmes et nous voulons apporter notre contribution à une plus large communauté de développeurs en transmettant ce que nous avons appris jusqu’ici », indique Jeff Cox. La version alpha remonte à mars dernier.

Support de C++, Java, Python et des images Docker

La version bêta de Bazel fournit les versions binaires pour Linux et OS X. Elle supporte la construction et le test pour les programmes développés en C++, Java, Python, Objective-C et Rust (notamment), pour les images Docker, ainsi que pour les apps Android et iOS. Elle accepte les bibliothèques issues de Maven, GitHub et d’autres sources. Bazel comporte par ailleurs une API permettant aux développeurs d’ajouter leurs propres règles de construction. Il reste encore beaucoup de travail pour finaliser l’outil. Dans la version 1.0.0, il est prévu de supporter Windows, la mise en cache distribuée, ainsi que Go, le langage créé par Google.

Bazel optimise l’analyse des dépendances, pointe l’équipe qui le développe, en citant aussi la gestion avancée du cache, l’exécution en parallèle des différentes actions et le nettoyage des builds. Dans l’entreprise de Mountain View, l’outil est exploité par des dizaines de milliers d’ingénieurs pour des procédures de construction très lourdes, des services d’infrastructure critiques et des applications web destinées à supporter un grand nombre d’utilisateurs. Mais l’outil convient aussi aux petits projets, assure Google. Pour les phases de correction, Bazel examine le contenu des fichiers sources dans le graphe des dépendances (et pas seulement les timestamps) pour déterminer à quel moment reconstruire, explique le site consacré à l’outil. Sur la feuille de route communiquée, on voit que de nouvelles bêtas sont prévues tous les mois jusqu’à la fin de cette année. La première version stable, 1.0, arrivera en mai 2016.