Выпуск сборочной систСмы Bazel 2.0

Disponibile rilascio di uno strumento di assemblaggio open source Bazel 2.0, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌΠΈ ΠΈΠ· Google ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для сборки Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. Bazel обСспСчиваСт сборку ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, запуская Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ компиляторы ΠΈ тСсты. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ сборка ΠΈ тСстированиС ΠΊΠΎΠ΄Π° Π½Π° Java, C++, Objective-C, Python, Rust, Go ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, Π° Ρ‚Π°ΠΊΠΆΠ΅ сборка ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Android ΠΈ iOS. Код ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° distribuito sotto licenza Apache 2.0.

Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ вСрсии связано с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ. Начиная с Bazel 2.0 Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Β«β€”incompatible_remap_main_repoΒ» (ссылки ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Ρ‡Π΅Ρ€Π΅Π· @ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ), Β«β€”incompatible_disallow_dict_lookupΒ»_(ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π΅Ρ…Π΅ΡˆΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅ΠΉ),
Β«β€”incompatible_remove_native_maven_jarΒ» ΠΈ Β«β€”incompatible_prohibit_aapt1Β». Π‘Ρ€Π΅Π΄ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ:

  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ aquery появилась ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ Ρ€Π΅Π΄Π°ΡƒΡ†ΠΈΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π²Ρ‹Π²ΠΎΠ΄Π° Β«protoΒ» (β€”output=proto), которая ΠΏΠΎΠΊΠ° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (β€”incompatible_proto_output_v2) ΠΈ обСспСчиваСт Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠ΅ прСдставлСниС Π΄Π°Π½Π½Ρ‹Ρ…;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ Β«β€”incompatible_remove_enabled_toolchain_typesΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ PlatformConfiguration.enabled_toolchain_types;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈ раскрытии ΠΏΡƒΡ‚Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½Ρ‹Π΅ символичСскиС ссылки;
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ„Π»Π°Π³Π° Β«β€”disk_cacheΒ» с внСшними кэшами gRPC;
  • Π’ ΠΏΠ°ΠΊΠ΅Ρ‚ для Debian ΠΈ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ инсталлятор Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ прослойка, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Ρ„Π°ΠΉΠ»Ρ‹ ~/.bazelversion ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния $USE_BAZEL_VERSION;
  • Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρƒ Ρ„Π°ΠΉΠ»ΠΎΠ² с манифСстом runfiles Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… возмоТностСй Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ Β«β€”experimental_skip_runfiles_manifestsΒ».

Tra le caratteristiche distintive di Bazel spiccano la velocitΓ  elevata, l'affidabilitΓ  e la ripetibilitΓ  del processo di build. Per raggiungere alte velocitΓ  di compilazione, Bazel utilizza attivamente tecniche di caching e parallelizzazione del processo di build. Nei file BUILD devono essere definite completamente tutte le dipendenze, sulla base delle quali vengono prese decisioni riguardo alla ricompilazione dei componenti dopo l'introduzione di modifiche (vengono rieseguiti solo i file modificati) e alla parallelizzazione del processo di build. Gli strumenti garantiscono anche la ripetibilitΓ  del build, ovvero il risultato del compilazione del progetto sulla macchina dello sviluppatore sarΓ  completamente identico a quello su sistemi esterni, come i server di integrazione continua.

A differenza di Make e Ninja, Bazel adotta un approccio di livello superiore nella definizione delle regole di build, dove invece di specificare il legame tra comandi e file da costruire, si applicano blocchi predefiniti piΓΉ astratti, come "costruzione di un eseguibile in C++", "costruzione di una libreria in C++" o "esecuzione di un test in C++", e si definiscono le piattaforme di destinazione e di build. Nel file di testo BUILD, i componenti del progetto sono descritti come un insieme di librerie, eseguibili e test, senza dettagli a livello di singoli file e comandi di invocazione del compilatore. Ulteriori funzionalitΓ  sono implementate attraverso un meccanismo di estensione.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ использованиС Π΅Π΄ΠΈΠ½Ρ‹Ρ… сборочных Ρ„Π°ΠΉΠ»ΠΎΠ² для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» сборки Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ для сСрвСрной систСмы, Ρ‚Π°ΠΊ ΠΈ для мобильного устройства. Бборочная систСма ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ спроСктирована для ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Google, Π² Ρ‚ΠΎΠΌ числС сборки ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², содСрТащих ΠΊΠΎΠ΄ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… языках программирования, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ тСстирования ΠΈ собираСмых для Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server πŸ”₯ Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster