Facebook bipụtara usoro iwu Buck2

Facebook webatara usoro ihe owuwu ọhụrụ, Buck2, nke ezubere ịhazi nrụpụta ọrụ sitere na nnukwu ebe nchekwa, gụnyere koodu n'asụsụ mmemme dị iche iche. Ihe dị iche iche dị n'etiti mmejuputa ọhụrụ na usoro Buck ejiribu na Facebook bụ iji asụsụ Rust kama Java na mmụba dị ukwuu na arụmọrụ na mmepụta nke usoro mgbakọ (na ule ime n'ime otu akụrụngwa, Buck2 na-eme mgbakọ). ọrụ ugboro abụọ ngwa ngwa dị ka Buck). A na-ekesa koodu ahụ n'okpuru ikike Apache 2.0.

Ejikọtaghị usoro ahụ na mgbakọ koodu n'asụsụ dị iche iche na site na igbe ahụ na-akwado mgbakọ nke ọrụ edere n'asụsụ C ++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell na OCaml. , nke Facebook na-eji. A na-eji asụsụ Starlark, dabere na Python (dị ka ọ dị na Bazel), iji chepụta mgbakwunye, wuo scripts na iwu. Starlark na-enye gị ohere ịgbasa ike nke usoro mgbakọ na mwepu site na asụsụ ndị a kapịrị ọnụ ejiri rụọ ọrụ ndị a gbakọtara.

A na-enweta arụmọrụ dị elu site n'ịkwado nsonaazụ, myirịta ọrụ na nkwado maka mmezu nke ọrụ (Remote Build Execution). N'ebe mgbakọ ahụ, a na-eji echiche nke "hermeticity" mee ihe - a na-ebipụ koodu ahụ gbakọtara site na ụwa dị n'èzí, ọ dịghị ihe ọ bụla a na-ebufe n'èzí n'oge mgbakọ ahụ, na arụ ọrụ ugboro ugboro na usoro dị iche iche na-eduga n'otu nsonaazụ ahụ ( Mgbakọ ugboro ugboro, dịka ọmụmaatụ, nsonaazụ nke ịchịkọta ọrụ na igwe onye nrụpụta ga-adị kpamkpam na-ewu na ihe nkesa njikọta na-aga n'ihu). A na-ahụta ọnọdụ enweghị ntụkwasị obi dị ka njehie na Buck2.

Isi atụmatụ nke Buck2:

  • Iwu maka ịkwado asụsụ mmemme na isi nke usoro mgbakọ dị iche iche. Iwu ndị ahụ na-eji asụsụ Starlark, na Starlark Toolkit na mmejuputa a na-ede na Rust.
  • Sistemụ mgbakọ na-eji otu eserese dabere na-abawanye (na-enweghị nkewa n'ime nkebi), nke na-enye ohere ịbawanye ịdị omimi nke ịdị n'otu nke ọrụ ma e jiri ya tụnyere Buck na Bazel ma zere ọtụtụ ụdị njehie.
  • Koodu Buck2 nke e bipụtara na GitHub na iwu maka ịkwado asụsụ mmemme bụ ihe fọrọ nke nta ka ọ bụrụ ụdị nke ime eji eme ihe na akụrụngwa Facebook (naanị ihe dị iche bụ n'ihe metụtara mbipụta nke ndị nchịkọta na sava mgbakọ ejiri na Facebook).
  • Emebere usoro mgbakọ ahụ na anya iji jikọta ya na sistemụ arụ ọrụ dịpụrụ adịpụ nke na-enye gị ohere ịrụ ọrụ na sava dịpụrụ adịpụ. API mkpochapụ dịpụrụ adịpụ dakọtara na Bazel wee nwalee maka ndakọrịta na Buildbarn na EngFlow.
  • A na-enye ntinye aka na sistemụ faịlụ mebere, nke ewepụtara ọdịnaya nke ebe nchekwa niile, mana n'eziokwu, a na-arụ ọrụ na mpaghara mpaghara ugbu a nke akụkụ nke ebe nchekwa (onye nrụpụta na-ahụ ebe nchekwa niile, mana naanị faịlụ achọrọ. nke a na-enweta na-esi na ebe nchekwa). VFS dabere na EdenFS na Git LFS, nke a na-eji na Sapling, na-akwado.

isi: opennet.ru

Tinye a comment