A Bazel 2.0 összeszerelő rendszer kiadása

Elérhető nyitott összeszerelő szerszámok felszabadítása Bazel 2.0, amelyet a Google mérnökei fejlesztettek ki, és a vállalat legtöbb belső projektjének összeállítására szolgált. A Bazel a szükséges fordítók és tesztek futtatásával építi fel a projektet. Támogatja a kódok készítését és tesztelését Java, C++, Objective-C, Python, Rust, Go és sok más nyelven, valamint mobilalkalmazások készítését Androidra és iOS-re. Projekt kód forgalmazza Apache 2.0 licenc alatt.

Jelentős verziómódosítás magában foglalja a visszafelé kompatibilitást megszakító változtatások hozzáadását. A Bazel 2.0-tól kezdődően a következő módok vannak alapértelmezés szerint engedélyezve: „—incompatible_remap_main_repo” (a linkek név szerint, és a @-n keresztül most ugyanarra a tárhelyre hivatkoznak), „—incompatibilis_disallow_dict_lookup”_ (nem kivonatoló kulcsok használata),
"--incompatible_remove_native_maven_jar" és "--incompatibilis_prohibit_aapt1". További változtatások:

  • Csapatban aquery kísérleti támogatás jelent meg a „proto” kimeneti formátum új kiadásához (-output=proto), amely jelenleg alapértelmezés szerint le van tiltva (-incompatibilis_proto_output_v2), és az adatok tömörebb megjelenítését biztosítja;
  • A PlatformConfiguration.enabled_toolchain_types mező eltávolításához hozzáadta a "--incompatible_remove_enabled_toolchain_types" jelzőt;
  • Hozzáadott védelem az olyan csomagok betöltése ellen, amelyek ciklikus szimbolikus hivatkozásokat használnak az elérési utak betöltésekor a kibontásukkor;
  • Megvalósította a „--disk_cache” jelző használatát a külső gRPC gyorsítótáraknál;
  • A Debian csomag és a bináris telepítő tartalmaz egy továbbfejlesztett réteget, amely a ~/.bazelversion fájlokat és a $USE_BAZEL_VERSION környezeti változót kezeli;
  • A runfiles jegyzékfájlok elavulásának előkészítéseként a „--experimental_skip_runfiles_manifests” jelző hozzáadásra került.

A Bazel megkülönböztető jellemzői közé tartozik az összeszerelési folyamat nagy sebessége, megbízhatósága és megismételhetősége. A nagy felépítési sebesség elérése érdekében a Bazel aktívan gyorsítótárazási és párhuzamosítási technikákat használ az összeállítási folyamathoz. A BUILD fájloknak teljes mértékben meg kell határozniuk az összes függőséget, amelyek alapján döntéseket hoznak a változtatások utáni komponensek újraépítéséről (csak a megváltozott fájlok épülnek újra), és párhuzamosítják az összeállítási folyamatot. A szerszámozás biztosítja az ismételhető összeszerelést is, pl. a fejlesztő gépén egy projekt felépítésének eredménye teljesen megegyezik a harmadik féltől származó rendszerekre, például a folyamatos integrációs szerverekre történő építéssel.

A Make-től és a Nindzsától eltérően a Bazel magasabb szintű megközelítést alkalmaz az összeállítási szabályok felépítéséhez, amelyben ahelyett, hogy meghatározná a parancsok összerendelését az épülő fájlokhoz, absztraktabb, kész blokkokat használnak, mint például a „futtatható fájl létrehozása C++”, „könyvtár létrehozása C++ nyelven” vagy „teszt futtatása C++ nyelven”, valamint a cél- és építési platformok azonosítása. A BUILD szövegfájlban a projektösszetevők egy csomó könyvtárként, végrehajtható fájlként és tesztként vannak leírva, anélkül, hogy az egyes fájlok és a fordítóhívási parancsok szintjén részleteznénk. A kiegészítő funkciókat a bővítmények csatlakoztatásának mechanizmusa hajtja végre.

A különböző platformokhoz és architektúrákhoz egyetlen összeállítási fájlok használata támogatott; például egy összeállítási fájl változtatások nélkül használható szerverrendszerhez és mobileszközhöz is. Az összeállítási rendszert az alapoktól kezdve úgy tervezték, hogy optimálisan építsék fel a Google projekteket, beleértve a nagyon nagy projekteket és a több programozási nyelv kódját tartalmazó projekteket, amelyek kiterjedt tesztelést igényelnek, és több platformra készültek.

Forrás: opennet.ru

Hozzászólás