Utgivelse av byggesystemet Bazel 1.0

Introdusert frigjøring av åpne monteringsverktøy Bazel 1.0, utviklet av ingeniører fra Google og brukt til å sette sammen de fleste av selskapets interne prosjekter. Utgivelse 1.0 markerte overgangen til semantisk versjonsversjon og var også kjent for å introdusere et stort antall endringer som brøt bakoverkompatibiliteten. Prosjektkode distribuert av lisensiert under Apache 2.0.

Bazel bygger prosjektet ved å kjøre de nødvendige kompilatorene og testene. Byggesystemet er designet fra bunnen av for å bygge Google-prosjekter optimalt, inkludert svært store prosjekter og prosjekter som inneholder kode på flere programmeringsspråk, krever omfattende testing og er bygget for flere plattformer. Den støtter bygging og testing av kode i Java, C++, Objective-C, Python, Rust, Go og mange andre språk, i tillegg til å bygge mobilapplikasjoner for Android og iOS. Bruken av enkeltmonteringsfiler for forskjellige plattformer og arkitekturer støttes, for eksempel kan én monteringsfil uten endringer brukes for både et serversystem og en mobilenhet.

Blant de karakteristiske egenskapene til Bazel er den høye hastigheten, påliteligheten og repeterbarheten til monteringsprosessen. For å oppnå høy byggehastighet bruker Bazel aktivt hurtigbufring og parallelliseringsteknikker for byggeprosessen. BUILD-filer må fullt ut definere alle avhengigheter, på grunnlag av hvilke beslutninger tas om å gjenoppbygge komponenter etter at endringer er gjort (bare endrede filer gjenoppbygges) og parallellisere monteringsprosessen. Verktøy sikrer også repeterbar montering, d.v.s. Resultatet av å bygge et prosjekt på utviklerens maskin vil være helt identisk med bygget på tredjepartssystemer, for eksempel kontinuerlige integrasjonsservere.

I motsetning til Make og Ninja, bruker Bazel en tilnærming på høyere nivå for å bygge sammenstillingsregler, der i stedet for å definere bindingen av kommandoer til filene som bygges, brukes mer abstrakte ferdiglagde blokker, for eksempel "å bygge en kjørbar fil i C++", "bygge et bibliotek i C++" eller "kjøre en test for C++", samt identifisere mål- og byggeplattformer. I BUILD-tekstfilen beskrives prosjektkomponentene som en haug med biblioteker, kjørbare filer og tester, uten detaljering på nivået til individuelle filer og kompilatoranropskommandoer. Ytterligere funksjonalitet implementeres gjennom mekanismen for tilkobling av utvidelser.

Kilde: opennet.ru

Legg til en kommentar