Izdanje sustava za izgradnju Bazel 1.0

Predstavljeno oslobađanje otvorenih montažnih alata Bazel 1.0, koji su razvili inženjeri iz Googlea i koristio se za sastavljanje većine internih projekata tvrtke. Izdanje 1.0 označilo je prijelaz na korištenje semantičke verzije izdanja, a također je bilo poznato po uvođenju velikog broja promjena koje su kršile kompatibilnost unatrag. Šifra projekta distribuira licenciran pod Apache 2.0.

Bazel gradi projekt pokretanjem potrebnih prevodilaca i testova. Sustav izrade osmišljen je od temelja za optimalnu izgradnju Googleovih projekata, uključujući vrlo velike projekte i projekte koji sadrže kod na više programskih jezika, zahtijevaju opsežna testiranja i izgrađeni su za više platformi. Podržava izradu i testiranje koda u Javi, C++, Objective-C, Python, Rust, Go i mnogim drugim jezicima, kao i izradu mobilnih aplikacija za Android i iOS. Podržana je upotreba pojedinačnih montažnih datoteka za različite platforme i arhitekture; na primjer, jedna montažna datoteka bez promjena može se koristiti i za poslužiteljski sustav i za mobilni uređaj.

Među karakterističnim značajkama Bazela su velika brzina, pouzdanost i ponovljivost procesa montaže. Kako bi postigao veliku brzinu izgradnje, Bazel aktivno koristi tehnike predmemoriranja i paralelizacije za proces izgradnje. Datoteke BUILD moraju u potpunosti definirati sve ovisnosti, na temelju kojih se donose odluke o ponovnoj izgradnji komponenti nakon izvršenih promjena (samo promijenjene datoteke se ponovno grade) i paralelizira proces sklapanja. Alati također osiguravaju ponovljivu montažu, tj. rezultat izgradnje projekta na stroju programera bit će potpuno identičan izgradnji na sustavima trećih strana, kao što su poslužitelji kontinuirane integracije.

Za razliku od Make i Ninje, Bazel koristi pristup više razine za izgradnju pravila sklopa, u kojem se, umjesto definiranja vezanja naredbi za datoteke koje se izgrađuju, koriste apstraktniji gotovi blokovi, kao što je "izgradnja izvršne datoteke u C++”, “izrada biblioteke u C++” ili “izvođenje testa za C++”, kao i identificiranje ciljne i građevne platforme. U tekstualnoj datoteci BUILD, komponente projekta opisane su kao hrpa biblioteka, izvršnih datoteka i testova, bez detalja na razini pojedinačnih datoteka i naredbi poziva prevoditelja. Dodatna funkcionalnost implementirana je kroz mehanizam za povezivanje ekstenzija.

Izvor: opennet.ru

Dodajte komentar