Útgáfa af Bazel 2.0 byggingarkerfinu

Laus losun opinna samsetningarverkfæra Bazel 2.0, þróað af verkfræðingum frá Google og notað til að setja saman flest innri verkefni fyrirtækisins. Bazel byggir verkefnið með því að keyra nauðsynlega þýðendur og próf. Það styður smíði og prófunarkóða í Java, C++, Objective-C, Python, Rust, Go og mörgum öðrum tungumálum, auk þess að byggja farsímaforrit fyrir Android og iOS. Verkefnakóði dreift af leyfi samkvæmt Apache 2.0.

Mikilvæg útgáfubreyting felur í sér að bæta við breytingum sem brjóta afturábak eindrægni. Frá og með Bazel 2.0 eru eftirfarandi stillingar virkar sjálfgefið: "—incompatible_remap_main_repo" (tenglar með nafni og í gegnum @ tengir nú á sömu geymslu), "—incompatible_disallow_dict_lookup"_(notkun óhashable lykla),
"--incompatible_remove_native_maven_jar" og "--incompatible_prohibit_aapt1". Aðrar breytingar eru ma:

  • Í liði fyrirspurn tilraunastuðningur hefur birst fyrir nýja útgáfu af „proto“ úttakssniðinu (-output=proto), sem er nú sjálfgefið óvirkt (-incompatible_proto_output_v2) og veitir þéttari framsetningu gagna;
  • Bætti við "--incompatible_remove_enabled_toolchain_types" fánanum til að fjarlægja PlatformConfiguration.enabled_toolchain_types reitinn;
  • Bætt við vörn gegn hleðslu pakka sem nota hringlaga táknræna tengla við hleðslu á slóðum þegar þær eru stækkaðar;
  • Útfærði möguleikann á að nota „--disk_cache“ fánann með ytri gRPC skyndiminni;
  • Debian pakkinn og tvöfaldur uppsetningarforritið inniheldur endurbætt lag sem meðhöndlar ~/.bazelversion skrár og $USE_BAZEL_VERSION umhverfisbreytuna;
  • Til að undirbúa úreldingu runfiles upplýsingaskráa hefur flagginu "--experimental_skip_runfiles_manifests" verið bætt við.

Meðal sérstakra eiginleika Bazel er mikill hraði, áreiðanleiki og endurtekningarhæfni samsetningarferlisins. Til að ná háum byggingarhraða notar Bazel virkan skyndiminni og samhliða tækni fyrir byggingarferlið. BUILD skrár verða að skilgreina að fullu öll ósjálfstæði, á grundvelli þeirra eru teknar ákvarðanir um að endurbyggja íhluti eftir að breytingar eru gerðar (aðeins breyttar skrár eru endurbyggðar) og samhliða samsetningarferlinu. Verkfæri tryggja einnig endurtekna samsetningu, þ.e. Niðurstaðan af því að byggja verkefni á vél þróunaraðila verður alveg eins og byggt á kerfum þriðja aðila, svo sem samfellda samþættingarþjóna.

Ólíkt Make og Ninja notar Bazel aðferð á hærra stigi við að byggja samsetningarreglur, þar sem í stað þess að skilgreina bindingu skipana við skrárnar sem verið er að smíða, eru notaðir óhlutbundnari tilbúnar blokkir, eins og „að byggja upp keyranlega skrá í C++“, „byggja bókasafn í C++“ eða „keyra próf fyrir C++“, auk þess að bera kennsl á mark- og smíðavettvang. Í BUILD textaskránni er verkþáttunum lýst sem fullt af bókasöfnum, keyranlegum skrám og prófum, án þess að útskýra á stigi einstakra skráa og þýðandakallaskipana. Viðbótarvirkni er útfærð í gegnum vélbúnaðinn til að tengja viðbætur.

Notkun stakra samsetningarskráa fyrir mismunandi vettvang og arkitektúr er studd; til dæmis er hægt að nota eina samsetningarskrá án breytinga fyrir bæði netþjónakerfi og farsíma. Byggingarkerfið er hannað frá grunni til að byggja upp Google verkefni sem best, þar á meðal mjög stór verkefni og verkefni sem innihalda kóða á mörgum forritunarmálum, krefjast víðtækrar prófunar og eru smíðuð fyrir marga vettvanga.

Heimild: opennet.ru

Bæta við athugasemd