Sakin tsarin ginin Bazel 2.0

Akwai saki na bude taro kayan aikin Bazela 2.0, injiniyoyi daga Google ne suka kirkiro kuma suka yi amfani da su wajen hada yawancin ayyukan cikin gida na kamfanin. Bazel yana gina aikin ta hanyar gudanar da masu tarawa da gwaje-gwaje masu dacewa. Yana goyan bayan ginawa da lambar gwaji a Java, C++, Objective-C, Python, Rust, Go da sauran yarukan da yawa, da kuma gina aikace-aikacen hannu don Android da iOS. Lambar aikin rarraba ta lasisi a ƙarƙashin Apache 2.0.

Muhimmiyar canjin sigar ya ƙunshi ƙarin canje-canje waɗanda ke karya daidaituwar baya. Farawa tare da Bazel 2.0, ana kunna hanyoyin masu zuwa ta tsohuwa: "-incompatible_remap_main_repo" (hanyoyi ta suna kuma ta hanyar @ yanzu hanyar haɗi zuwa ma'ajin guda ɗaya), "-incompatible_disallow_dict_lookup"_(amfani da maɓallan da ba a haɗa su ba),
"--incompatible_remove_native_maven_jar" da "--incompatible_prohibit_aapt1". Sauran canje-canje sun haɗa da:

  • A cikin tawaga tambaya goyan bayan gwaji ya bayyana don sabon bugu na tsarin fitarwa na “proto” (-output=proto), wanda a halin yanzu an kashe shi ta tsohuwa (-incompatible_proto_output_v2) kuma yana ba da ƙarin ƙayyadaddun gabatarwar bayanai;
  • Ƙara alamar "--incompatible_remove_enabled_toolchain_types" don cire filin PlatformConfiguration.enabled_toolchain_types;
  • Ƙara kariya daga fakitin lodawa waɗanda ke amfani da hanyoyin haɗin keɓaɓɓu yayin loda hanyoyin yayin faɗaɗa su;
  • An aiwatar da ikon yin amfani da tuta "--disk_cache" tare da caches gRPC na waje;
  • Kunshin Debian da mai sakawa na binary sun haɗa da ingantacciyar Layer wanda ke sarrafa fayilolin ~/.bazelversion da canjin yanayi $USE_BAZEL_VERSION;
  • A cikin shirye-shiryen ƙaddamar da bayanan bayanan runfiles, an ƙara tutar "--experimental_skip_runfiles_manifests".

Daga cikin siffofi na musamman na Bazel shine babban gudun, amintacce da kuma maimaita tsarin taro. Don cimma babban saurin gini, Bazel yana amfani da dabarun caching da dabarun daidaitawa don aikin ginin. Fayilolin BUILD dole ne su ayyana duk abin dogaro, bisa ga abin da aka yanke shawarar sake gina abubuwan da aka gyara bayan an yi canje-canje (ana sake gina fayilolin da aka canza kawai) da daidaita tsarin taro. Kayan aiki kuma yana tabbatar da haɗuwa mai maimaitawa, watau. sakamakon gina wani aiki a kan na'ura mai haɓakawa zai kasance daidai da ginawa akan tsarin ɓangare na uku, kamar ci gaba da sabar haɗin kai.

Ba kamar Make da Ninja ba, Bazel yana amfani da babbar hanyar dabara don gina ƙa'idodin taro, wanda, maimakon ma'anar ɗaurin umarni ga fayilolin da ake ginawa, ana amfani da ƙarin tubalan shirye-shiryen da aka yi, kamar "gina fayil ɗin da za a iya aiwatarwa a ciki. C++", "gina ɗakin karatu a C++" ko "gudanar gwaji don C++", da kuma gano manufa da gina dandamali. A cikin fayil ɗin rubutu na BUILD, an kwatanta abubuwan aikin a matsayin gungun ɗakunan karatu, fayilolin aiwatarwa da gwaje-gwaje, ba tare da yin cikakken bayani ba a matakin kowane fayiloli da umarnin kira mai tarawa. Ana aiwatar da ƙarin ayyuka ta hanyar hanyar haɗa kari.

Ana goyan bayan amfani da fayilolin taro guda ɗaya don dandamali daban-daban da gine-gine; alal misali, fayil ɗin taro ɗaya ba tare da canje-canje ba ana iya amfani da su duka tsarin sabar da na'urar hannu. An tsara tsarin ginin daga ƙasa har zuwa mafi kyawun gina ayyukan Google, gami da manyan ayyuka da ayyukan da ke ɗauke da lamba a cikin harsunan shirye-shirye da yawa, suna buƙatar gwaji mai yawa, kuma an gina su don dandamali da yawa.

source: budenet.ru

Add a comment