BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Bazel : Google rend son Outil de Build Open Source

Bazel : Google rend son Outil de Build Open Source

Bazel, l'outil que Google utilise pour construire la majorité de ses logiciels a été rendu partiellement Open Source. D'après Google, Bazel a pour objectif de construire "le code rapidement et de manière fiable" et est "critique pour la capacité de Google à continuer d'adapter ses pratiques de développement logiciel à la croissance de la compagnie".

Avant Bazel, Google construisait ses logiciels en utilisant des Makefiles. Ceux-ci avaient tendance à être énormes et menaient à des "builds lents et peu fiables". De plus, par rapport aux Makefiles, Bazel fournit des concepts de haut niveau comme "test Java", "binaire C++", les notions de "plateforme cible" et de "plateforme hôte", etc.

Ce niveau d'abstraction est fourni par BUILD, un langage "qui décrit un projet comme un ensemble de librairies, binaires et de tests de taille limitée". Voici de quoi a l'air un simple fichier BUILD :

package(default_visibility = [“//visibility:public”])

cc_library(
  name = "hello-lib",
  srcs = ["hello-lib.cc"],
  hdrs = ["hello-lib.h"],
)

cc_binary(
  name = "hello-world",
  srcs = ["hello-world.cc"],
  deps = [":hello-lib"],
)

cc_test(
  name = "hello-success_test",
  srcs = ["hello-world.cc"],
  deps = [":hello-lib"],
)

Parmi tous les avantages que Bazel procure, Google met en exergue :

  • Son efficience, grâce au fait qu'il ne recompile que les fichiers qui en ont besoin et qu'il est aussi capable d'ignorer les tests qui n'ont pas besoin d'être exécutés ;
  • Sa reproductibilité des résultats, en s'assurant qu'il n'existe aucun biais entre les "builds incrémentaux et les builds complets, entre les machines développeur et le système d'Intégration Continue".

Conçu pour les propres besoins de Google, Bazel est vanté comme étant particulièrement adapté pour des projets ayant n'importe quelle combinaison des caractéristiques suivantes : ont une large base de code partagée, supportent de multiples plateformes, sont écrits dans de multiples langages et ont une suite de tests extensive.

Il est important de noter que Bazel ne sera par entièrement développé en open source. Google explique : "Nous avons une somme significative de code qui n'est pas open source ; en termes de règles, seulement environ 10% sont actuellement open source". La politique menée par Google est basée sur la reconnaissance qu'un groupe de contributeurs principaux travaillera activement sur Bazel, alors que les "contributeurs externes ne supportent pas activement le projet mais contribuent uniquement des changements individuels".

InfoQ s'est rapproché du groupe de contributeurs principaux pour s'informer dans quelle mesure l'utilisation de Bazel peut améliorer la vitesse et quelles fonctionnalités distinguent Bazel d'autres compétiteurs open-source comme Buck de Facebook et Pants. Cet article sera mis à jour s'ils répondent.

Bazel s'exécute sur les systèmes Linux et OS X, mais n'est pas actuellement supporté sur Windows, et Google "n'a aucune intention d'investir dans un portage pour l'instant" car cela constituerait un effort important.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT