Facebook ya buga tsarin ginin Buck2

Facebook ya gabatar da wani sabon tsarin gini mai suna Buck2, da nufin tsara gine-ginen ayyuka daga manyan ma'ajiya, gami da code a cikin harsunan shirye-shirye daban-daban. Babban bambance-bambancen da ke tsakanin sabon aiwatarwa da tsarin Buck da aka yi amfani da su a baya a Facebook shine amfani da harshen Rust maimakon Java da kuma karuwa mai yawa a cikin inganci da yawan aiki na tsarin taro (a cikin gwaje-gwaje na ciki a cikin kayan aiki iri ɗaya, Buck2 yana yin taro. ayyuka sau biyu da sauri kamar Buck). Ana rarraba lambar a ƙarƙashin lasisin Apache 2.0.

Ba a haɗa tsarin ba tare da taron lambar a cikin takamaiman harsuna kuma daga cikin akwatin yana tallafawa taron ayyukan da aka rubuta a cikin yarukan C ++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell da OCaml , Facebook mai amfani. Harshen Starlark, wanda ya dogara da Python (kamar a cikin Bazel), ana amfani da shi don tsara add-ons, gina rubutun da dokoki. Starlark yana ba ku damar faɗaɗa ikon tsarin taro da ƙayyadaddun yarukan da aka yi amfani da su a cikin ayyukan da aka haɗa.

Ana samun babban aiki ta hanyar caching sakamako, daidaita aikin aiki da goyan bayan aiwatar da ayyuka masu nisa (Kisa Gina Nesa). A cikin yanayin taro, ana amfani da manufar "hermeticity" - an yanke lambar da aka haɗa daga waje, babu wani abu da aka ɗora daga waje yayin tsarin taro, kuma maimaita kisa na aiki akan tsarin daban-daban yana haifar da sakamako iri ɗaya ( majalissar da aka maimaita, alal misali, sakamakon hada aikin akan injin mai haɓakawa zai kasance gaba ɗaya daidai da ginin sabar haɗin kai mai ci gaba). Ana ganin yanayin rashin dogaro a matsayin kuskure a cikin Buck2.

Babban fasali na Buck2:

  • Dokokin tallafawa harsunan shirye-shirye da kuma ainihin tsarin taro sun bambanta. Dokokin suna amfani da harshen Starlark, kuma Starlark Toolkit da aiwatarwa an rubuta su cikin Rust.
  • Tsarin taro yana amfani da jadawali na dogaro da ƙari guda ɗaya (ba tare da rarrabuwa cikin matakai ba), wanda ke ba da damar haɓaka zurfin daidaituwar aiki idan aka kwatanta da Buck da Bazel da guje wa nau'ikan kurakurai da yawa.
  • Lambar Buck2 da aka buga akan GitHub da ka'idojin tallafawa harsunan shirye-shirye kusan sun yi kama da sigar ciki da ake amfani da su a cikin abubuwan more rayuwa na Facebook (bambance-bambancen kawai sun shafi bugu na masu tarawa da sabar taro da ake amfani da su a Facebook).
  • An tsara tsarin taro tare da ido don haɗawa tare da tsarin aiwatar da ayyuka na nesa wanda ke ba ku damar gudanar da aiki a kan sabobin nesa. API ɗin kisa mai nisa ya dace da Bazel kuma an gwada shi don dacewa tare da Buildbarn da EngFlow.
  • Ana ba da haɗin kai tare da tsarin fayilolin kama-da-wane, wanda aka gabatar da abubuwan da ke cikin dukkan ma'ajiyar, amma a zahiri, ana aiwatar da aikin tare da yanki na yanki na yanzu na ɓangaren ma'ajiyar (mai haɓaka yana ganin duk ma'ajiyar, amma fayilolin da ake buƙata kawai). Ana fitar da abin da ake samu daga ma'adanar). VFS bisa EdenFS da Git LFS, waɗanda ake amfani da su a Sapling, ana tallafawa.

source: budenet.ru

Add a comment