Bazel 1.0 qurish tizimining chiqarilishi

Tanishtirdi ochiq yig'ish vositalarini chiqarish Bazel 1.0, Google muhandislari tomonidan ishlab chiqilgan va kompaniyaning aksariyat ichki loyihalarini yig'ish uchun ishlatilgan. Reliz 1.0 semantik versiya versiyasiga o'tishni belgilab berdi va shuningdek, orqaga qarab muvofiqlikni buzadigan ko'plab o'zgarishlarni kiritishi bilan ajralib turardi. Loyiha kodi tarqaladi Apache 2.0 ostida litsenziyalangan.

Bazel loyihani kerakli kompilyatorlar va testlarni ishga tushirish orqali quradi. Qurilish tizimi boshidan boshlab Google loyihalarini, jumladan, bir nechta dasturlash tillarida kodni o'z ichiga olgan, keng ko'lamli sinovlarni talab qiluvchi va bir nechta platformalar uchun yaratilgan juda yirik loyihalar va loyihalarni optimal tarzda qurish uchun mo'ljallangan. U Java, C++, Objective-C, Python, Rust, Go va boshqa ko‘plab tillarda kod yaratish va sinovdan o‘tkazish, shuningdek, Android va iOS uchun mobil ilovalar yaratishni qo‘llab-quvvatlaydi. Turli platformalar va arxitekturalar uchun yagona yig'ish fayllaridan foydalanish qo'llab-quvvatlanadi; masalan, server tizimi va mobil qurilma uchun o'zgarishsiz bitta montaj faylidan foydalanish mumkin.

Bazelning o'ziga xos xususiyatlari orasida yig'ish jarayonining yuqori tezligi, ishonchliligi va takrorlanishi mavjud. Qurilishning yuqori tezligiga erishish uchun Bazel qurish jarayonida keshlash va parallellashtirish usullaridan faol foydalanadi. BUILD fayllari barcha bog'liqliklarni to'liq aniqlashi kerak, buning asosida o'zgarishlar kiritilgandan so'ng (faqat o'zgartirilgan fayllar qayta tiklanadi) komponentlarni qayta tiklash bo'yicha qarorlar qabul qilinadi va montaj jarayonini parallel qiladi. Asboblar, shuningdek, takrorlanadigan yig'ishni ta'minlaydi, ya'ni. Loyihani ishlab chiquvchining mashinasida qurish natijasi uchinchi tomon tizimlarida, masalan, uzluksiz integratsiya serverlarida qurilgan bilan mutlaqo bir xil bo'ladi.

Make va Ninja-dan farqli o'laroq, Bazel yig'ish qoidalarini qurishda yuqori darajadagi yondashuvdan foydalanadi, bunda buyruqlarning qurilayotgan fayllarga bog'lanishini belgilash o'rniga, ko'proq mavhum tayyor bloklar qo'llaniladi, masalan, "bajariladigan faylni yaratish". C++”, “C++ tilida kutubxona qurish” yoki “C++ uchun test o‘tkazish”, shuningdek maqsad va platformalarni yaratish. BUILD matn faylida loyiha komponentlari alohida fayllar va kompilyator chaqiruv buyruqlari darajasida tafsilotsiz kutubxonalar, bajariladigan fayllar va testlar toʻplami sifatida tavsiflanadi. Qo'shimcha funktsiyalar kengaytmalarni ulash mexanizmi orqali amalga oshiriladi.

Manba: opennet.ru

a Izoh qo'shish