Release av byggsystemet Bazel 2.0

TillgÀngliga frigöring av öppna monteringsverktyg Bazel 2.0, utvecklad av Googles ingenjörer och anvÀnds för att bygga de flesta av företagets interna projekt. Bazel hanterar projektbyggen, kör nödvÀndiga kompilatorer och tester. Den stöder byggande och testning av kod i Java, C++, Objective-C, Python, Rust, Go och mÄnga andra sprÄk, samt byggande av mobilappar för Android och iOS. Projektkod levererad av licensierad under Apache 2.0.

En betydande versionsĂ€ndring innebĂ€r tillĂ€gg av Ă€ndringar som bryter bakĂ„tkompatibiliteten. FrĂ„n och med Bazel 2.0 Ă€r följande lĂ€gen aktiverade som standard: "—incompatible_remap_main_repo" (lĂ€nkar med namn och via @ lĂ€nkar nu till samma arkiv), "—incompatible_disallow_dict_lookup"_(anvĂ€ndning av unhashable nycklar),
"--incompatible_remove_native_maven_jar" och "--incompatible_prohibit_aapt1". Andra Àndringar inkluderar:

  • I ett lag frĂ„ga experimentellt stöd har dykt upp för en ny utgĂ„va av utdataformatet "proto" (-output=proto), som för nĂ€rvarande Ă€r inaktiverat som standard (-incompatible_proto_output_v2) och ger en mer kompakt presentation av data;
  • Lade till flaggan "--incompatible_remove_enabled_toolchain_types" för att ta bort fĂ€ltet PlatformConfiguration.enabled_toolchain_types;
  • Tillagt skydd mot att ladda paket som anvĂ€nder cykliska symboliska lĂ€nkar vid laddning av banor nĂ€r de utökas;
  • Implementerade möjligheten att anvĂ€nda flaggan "--disk_cache" med externa gRPC-cacher;
  • I paketet för Debian och det binĂ€ra installationsprogrammet inkluderar ett förbĂ€ttrat lager som hanterar ~/.bazelversion-filer och miljövariabeln $USE_BAZEL_VERSION;
  • Som förberedelse för utfasningen av runfiles manifestfiler har flaggan "--experimental_skip_runfiles_manifests" lagts till.

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.

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. 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.

KĂ€lla: opennet.ru

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster