Facebook idasindikiza Buck2 build system

Facebook idakhazikitsa njira yatsopano yomanga, Buck2, yomwe cholinga chake ndi kukonza zomanga ma projekiti kuchokera kumalo osungira akuluakulu, kuphatikiza ma code m'zilankhulo zosiyanasiyana zamapulogalamu. Kusiyanitsa kwakukulu pakati pa kukhazikitsidwa kwatsopano ndi dongosolo la Buck lomwe linagwiritsidwa ntchito kale pa Facebook ndikugwiritsa ntchito chinenero cha Dzimbiri m'malo mwa Java ndi kuwonjezeka kwakukulu kwa kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe ka kayendetsedwe kake. ntchito kawiri mwachangu monga Buck). Khodiyo imagawidwa pansi pa layisensi ya Apache 2.

Dongosololi silimangiriridwa pamisonkhano yama code m'zilankhulo zina ndipo kunja kwa bokosilo limathandizira kusonkhana kwama projekiti olembedwa m'zilankhulo C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell ndi OCaml. , yogwiritsidwa ntchito ndi Facebook. Chilankhulo cha Starlark, chochokera ku Python (monga ku Bazel), chimagwiritsidwa ntchito kupanga zowonjezera, kupanga zolemba ndi malamulo. Starlark imakupatsani mwayi wokulitsa kuthekera kwa dongosolo la msonkhano ndikuchotsa zilankhulo zomwe zimagwiritsidwa ntchito pamapulojekiti osonkhanitsidwa.

Kuchita kwakukulu kumatheka kudzera mu caching of results, kufanana kwa ntchito ndi chithandizo cha ntchito zakutali (Remote Build Execution). Pamsonkhanowu, lingaliro la "hermeticity" limagwiritsidwa ntchito - code yosonkhanitsidwa imachotsedwa kunja, palibe chomwe chimatulutsidwa kunja panthawi ya msonkhano, ndipo kubwereza mobwerezabwereza ntchito pa machitidwe osiyanasiyana kumabweretsa zotsatira zomwezo. misonkhano yobwerezabwereza, mwachitsanzo, zotsatira za kusonkhanitsa pulojekiti pamakina opangira makinawo zidzakhala zofanana kwambiri ndi kumanga pa seva yophatikizana yosalekeza). Mkhalidwe wosowa kudalira umadziwika ngati cholakwika mu Buck2.

Zofunikira za Buck2:

  • Malamulo othandizira zilankhulo zamapulogalamu ndi maziko a dongosolo la msonkhano ndizosiyana kotheratu. Malamulo amagwiritsa ntchito chilankhulo cha Starlark, ndipo zida za Starlark ndi kukhazikitsa zidalembedwa mu Rust.
  • Dongosolo la msonkhano limagwiritsa ntchito chithunzi chimodzi chodalira chowonjezera (popanda kugawanika m'magawo), chomwe chimalola kukulitsa kuya kwa kufanana kwa ntchito poyerekeza ndi Buck ndi Bazel ndikupewa zolakwika zamitundu yambiri.
  • Khodi ya Buck2 yomwe idasindikizidwa pa GitHub ndi malamulo othandizira zilankhulo zamapulogalamu ali pafupifupi ofanana ndi mtundu wamkati womwe umagwiritsidwa ntchito pazitukuko za Facebook (kusiyana kokhako kumakhudzana ndi kusindikiza kwa ma compilers ndi ma seva ophatikiza omwe amagwiritsidwa ntchito pa Facebook).
  • Dongosolo la msonkhano limapangidwa ndi diso kuti liphatikizidwe ndi machitidwe akutali omwe amakulolani kuti mugwiritse ntchito ma seva akutali. API yakutali imagwirizana ndi Bazel ndipo imayesedwa kuti igwirizane ndi Buildbarn ndi EngFlow.
  • Kuphatikizika ndi machitidwe a fayilo kumaperekedwa, momwe zomwe zili munkhokwe yonse zimaperekedwa, koma kwenikweni, ntchito ikuchitika ndi kagawo kakang'ono ka gawo lazosungirako (wopanga mapulogalamu amawona malo onse, koma mafayilo ofunikira okha. zomwe zafikiridwa zimachotsedwa kunkhokwe). VFS yochokera ku EdenFS ndi Git LFS, zomwe zimagwiritsidwa ntchito mu Sapling, zimathandizidwa.

Source: opennet.ru

Kuwonjezera ndemanga