Sgaoileadh siostam cruinneachaidh Bazel 2.0

Ri fhaighinn sgaoileadh innealan cruinneachaidh fosgailte Bazel 2.0, развиваемого инженерами из Google и используемого для сборки большинства внутренних проектов данной компании. Bazel обеспечивает сборку проекта, запуская необходимые компиляторы и тесты. Поддерживается сборка и тестирование кода на Java, C++, Objective-C, Python, Rust, Go и многих других языках, а также сборка мобильных приложений для Android и iOS. Код проекта air a sgaoileadh le le cead fo 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».

Am measg nam feartan sònraichte aig Bazel tha astar àrd, earbsachd agus ath-aithris a’ phròiseas cruinneachaidh. Gus astar togail àrd a choileanadh, bidh Bazel gu gnìomhach a’ cleachdadh dòighean caching agus co-shìnte airson a’ phròiseas togail. Feumaidh faidhlichean TOGAIL a h-uile eisimeileachd a mhìneachadh gu h-iomlan, air a bheil co-dhùnaidhean air an dèanamh gus co-phàirtean ath-thogail às deidh atharrachaidhean a dhèanamh (chan eil ach faidhlichean atharraichte air an ath-thogail) agus a bhith co-shìnte ris a’ phròiseas cruinneachaidh. Bidh innealan cuideachd a’ dèanamh cinnteach à co-chruinneachadh ath-aithris, i.e. bidh toradh togail pròiseact air inneal an leasaiche gu tur co-ionann ri togail air siostaman treas-phàrtaidh, leithid frithealaichean amalachaidh leantainneach.

Eu-coltach ri Make and Ninja, bidh Bazel a’ cleachdadh dòigh-obrach aig ìre nas àirde a thaobh a bhith a’ togail riaghailtean cruinneachaidh, anns am bi, an àite a bhith a’ mìneachadh ceangal òrdughan ris na faidhlichean a thathas a’ togail, blocaichean deiseil nas eas-chruthach air an cleachdadh, leithid “togail faidhle so-ghnìomhaichte ann an C ++”, “togail leabharlann ann an C ++” no “ruith deuchainn airson C ++”, a bharrachd air a bhith ag aithneachadh àrd-ùrlaran targaid is togail. Ann am faidhle teacsa BUILD, tha na pàirtean pròiseict air am mìneachadh mar dòrlach de leabharlannan, faidhlichean so-ghnìomhaichte agus deuchainnean, gun a bhith a’ toirt mion-fhiosrachadh air ìre faidhlichean fa leth agus òrdughan gairm cruinneachaidh. Tha gnìomhachd a bharrachd air a chuir an gnìomh tron ​​​​inneal airson leudachadh a cheangal.

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

Source: fosgailtenet.ru

Cuir beachd ann