Ho lokolloa ha sistimi ea kaho ea Bazel 2.0

Fumaneha ho lokolloa ha lisebelisoa tse bulehileng tsa kopano Bazel 2.0, e entsoeng ke baenjiniere ba Google 'me e ne e sebelisetsoa ho bokella boholo ba merero ea ka hare ea k'hamphani. Bazel o haha ​​​​morero ka ho tsamaisa baqapi le liteko tse hlokahalang. E ts'ehetsa khoutu ea ho aha le ho etsa liteko ho Java, C ++, Objective-C, Python, Rust, Go le lipuo tse ling tse ngata, hammoho le ho aha lits'ebetso tsa mehala tsa Android le iOS. Khoutu ea morero ajoa ke e nang le tumello tlas'a Apache 2.0.

Phetoho e kholo ea mofuta o kenyelletsa ho eketsoa ha liphetoho tse senyang tšebelisano ea morao-rao. Ho qala ka Bazel 2.0, mekhoa e latelang e nolofalloa ka ho sa feleng: “—incompatible_remap_main_repo” (lihokelo ka mabitso le ka @ hona joale sehokela sebakeng se le seng), “—incompatible_disallow_dict_lookup”_(ts'ebeliso ea linotlolo tse ke keng tsa hlakoloa),
"--incompatible_remove_native_maven_jar" le "--incompatible_prohibit_aapt1". Liphetoho tse ling li kenyelletsa:

  • Sehlopheng aquery tšehetso ea liteko e hlahile bakeng sa khatiso e ncha ea sebopeho sa tlhahiso ea "proto" (-output=proto), eo hajoale e holofalitsoeng ke kamehla (-incompatible_proto_output_v2) mme e fana ka tlhahiso e kopaneng ea data;
  • E kentse folakha ea "--incompatible_remove_enabled_toolchain_types" ho tlosa sebaka sa PlatformConfiguration.enabled_toolchain_types;
  • Tšireletso e ekelitsoeng khahlanong le ho kenya liphutheloana tse sebelisang lihokelo tsa tšoantšetso tsa cyclic ha u laela litsela ha u li atolosa;
  • E kentse tšebetsong bokhoni ba ho sebelisa "--disk_cache" folakha ka li-cache tsa gRPC tsa kantle;
  • Sephutheloana sa Debian le sesebelisoa sa binary se kenyelletsa lera le ntlafetseng le sebetsanang le ~/.bazelversion lifaele le $USE_BAZEL_VERSION ea tikoloho e fapaneng;
  • E le ho itokisetsa ho tlosoa ha lifaele tsa ponahalo ea li-runfiles, folakha "--experimental_skip_runfiles_manifests" e kentsoe.

Har'a likarolo tse ikhethang tsa Bazel ke lebelo le phahameng, ho ts'epahala le ho pheta-pheta ha ts'ebetso ea kopano. Ho fihlela lebelo le phahameng la ho aha, Bazel o sebelisa ka mafolofolo mekhoa ea ho boloka le ho tsamaisana le ts'ebetso ea kaho. BUILD lifaele li tlameha ho hlalosa ka ho feletseng litšepe tsohle, motheong oa hore liqeto li etsoa ho tsosolosa likarolo ka mor'a hore liphetoho li etsoe (lifaele tse fetotsoeng feela li tsosolosoa) le ho bapisa mokhoa oa kopano. Tooling e boetse e netefatsa kopano e ka phetoang, i.e. sephetho sa ho aha morero mochine oa moqapi o tla tšoana ka ho feletseng le ho haha ​​​​litsamaiso tsa mekhatlo ea boraro, tse kang li-server tse tsoelang pele tsa ho kopanya.

Ho fapana le Make le Ninja, Bazel o sebelisa mokhoa oa boemo bo holimo oa ho haha ​​​​melao ea kopano, eo ho eona, ho fapana le ho hlalosa tlamo ea litaelo ho lifaele tse ntseng li hahuoa, ho sebelisoa li-blocks tse seng li entsoe ka mokhoa o hlakileng, joalo ka "ho aha faele e sebetsang ho C++”, “ho aha laeborari ka C++” kapa “ho etsa tlhahlobo bakeng sa C++”, hammoho le ho tsebahatsa sepheo le sethala sa ho aha. Ka har'a faele ea mongolo ea BUILD, likarolo tsa projeke li hlalosoa e le sehlopha sa lilaebrari, lifaele tse ka phethisoang le liteko, ntle le ho qaqisa boemo ba lifaele ka bomong le litaelo tsa mehala ea mohala. Ts'ebetso e eketsehileng e kenngoa ts'ebetsong ka mochine oa ho hokahanya lisebelisoa.

Tšebeliso ea lifaele tsa kopano e le 'ngoe bakeng sa liforomo le meaho e fapaneng ea tšehetsoa; mohlala, faele e le 'ngoe ea kopano ntle le liphetoho e ka sebelisoa bakeng sa sistimi ea seva le sesebelisoa sa mehala. Sistimi ea kaho e entsoe ho tloha fatše ho ea holimo ho aha merero ea Google hantle, ho kenyeletsoa merero le merero e meholo haholo e nang le khoutu ka lipuo tse ngata tsa mananeo, e hlokang liteko tse ngata, 'me e etselitsoe lipolanete tse ngata.

Source: opennet.ru

Eketsa ka tlhaloso