Mwepụta nke sistemụ nrụpụta Bazel 2.0

Dị ntọhapụ nke ngwaọrụ mgbakọ na-emeghe Bazel 2.0, развиваемого инженерами из Google и используемого для сборки большинства внутренних проектов данной компании. Bazel обеспечивает сборку проекта, запуская необходимые компиляторы и тесты. Поддерживается сборка и тестирование кода на Java, C++, Objective-C, Python, Rust, Go и многих других языках, а также сборка мобильных приложений для Android и iOS. Код проекта kesara site nyere ikike n'okpuru 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».

N'ime ihe dị iche iche nke Bazel bụ nnukwu ọsọ ọsọ, ntụkwasị obi na nkwughachi nke usoro mgbakọ ahụ. Iji nweta ọsọ na-ewu ụlọ dị elu, Bazel na-arụsi ọrụ ike na usoro caching na myirịta maka usoro iwu ụlọ. Faịlụ BUILD ga-akọwapụta nke ọma dabere niile, dabere na mkpebi a na-eme iji wughachi akụrụngwa mgbe emechara mgbanwe (naanị faịlụ gbanwere ka a na-ewughachi) wee megharịa usoro mgbakọ ahụ. Ngwá ọrụ na-eme ka mgbakọ a na-emegharị ugboro ugboro, i.e. nsonaazụ nke ịrụ ọrụ na igwe onye nrụpụta ga-adị kpamkpam na iwulite na sistemụ ndị ọzọ, dị ka sava ntinye aka na-aga n'ihu.

N'adịghị ka Make na Ninja, Bazel na-eji ụzọ dị elu dị elu iji wuo iwu mgbakọ, nke, kama ịkọwapụta njide nke iwu na faịlụ ndị a na-ewu, a na-eji ihe mgbochi ndị a na-emepụta ihe na-emepụta ihe, dị ka "ịmepụta faịlụ nwere ike ime na ya. C++”, “wulite ọba akwụkwọ na C++” ma ọ bụ “na-eme ule maka C++”, yana ịchọpụta ebumnuche na iwulite nyiwe. Na faịlụ ederede BUILD, a na-akọwa akụkụ ọrụ ahụ dị ka ụyọkọ nke ọba akwụkwọ, faịlụ na ule na-arụ ọrụ, na-enweghị nkọwa na ọkwa nke faịlụ n'otu n'otu na iwu ịkpọ oku. A na-arụ ọrụ ndị ọzọ site na usoro maka ijikọ ndọtị.

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

isi: opennet.ru

Tinye a comment