Facebook yakaburitsa iyo Buck2 kuvaka system

Facebook yakaunza hurongwa hutsva hwekuvaka, Buck2, yakanangana nekuronga kuvaka kwemapurojekiti kubva kumatura makuru, kusanganisira kodhi mumitauro yakasiyana yehurongwa. Misiyano yakakosha pakati pekushandiswa kutsva neBuck system yakamboshandiswa paFacebook ndiko kushandiswa kweRust mutauro pachinzvimbo cheJava uye kuwedzera kukuru kwekubudirira uye kugadzirwa kwehurongwa hwegungano (mubvunzo dzemukati mune imwecheteyo, Buck2 inoita musangano. mabasa kaviri nekukurumidza seBuck). Iyo kodhi inogoverwa pasi peiyo Apache 2.0 rezinesi.

Iyo sisitimu haina kusungirirwa kumusangano wekodhi mumitauro chaiyo uye kunze kwebhokisi inotsigira kuungana kwemapurojekiti akanyorwa mumitauro C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell uye OCaml. , inoshandiswa ne Facebook. Mutauro weStarlark, wakavakirwa paPython (semuBazel), unoshandiswa kugadzira ma-add-ons, kuvaka zvinyorwa nemitemo. Starlark inokutendera iwe kuti uwedzere kugona kweiyo musangano system uye abstract kubva kune chaiwo mitauro inoshandiswa mumapurojekiti akaungana.

Kuita kwepamusoro kunowanikwa kuburikidza necaching yemhedzisiro, kufanana kwebasa uye kutsigirwa kwekuita kure kure kwemabasa (Remote Build Execution). Munzvimbo yegungano, iyo pfungwa ye "hermeticity" inoshandiswa - iyo yakaunganidzwa kodhi yakagurwa kubva kunze kwenyika, hapana chinotakurwa kubva kunze panguva yegungano, uye kudzokororwa kwekuita basa pane akasiyana masisitimu kunotungamira kune imwechete mhedzisiro. magungano anodzokororwa, semuenzaniso, mhedzisiro yekuunganidza purojekiti pamushini wemugadziri ichave yakanyatsofanana nekuvaka pane inoenderera yekubatanidza server). Mamiriro ekushaya kutsamira anoonekwa sechikanganiso muBuck2.

Zvinhu zvakakosha zveBuck2:

  • Mitemo yekutsigira programming mitauro uye musimboti wegadziriro yegungano zvakaparadzana zvachose. Mitemo inoshandisa mutauro weStarlark, uye Starlark toolkit uye kuita zvakanyorwa muRust.
  • Iyo yegungano sisitimu inoshandisa imwechete yakawedzera kutsamira girafu (isina kupatsanurwa kuita nhanho), iyo inobvumira kuwedzera kudzika kwekuenderana kwebasa zvichienzaniswa neBuck neBazel uye kudzivirira akawanda marudzi ekukanganisa.
  • Iyo Buck2 kodhi yakaburitswa paGitHub uye iyo mitemo yekutsigira mitauro yekuronga yakada kufanana neshanduro yemukati inoshandiswa muFacebook zvivakwa (misiyano chete iri maererano neshanduro dzevagadziri uye maseva egungano anoshandiswa muFacebook).
  • Iyo dhizaini sisitimu yakagadzirwa neziso rekubatanidza neyekure basa rekuita masisitimu ayo anobvumidza iwe kuti umhanye basa kumaseva ari kure. Iyo kure execution API inoenderana neBazel uye yakaedzwa kuenderana neBuildbarn uye EngFlow.
  • Kubatanidzwa neiyo chaiyo faira masisitimu inopihwa, umo zviri mukati meiyo yese repository zvinounzwa, asi kutaura zvazviri, basa rinoitwa neazvino chidimbu chenzvimbo yechikamu cheiyo repository (mugadziri anoona iyo yese repository, asi chete mafaera anodiwa. iyo inowanikwa inotorwa kubva kune repository). VFS yakavakirwa paEdenFS uye Git LFS, iyo inoshandiswa muSapling, inotsigirwa.

Source: opennet.ru

Voeg