Lëshimi i sistemit të ndërtimit Bazel 1.0

prezantuar lirimi i mjeteve të montimit të hapur Bazel 1.0, i zhvilluar nga inxhinierë nga Google dhe përdoret për të mbledhur shumicën e projekteve të brendshme të kompanisë. Release 1.0 shënoi kalimin në versionin e lëshimit semantik dhe ishte gjithashtu i dukshëm për prezantimin e një numri të madh ndryshimesh që prishën përputhshmërinë prapa. Kodi i projektit shperndare nga licencuar sipas Apache 2.0.

Bazel ndërton projektin duke ekzekutuar përpiluesit dhe testet e nevojshme. Sistemi i ndërtimit është projektuar nga themeli për të ndërtuar në mënyrë optimale projektet e Google, duke përfshirë projekte dhe projekte shumë të mëdha që përmbajnë kode në shumë gjuhë programimi, kërkojnë testim të gjerë dhe janë ndërtuar për platforma të shumta. Ai mbështet ndërtimin dhe testimin e kodit në Java, C++, Objective-C, Python, Rust, Go dhe shumë gjuhë të tjera, si dhe ndërtimin e aplikacioneve celulare për Android dhe iOS. Mbështetet përdorimi i skedarëve të vetëm të montimit për platforma dhe arkitektura të ndryshme; për shembull, një skedar montimi pa ndryshime mund të përdoret si për një sistem serveri ashtu edhe për një pajisje celulare.

Ndër veçoritë dalluese të Bazel janë shpejtësia e lartë, besueshmëria dhe përsëritshmëria e procesit të montimit. Për të arritur shpejtësi të lartë ndërtimi, Bazel përdor në mënyrë aktive teknikat e cachimit dhe paralelizimit për procesin e ndërtimit. Skedarët BUILD duhet të përcaktojnë plotësisht të gjitha varësitë, në bazë të të cilave merren vendimet për rindërtimin e komponentëve pasi të bëhen ndryshimet (vetëm skedarët e ndryshuar rindërtohen) dhe të paralelizojnë procesin e montimit. Vegla pune siguron gjithashtu montim të përsëritshëm, d.m.th. rezultati i ndërtimit të një projekti në makinën e zhvilluesit do të jetë plotësisht identik me ndërtimin në sistemet e palëve të treta, siç janë serverët e integrimit të vazhdueshëm.

Ndryshe nga Make dhe Ninja, Bazel përdor një qasje të nivelit më të lartë për ndërtimin e rregullave të montimit, në të cilat, në vend që të përcaktojnë lidhjen e komandave me skedarët që po ndërtohen, përdoren blloqe më abstrakte të gatshme, si "ndërtimi i një skedari të ekzekutueshëm në C++”, “ndërtimi i një biblioteke në C++” ose “kryerja e një testi për C++”, si dhe identifikimi i platformave të synuara dhe të ndërtimit. Në skedarin e tekstit BUILD, komponentët e projektit përshkruhen si një grup bibliotekash, skedarësh të ekzekutueshëm dhe teste, pa detajuar në nivelin e skedarëve individualë dhe komandave të thirrjes së përpiluesit. Funksionaliteti shtesë zbatohet përmes mekanizmit për lidhjen e shtesave.

Burimi: opennet.ru

Shto një koment