Bazel 1.0 бүтээх системийн хувилбар

Оруулсан задгай угсрах хэрэгслийг гаргах Базел 1.0, Google-ийн инженерүүдийн боловсруулсан бөгөөд компанийн дотоод төслүүдийн ихэнхийг угсардаг байсан. Хувилбар 1.0 нь семантик хувилбарын хувилбарт шилжсэнийг тэмдэглэсэн бөгөөд буцаах нийцтэй байдлыг эвдсэн олон тооны өөрчлөлтүүдийг нэвтрүүлсэнээрээ алдартай байв. Төслийн код тараасан Apache 2.0 дагуу лицензтэй.

Базел шаардлагатай хөрвүүлэгч болон тестийг ажиллуулж төслөө бүтээдэг. Уг бүтээх систем нь Google-ийн төслүүдийг оновчтой болгохын тулд эхнээс нь бүтээгдсэн бөгөөд үүнд олон програмчлалын хэл дээр код агуулсан, өргөн туршилт шаарддаг, олон платформд зориулагдсан маш том төслүүд болон төслүүд багтсан болно. Энэ нь Java, C++, Objective-C, Python, Rust, Go болон бусад олон хэл дээр код бүтээх, турших, мөн Android болон iOS үйлдлийн системд зориулсан гар утасны програмуудыг бүтээхэд дэмжлэг үзүүлдэг. Өөр өөр платформ, архитектурт зориулсан нэг угсралтын файлыг ашиглахыг дэмждэг; жишээлбэл, серверийн систем болон хөдөлгөөнт төхөөрөмжийн аль алинд нь өөрчлөлт оруулаагүй нэг угсралтын файлыг ашиглах боломжтой.

Bazel-ийн онцлог шинж чанаруудын дунд угсралтын үйл явцын өндөр хурд, найдвартай байдал, давтагдах чадвар орно. Барилгын өндөр хурдыг бий болгохын тулд Базел нь бүтээх процесст кэш хийх, параллелжуулах аргыг идэвхтэй ашигладаг. BUILD файлууд нь бүх хамаарлыг бүрэн тодорхойлох ёстой бөгөөд үүний үндсэн дээр өөрчлөлт хийсний дараа бүрэлдэхүүн хэсгүүдийг дахин бүтээх шийдвэр гаргадаг (зөвхөн өөрчилсөн файлуудыг дахин бүтээдэг), угсрах процессыг зэрэгцүүлдэг. Багаж хэрэгсэл нь мөн давтагдах угсралтыг баталгаажуулдаг, i.e. Хөгжүүлэгчийн машин дээр төсөл бүтээх үр дүн нь тасралтгүй интеграцийн серверүүд гэх мэт гуравдагч талын системүүд дээр бүтээгдсэнтэй бүрэн ижил байх болно.

Make and Ninja-аас ялгаатай нь Базел угсралтын дүрмийг бий болгохдоо дээд түвшний арга барилыг ашигладаг бөгөөд үүнд командуудыг барьж буй файлуудтай холбохыг тодорхойлохын оронд илүү хийсвэр бэлэн блокуудыг ашигладаг. C++”, “C++ хэл дээр номын сан байгуулах” эсвэл “C++-д зориулсан тест ажиллуулах”, түүнчлэн зорилтот болон бүтээх платформуудыг тодорхойлох. BUILD текст файлд төслийн бүрэлдэхүүн хэсгүүд нь тусдаа файлын түвшинд, хөрвүүлэгчийн дуудлагын командын түвшинд дэлгэрэнгүй мэдээлэлгүйгээр олон тооны номын сан, гүйцэтгэгдэх файлууд, тестүүд гэж тодорхойлогддог. Нэмэлт функцийг өргөтгөлүүдийг холбох механизмаар дамжуулан хэрэгжүүлдэг.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх