Hoʻokuʻu i ka ʻōnaehana kūkulu Bazel 2.0

Loaʻa ka hoʻokuʻu ʻana i nā mea hana hui hāmama ʻO Bazel 2.0, hoʻomohala ʻia e nā ʻenekinia mai Google a hoʻohana ʻia e hōʻuluʻulu i ka hapa nui o nā papahana kūloko o ka hui. Hoʻokumu ʻo Bazel i ka papahana ma ka holo ʻana i nā mea hoʻopili pono a me nā hoʻāʻo. Kākoʻo ia i ke kūkulu ʻana a me ka hoʻāʻo ʻana i ke code ma Java, C++, Objective-C, Python, Rust, Go a me nā ʻōlelo ʻē aʻe he nui, a me ke kūkulu ʻana i nā noi kelepona no Android a me iOS. Code papahana mahele ʻia e laikini ma lalo o Apache 2.0.

ʻO kahi hoʻololi koʻikoʻi e pili ana i ka hoʻohui ʻana i nā hoʻololi e wāwahi i ka hoʻohālikelike hope. E hoʻomaka ana me Bazel 2.0, hiki ke hoʻohana ʻia kēia mau ʻano ma ka paʻamau: "—incompatible_remap_main_repo" (nā loulou ma ka inoa a ma o @ kēia loulou i ka waihona like), "—incompatible_disallow_dict_lookup" _ (hoʻohana i nā kī unhashable),
"--incompatible_remove_native_maven_jar" a me "--incompatible_prohibit_aapt1". ʻO nā hoʻololi ʻē aʻe he:

  • Ma kahi hui aquery ua ʻike ʻia ke kākoʻo hoʻokolohua no kahi paʻi hou o ke ʻano hoʻopuka "proto" (-output=proto), i hoʻopau ʻia i kēia manawa ma ka paʻamau (-incompatible_proto_output_v2) a hāʻawi i kahi hōʻike paʻa o ka ʻikepili;
  • Hoʻohui ʻia ka hae "--incompatible_remove_enabled_toolchain_types" e wehe i ka kahua PlatformConfiguration.enabled_toolchain_types;
  • Hoʻohui i ka pale i ka hoʻouka ʻana i nā pūʻolo e hoʻohana ana i nā loulou cyclic symbolic i ka wā e hoʻouka ai i nā ala i ka wā e hoʻonui ai iā lākou;
  • Hoʻokō i ka hiki ke hoʻohana i ka hae "--disk_cache" me nā huna huna gRPC waho;
  • ʻO ka pūʻolo Debian a me ka mea hoʻonohonoho binary e loaʻa kahi papa i hoʻomaikaʻi ʻia e mālama i nā faila ~/.bazelversion a me ka $USE_BAZEL_VERSION hoʻololi kaiapuni;
  • I ka hoʻomākaukau ʻana no ka pau ʻana o nā faila runfiles manifest, ua hoʻohui ʻia ka hae "--experimental_skip_runfiles_manifests".

Ma waena o nā hiʻohiʻona ʻokoʻa o Bazel ka wikiwiki kiʻekiʻe, hilinaʻi a me ka hana hou ʻana o ke kaʻina hana. No ka hoʻokō ʻana i ka wikiwiki kūkulu kiʻekiʻe, hoʻohana ikaika ʻo Bazel i ka caching a me nā ʻenehana hoʻohālikelike no ke kaʻina hana. Pono nā faila BUILD e wehewehe piha i nā mea hilinaʻi a pau, ma ke kumu o ka hoʻoholo ʻana e kūkulu hou i nā ʻāpana ma hope o ka hoʻololi ʻana (e kūkulu hou ʻia nā faila i hoʻololi ʻia) a hoʻohālikelike i ke kaʻina hana. Mea hana no hoi e hōʻoia repeatable hui, i.e. ʻo ka hopena o ke kūkulu ʻana i kahi papahana ma ka mīkini o ka mea hoʻomohala e like loa me ke kūkulu ʻana ma nā ʻōnaehana ʻaoʻao ʻekolu, e like me nā kikowaena hoʻohui mau.

ʻAʻole like me Make a me Ninja, hoʻohana ʻo Bazel i kahi ala kiʻekiʻe loa i ke kūkulu ʻana i nā lula hui, kahi, ma kahi o ka wehewehe ʻana i ka hoʻopaʻa ʻana o nā kauoha i nā faila e kūkulu ʻia ana, ua hoʻohana ʻia nā poloka i hoʻomākaukau ʻia, e like me ke "kūkulu ʻana i kahi faila hoʻokō i loko. C++", "kūkulu i kahi waihona ma C++" a i ʻole "holo i kahi hōʻike no C++", a me ka ʻike ʻana i ka pahuhopu a kūkulu i nā paepae. Ma ka waihona kikokikona BUILD, ua wehewehe ʻia nā ʻāpana papahana ma ke ʻano he pūʻulu o nā hale waihona puke, nā faila hoʻokō a me nā hoʻāʻo ʻana, me ka ʻole o ka kikoʻī ʻana i ka pae o kēlā me kēia faila a me nā kauoha kāhea hoʻonohonoho. Hoʻokō ʻia nā hana hou ma o ka mīkini no ka hoʻopili ʻana i nā hoʻonui.

Kākoʻo ʻia ka hoʻohana ʻana i nā faila hui hoʻokahi no nā paepae like ʻole a me nā hale hoʻolālā; no ka laʻana, hiki ke hoʻohana ʻia kahi faila hui me ka ʻole o nā loli no ka ʻōnaehana kikowaena a me kahi polokalamu kelepona. Hoʻolālā ʻia ka ʻōnaehana hana mai ka honua a hiki i ke kūkulu maikaʻi ʻana i nā papahana Google, me nā papahana nui loa a me nā papahana i loaʻa nā code i nā ʻōlelo hoʻolālā he nui, koi i ka hoʻāʻo nui ʻana, a ua kūkulu ʻia no nā kahua he nui.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka