Release av byggsystemet Bazel 1.0

Introducerad frigöring av öppna monteringsverktyg Bazel 1.0, utvecklad av ingenjörer från Google och används för att montera de flesta av företagets interna projekt. Release 1.0 markerade övergången till semantisk versionsversion och var också känd för att introducera ett stort antal ändringar som bröt bakåtkompatibiliteten. Projektkod levererad av licensierad under Apache 2.0.

Bazel bygger projektet genom att köra nödvändiga kompilatorer och tester. Byggsystemet är designat från grunden för att optimalt bygga Google-projekt, inklusive mycket stora projekt och projekt som innehåller kod på flera programmeringsspråk, kräver omfattande testning och är byggda för flera plattformar. Den stöder att bygga och testa kod i Java, C++, Objective-C, Python, Rust, Go och många andra språk, samt att bygga mobilapplikationer för Android och iOS. Användningen av enstaka monteringsfiler för olika plattformar och arkitekturer stöds, till exempel kan en monteringsfil utan ändringar användas för både ett serversystem och en mobil enhet.

Bland de utmärkande egenskaperna hos Bazel är monteringsprocessens höga hastighet, tillförlitlighet och repeterbarhet. För att uppnå hög bygghastighet använder Bazel aktivt caching och parallelliseringstekniker för byggprocessen. BUILD-filer måste helt definiera alla beroenden, utifrån vilka beslut fattas om att bygga om komponenter efter att ändringar har gjorts (endast ändrade filer byggs om) och parallellisera monteringsprocessen. Verktyg säkerställer också repeterbar montering, d.v.s. resultatet av att bygga ett projekt på utvecklarens maskin kommer att vara helt identiskt med byggandet på tredjepartssystem, såsom kontinuerliga integrationsservrar.

Till skillnad från Make och Ninja, använder Bazel ett tillvägagångssätt på högre nivå för att bygga sammansättningsregler, där istället för att definiera bindningen av kommandon till filerna som byggs, används mer abstrakta färdiga block, som att "bygga en körbar fil i C++", "bygga ett bibliotek i C++" eller "köra ett test för C++", samt identifiera mål- och byggplattformar. I BUILD-textfilen beskrivs projektkomponenterna som ett gäng bibliotek, körbara filer och tester, utan detaljer på nivån för enskilda filer och kompilatoranropskommandon. Ytterligare funktionalitet implementeras genom mekanismen för att ansluta tillägg.

Källa: opennet.ru

Lägg en kommentar