Bazel 1.0 куруу системасынын чыгарылышы

киргизилген ачык монтаждоо куралдарын чыгаруу Bazel 1.0, Google компаниясынын инженерлери тарабынан иштелип чыккан жана компаниянын ички долбоорлорунун көбүн чогултуу үчүн колдонулган. Release 1.0 семантикалык релиз версиясына өтүүнү белгиледи жана ошондой эле артка карай шайкештикти бузган көп сандагы өзгөрүүлөрдү киргизүү менен өзгөчөлөндү. Долбоор коду жайылуу Apache 2.0 астында лицензияланган.

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

Базелдин айырмалоочу өзгөчөлүктөрүнүн арасында чогултуу процессинин жогорку ылдамдыгы, ишенимдүүлүгү жана кайталануучулугу бар. Жогорку куруу ылдамдыгына жетүү үчүн, Базел куруу процесси үчүн кэштөө жана параллелдөө ыкмаларын активдүү колдонот. BUILD файлдары бардык көз карандылыктарды толук аныкташы керек, анын негизинде өзгөртүүлөр киргизилгенден кийин (өзгөрүлгөн файлдар гана кайра түзүлөт) компоненттерди кайра куруу боюнча чечимдер кабыл алынат жана монтаж процессин параллелдештирүүгө тийиш. Аспаптар дагы кайталануучу монтажды камсыз кылат, б.а. Долбоорду иштеп чыгуучунун машинасында куруунун натыйжасы үзгүлтүксүз интеграция серверлери сыяктуу үчүнчү тараптын системаларындагы курууга толугу менен окшош болот.

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

Source: opennet.ru

Комментарий кошуу