Rakirina pergala avakirina Bazel 2.0

Berdeste serbestberdana amûrên civînê yên vekirî Bazel 2.0, развиваемого инженерами из Google и используемого для сборки большинства внутренних проектов данной компании. Bazel обеспечивает сборку проекта, запуская необходимые компиляторы и тесты. Поддерживается сборка и тестирование кода на Java, C++, Objective-C, Python, Rust, Go и многих других языках, а также сборка мобильных приложений для Android и iOS. Код проекта belav kirin ji hêla lîsansa di bin 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».

Di nav taybetmendiyên cihêreng ên Bazel de leza bilind, pêbawer û dubarebûna pêvajoya kombûnê ne. Ji bo bidestxistina leza avakirinê ya bilind, Bazel ji bo pêvajoya çêkirinê bi awayekî çalak teknîkên caching û paralelîzasyonê bikar tîne. Pelên BUILD pêdivî ye ku hemî pêwendiyan bi tevahî diyar bikin, li ser bingeha wan biryar têne girtin ku ji nû ve avakirina pêkhateyan piştî ku guhartin têne çêkirin (tenê pelên guheztin ji nû ve têne çêkirin) û pêvajoya civînê paralel bikin. Amûr di heman demê de kombûna dubarekirî jî misoger dike, ango. Encama avakirina projeyek li ser makîneya pêşdebirker dê bi tevahî bi avakirina pergalên partiya sêyemîn re, wekî pêşkêşkerên entegrasyonê yên domdar, wekhev be.

Berevajî Make û Ninja, Bazel ji bo avakirina qaîdeyên meclîsê nêzîkatiyek astek bilindtir bikar tîne, ku tê de, li şûna destnîşankirina girêdana fermanan bi pelên têne çêkirin re, blokên amadekirî yên razbertir têne bikar anîn, mîna "avakirina pelek îcrakar li C++", "avakirina pirtûkxaneyek bi C++" an "rêvebirina ceribandinek ji bo C++", û hem jî destnîşankirina armanc û platformên avakirina. Di pelê nivîsê BUILD de, hêmanên projeyê wekî komek pirtûkxane, pelên bikêrhatî û ceribandinan têne binav kirin, bêyî hûrgulî di asta pelên kesane û fermanên banga berhevkar de. Karbidestiya pêvek bi mekanîzmaya girêdana pêvekan ve tête bicîh kirin.

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

Source: opennet.ru

Add a comment