Bazel 2.0 ehitussüsteemi väljaanne.

Saadaval avatud ehituskomplektide väljaanne Bazel 2.0, развиваемого инженерами из Google и используемого для сборки большинства внутренних проектов данной компании. Bazel обеспечивает сборку проекта, запуская необходимые компиляторы и тесты. Поддерживается сборка и тестирование кода на Java, C++, Objective-C, Python, Rust, Go и многих других языках, а также сборка мобильных приложений для Android и iOS. Код проекта GNU Üldine Avaliku litsentsi alusel. ainekood on litsentsitud Apache 2.0 all.

Значительное изменение версии связано с добавлением изменений, нарушающих обратную совместимость. Начиная с 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».

Bazel on tuntud oma kõrge kiirus, usaldusväärsus ja ehitusprotsessi korduvus. Kõrge ehituskiiruse saavutamiseks kasutatakse Bazelis aktiivselt vahemälu ja ehitusprotsessi nihutamise tehnikaid. BUILD-failides on kõik sõltuvused täielikult määratletud, mille põhjal tehakse otsuseid komponentide ümberkompileerimise kohta pärast muudatusi (ümber kompileeritakse ainult muudetud failid) ja ehitusprotsessi nihutamise osas. Tööriistakomplekt tagab ka ehituse korduvuse, st arendaja arvutis tehtud projekti ehitus tulemus vastab täielikult ehitusele kolmandates süsteemides, nagu pideva integreerimise serverid.

Erinevalt Make'ist ja Ninja'st kasutab Bazel kõrgema taseme lähenemist, millega luuakse ehitusreegleid, rakendades abstraktsemaid valmis komponente, nagu "C++ täidetava faili ehitamine", "C++ raamatukogu ehitamine" või "C++ testi käitamine", samuti sihtplatvormide ja ehitusplatvormide määramine. BUILD tekstifailis kirjeldatakse projekti komponente kui raamatukogude, täidetavate failide ja testide kogumit, vältides detailide kirjeldamist üksikute failide ja kompilaatori kutsumisjoonte tasemel. Täiendavat funktsionaalsust rakendatakse laienduste ühendamise mehhanismi kaudu.

Поддерживается использование единых сборочных файлов для разных платформ и архитектур, например, один файл сборки без изменений может применяться как для серверной системы, так и для мобильного устройства. Сборочная система изначально спроектирована для оптимальной сборки проектов Google, в том числе сборки очень больших проектов и проектов, содержащих код на нескольких языках программирования, требующих расширенного тестирования и собираемых для нескольких платформ.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster