Frigivelse af Bazel 1.0 montagesystemet

Introduceret frigivelse af åbne montageværktøjer Bazel 1.0, udviklet af ingeniører fra Google og brugt til at samle de fleste af virksomhedens interne projekter. Release 1.0 markerede overgangen til semantisk udgivelsesversionering og var også bemærkelsesværdig for at introducere et stort antal ændringer, der brød bagudkompatibiliteten. Projektkode distribueret af licenseret under Apache 2.0.

Bazel bygger projektet ved at køre de nødvendige compilere og tests. Byggesystemet er designet fra bunden til optimalt at bygge Google-projekter, herunder meget store projekter og projekter, der indeholder kode på flere programmeringssprog, kræver omfattende test og er bygget til flere platforme. Det understøtter bygning og test af kode i Java, C++, Objective-C, Python, Rust, Go og mange andre sprog, samt opbygning af mobilapplikationer til Android og iOS. Brugen af ​​enkelt assembly filer til forskellige platforme og arkitekturer er understøttet; for eksempel kan en assembly fil uden ændringer bruges til både et serversystem og en mobil enhed.

Blandt de karakteristiske træk ved Bazel er monteringsprocessens høje hastighed, pålidelighed og repeterbarhed. For at opnå høj byggehastighed bruger Bazel aktivt caching og paralleliseringsteknikker til byggeprocessen. BUILD-filer skal fuldt ud definere alle afhængigheder, på grundlag af hvilke der træffes beslutninger om at genopbygge komponenter efter ændringer er foretaget (kun ændrede filer genopbygges) og parallelisere monteringsprocessen. Værktøj sikrer også gentagelig montage, dvs. Resultatet af at bygge et projekt på udviklerens maskine vil være fuldstændig identisk med byggeriet på tredjepartssystemer, såsom kontinuerlige integrationsservere.

I modsætning til Make og Ninja bruger Bazel en tilgang på et højere niveau til at bygge assemblerregler, hvor der i stedet for at definere bindingen af ​​kommandoer til de filer, der bygges, bruges mere abstrakte færdiglavede blokke, såsom at "bygge en eksekverbar fil i C++", "opbygge et bibliotek i C++" eller "køre en test for C++", samt identificere mål- og byggeplatforme. I BUILD-tekstfilen beskrives projektkomponenterne som en flok biblioteker, eksekverbare filer og tests, uden detaljering på niveau med individuelle filer og kompileringskommandoer. Yderligere funktionalitet er implementeret gennem mekanismen til tilslutning af udvidelser.

Kilde: opennet.ru

Tilføj en kommentar