Bazel 1.0 būvēšanas sistēmas izlaišana

Iesniedzis atvērto montāžas instrumentu atbrīvošana Bazel 1.0, ko izstrādājuši Google inženieri un ko izmantoja, lai apkopotu lielāko daļu uzņēmuma iekšējo projektu. Izlaidums 1.0 iezīmēja pāreju uz semantisko izlaidumu versiju veidošanu, kā arī bija ievērojams ar daudzu izmaiņu ieviešanu, kas pārtrauca atpakaļejošu saderību. Projekta kods izplata licencēts saskaņā ar Apache 2.0.

Bazel veido projektu, palaižot nepieciešamos kompilatorus un testus. Būvsistēma ir izstrādāta no paša sākuma, lai optimāli izveidotu Google projektus, tostarp ļoti lielus projektus un projektus, kuros ir kods vairākās programmēšanas valodās, ir nepieciešama plaša pārbaude un tie ir izstrādāti vairākām platformām. Tā atbalsta koda izveidi un testēšanu Java, C++, Objective-C, Python, Rust, Go un daudzās citās valodās, kā arī mobilo lietojumprogrammu izveidi operētājsistēmām Android un iOS. Tiek atbalstīta atsevišķu montāžas failu izmantošana dažādām platformām un arhitektūrām, piemēram, vienu montāžas failu bez izmaiņām var izmantot gan servera sistēmai, gan mobilajai ierīcei.

Starp Bazel raksturīgajām iezīmēm ir lielais ātrums, uzticamība un montāžas procesa atkārtojamība. Lai sasniegtu lielu veidošanas ātrumu, Bazel aktīvi izmanto kešatmiņas un paralēlizācijas metodes veidošanas procesā. BUILD failiem ir pilnībā jādefinē visas atkarības, pamatojoties uz kurām tiek pieņemti lēmumi par komponentu atjaunošanu pēc izmaiņu veikšanas (tiek pārbūvēti tikai mainītie faili) un paralēli montāžas procesam. Instrumenti nodrošina arī atkārtojamu montāžu, t.i. projekta izveides rezultāts izstrādātāja datorā būs pilnīgi identisks tam, ko veido trešās puses sistēmas, piemēram, nepārtrauktas integrācijas serveri.

Atšķirībā no Make un Ninja, Bazel izmanto augstāka līmeņa pieeju montāžas noteikumu veidošanai, kurā tā vietā, lai definētu komandu saistīšanu ar veidotajiem failiem, tiek izmantoti abstraktāki gatavie bloki, piemēram, “izveidojot izpildāmo failu C++”, “bibliotēkas izveide C++ valodā” vai “C++ testēšanas palaišana”, kā arī mērķa un veidošanas platformu identificēšana. Teksta failā BUILD projekta komponenti ir aprakstīti kā bibliotēku, izpildāmo failu un testu kopums, neprecizējot atsevišķu failu un kompilatoru izsaukuma komandu līmenī. Papildu funkcionalitāte tiek īstenota, izmantojot paplašinājumu savienošanas mehānismu.

Avots: opennet.ru

Pievieno komentāru