Bazel 1.0 -rakennusjärjestelmän julkaisu

Lähettäjä avoimien kokoonpanotyökalujen vapauttaminen Bazel 1.0, jonka ovat kehittäneet Googlen insinöörit ja jota käytettiin useimpien yrityksen sisäisten projektien kokoamiseen. Julkaisu 1.0 merkitsi siirtymistä semanttiseen julkaisuversioon, ja se oli myös merkittävä siitä, että se toi käyttöön suuren määrän muutoksia, jotka rikkoivat taaksepäin yhteensopivuuden. Projektin koodi jakelija lisensoitu Apache 2.0:lla.

Bazel rakentaa projektin suorittamalla tarvittavat kääntäjät ja testit. Rakennusjärjestelmä on suunniteltu alusta alkaen rakentamaan optimaalisesti Google-projekteja, mukaan lukien erittäin suuret projektit ja projektit, jotka sisältävät koodia useilla ohjelmointikielillä, vaativat laajaa testausta ja on rakennettu useille alustoille. Se tukee koodin rakentamista ja testaamista Java-, C++-, Objective-C-, Python-, Rust-, Go- ja monilla muilla kielillä sekä mobiilisovellusten rakentamista Androidille ja iOS:lle. Yksittäisten kokoonpanotiedostojen käyttöä eri alustoille ja arkkitehtuureille tuetaan, esimerkiksi yhtä kokoonpanotiedostoa ilman muutoksia voidaan käyttää sekä palvelinjärjestelmässä että mobiililaitteessa.

Bazelin erityispiirteitä ovat kokoonpanoprosessin suuri nopeus, luotettavuus ja toistettavuus. Suuren rakennusnopeuden saavuttamiseksi Bazel käyttää aktiivisesti välimuisti- ja rinnakkaistekniikoita rakennusprosessissa. BUILD-tiedostoissa on määriteltävä täysin kaikki riippuvuudet, joiden perusteella tehdään päätökset komponenttien uudelleen rakentamisesta muutosten jälkeen (vain muuttuneet tiedostot rakennetaan uudelleen) ja kokoonpanoprosessin rinnastaminen. Työkalu varmistaa myös toistettavan kokoonpanon, ts. Projektin rakentamisen tulos kehittäjän koneelle on täysin identtinen kolmannen osapuolen järjestelmiin, kuten jatkuvaan integrointipalvelimiin, rakentamisen kanssa.

Toisin kuin Make ja Ninja, Bazel käyttää kokoonpanosääntöjen rakentamiseen korkeamman tason lähestymistapaa, jossa sen sijaan, että määritellään komentojen sidonta rakennettaviin tiedostoihin, käytetään abstraktimpia valmiita lohkoja, kuten "suoritettavan tiedoston rakentaminen C++, "kirjaston rakentaminen C++:lla" tai "testin suorittaminen C++:lle" sekä kohde- ja rakennusalustojen tunnistaminen. BUILD-tekstitiedostossa projektin komponentit kuvataan kirjastojen, suoritettavien tiedostojen ja testien joukkona ilman yksityiskohtia yksittäisten tiedostojen ja kääntäjien kutsukomentojen tasolla. Lisätoiminnot toteutetaan laajennusten yhdistämismekanismin kautta.

Lähde: opennet.ru

Lisää kommentti