Kutolewa kwa mfumo wa ujenzi wa Bazel 2.0

Inapatikana kutolewa kwa zana za mkusanyiko wa chanzo huria Bazel 2.0, iliyotengenezwa na wahandisi wa Google na kutumika kujenga miradi mingi ya ndani ya kampuni. Bazel hushughulikia ujenzi wa miradi, kuendesha vikusanyaji na majaribio muhimu. Inasaidia msimbo wa ujenzi na majaribio katika Java, C++, Objective-C, Python, Rust, Go, na lugha zingine nyingi, pamoja na kujenga programu za simu za mkononi kwa ajili ya Android na iOS. Msimbo wa mradi kusambazwa na leseni chini ya Apache 2.0.

Mabadiliko makubwa ya toleo yanahusisha kuongezwa kwa mabadiliko ambayo yanavunja uoanifu wa nyuma. Kuanzia na Bazel 2.0, aina zifuatazo zinawezeshwa kwa chaguo-msingi: "--incompatible_remap_main_repo" (marejeleo kwa jina na kwa @ sasa yanarejelea hazina sawa), "--incompatible_disallow_dict_lookup" (matumizi ya funguo zisizoweza kuondolewa),
"--incompatible_remove_native_maven_jar" na "--incompatible_prohibit_aapt1". Mabadiliko mengine ni pamoja na:

  • Katika timu swali usaidizi wa majaribio umeongezwa kwa toleo jipya la umbizo la towe la "proto" (--output=proto), ambalo kwa sasa limezimwa kwa chaguo-msingi (--incompatible_proto_output_v2) na hutoa uwakilishi thabiti zaidi wa data;
  • Imeongeza alama "--incompatible_remove_enabled_toolchain_types" ili kuondoa uga wa PlatformConfiguration.enabled_toolchain_types;
  • Ulinzi ulioongezwa dhidi ya vifurushi vya upakiaji vinavyotumia viungo vya ishara za mviringo wakati wa kupanua njia;
  • Imetekeleza uwezo wa kutumia bendera ya "--disk_cache" iliyo na akiba za gRPC za nje;
  • Katika kifurushi cha Debian na kisakinishi cha binary kinajumuisha safu iliyoboreshwa inayoshughulikia faili za ~/.bazelversion na kigezo cha mazingira cha $USE_BAZEL_VERSION;
  • Katika kujiandaa kwa kuacha kuendesha faili zilizo na faili za maelezo, alama ya "--experimental_skip_runfiles_manifests" imeongezwa.

Miongoni mwa sifa bainifu za Bazel ni kasi ya juu, kutegemewa, na kurudiwa kwa mchakato wa ujenzi. Ili kufikia kasi ya juu ya ujenzi, Bazel hutumia kwa bidii mbinu za kuweka akiba na kusawazisha. Faili za BUILD lazima zifafanue kikamilifu vitegemezi vyote, ambavyo hutumika kuamua kama kuunda upya vipengele baada ya mabadiliko (faili zilizobadilishwa pekee ndizo zimejengwa upya) na kama kusawazisha mchakato wa kujenga. Uwekaji zana pia huhakikisha uwezo wa kujirudia, ikimaanisha kuwa mradi uliojengwa kwenye mashine ya msanidi utaendana kabisa na muundo wa mifumo ya watu wengine, kama vile seva za ujumuishaji zinazoendelea.

Tofauti na Make na Ninja, Bazel hutumia mbinu ya hali ya juu ya kujenga sheria za ujenzi. Badala ya kufafanua vifungo vya amri kwa faili zinazojengwa, hutumia vizuizi visivyoeleweka zaidi, vilivyotengenezwa tayari, kama vile "kujenga C++ inayoweza kutekelezeka," "jenga maktaba ya C++," au "endesha jaribio la C++," pamoja na kufafanua lengo na majukwaa ya kujenga. Katika faili ya maandishi ya BUILD, vipengee vya mradi vinafafanuliwa kama vifurushi vya maktaba, vitekelezo na majaribio, bila kueleza kwa kina faili binafsi na amri za ombi za mkusanyaji. Utendaji wa ziada unatekelezwa kupitia viendelezi.

Utumiaji wa faili moja za ujenzi kwa majukwaa na usanifu tofauti unasaidiwa. Kwa mfano, faili moja ya ujenzi inaweza kutumika bila kubadilika kwa mfumo wa seva na kifaa cha rununu. Mfumo wa usanifu uliundwa kuanzia chini hadi kujenga miradi ya Google kikamilifu, ikijumuisha miradi na miradi mikubwa sana iliyo na msimbo katika lugha nyingi za programu, inayohitaji majaribio ya kina na kutengenezwa kwa majukwaa mengi.

Chanzo: opennet.ru

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS 🔥 Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster