Bazel 1.0 ehitussüsteemi väljalase

Tutvustatakse avatud montaažitööriistade vabastamine Bazel 1.0, mille töötasid välja Google'i insenerid ja mida kasutati enamiku ettevõtte siseprojektide koostamiseks. Väljalase 1.0 tähistas üleminekut semantilisele versioonile ja paistis silma ka suure hulga muudatuste sisseviimise poolest, mis rikkusid tagasiühilduvust. Projekti kood jaotatud litsentsitud Apache 2.0 alusel.

Bazel koostab projekti, käivitades vajalikud kompilaatorid ja testid. Koostamissüsteem on algusest peale loodud selleks, et luua optimaalselt Google'i projekte, sealhulgas väga suuri projekte ja projekte, mis sisaldavad koodi mitmes programmeerimiskeeles, nõuavad põhjalikku testimist ja on loodud mitmele platvormile. See toetab koodi koostamist ja testimist Java, C++, Objective-C, Python, Rust, Go ja paljudes teistes keeltes, samuti mobiilirakenduste loomist Androidi ja iOS-i jaoks. Toetatud on üksikute koostefailide kasutamine erinevate platvormide ja arhitektuuride jaoks, näiteks saab üht muudatusteta koostefaili kasutada nii serverisüsteemi kui ka mobiilseadme jaoks.

Bazeli eripärade hulgas on montaažiprotsessi suur kiirus, töökindlus ja korratavus. Suure koostamiskiiruse saavutamiseks kasutab Bazel koostamise protsessis aktiivselt vahemällu salvestamise ja paralleelstamise tehnikaid. BUILD-failid peavad täielikult defineerima kõik sõltuvused, mille põhjal otsustatakse pärast muudatuste tegemist komponentide ümberehitamist (ümber ehitatakse ainult muudetud failid) ja koosteprotsessi paralleelseks muutmiseks. Tööriistad tagavad ka korratava montaaži, s.t. arendaja masinas projekti ehitamise tulemus on täiesti identne kolmandate osapoolte süsteemidele, näiteks pideva integratsiooni serveritele, ehitamisega.

Erinevalt Makeist ja Ninjast kasutab Bazel montaažireeglite koostamisel kõrgema taseme lähenemist, mille puhul selle asemel, et määratleda ehitatavate failidega käskude sidumist, kasutatakse abstraktsemaid valmisplokke, näiteks „käivitatava faili loomine C++”, “teegi loomine C++-s” või “testi käivitamine C++ jaoks”, samuti siht- ja ehitusplatvormide tuvastamine. Tekstifailis BUILD kirjeldatakse projekti komponente teekide, käivitatavate failide ja testidena, ilma üksikfailide ja kompilaatori kutsekäskude tasemel üksikasjalikult kirjeldamata. Lisafunktsioone rakendatakse laienduste ühendamise mehhanismi kaudu.

Allikas: opennet.ru

Lisa kommentaar