የ Bazel 2.0 የግንባታ ስርዓት መለቀቅ

ይገኛል ክፍት የመሰብሰቢያ መሳሪያዎችን መልቀቅ ባዝል 2.0, развиваемого инженерами из Google и используемого для сборки большинства внутренних проектов данной компании. Bazel обеспечивает сборку проекта, запуская необходимые компиляторы и тесты. Поддерживается сборка и тестирование кода на Java, C++, Objective-C, Python, Rust, Go и многих других языках, а также сборка мобильных приложений для Android и iOS. Код проекта የተሰራጨው በ በ 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».

የ Bazel ልዩ ባህሪያት መካከል ከፍተኛ ፍጥነት, አስተማማኝነት እና የመሰብሰቢያ ሂደት ተደጋጋሚነት ናቸው. ከፍተኛ የግንባታ ፍጥነትን ለማግኘት ባዝል ለግንባታው ሂደት መሸጎጫ እና ትይዩ ቴክኒኮችን በንቃት ይጠቀማል። BUILD ፋይሎች ሁሉንም ጥገኝነቶች ሙሉ በሙሉ መግለጽ አለባቸው, በዚህ መሠረት ለውጦች ከተደረጉ በኋላ ክፍሎችን እንደገና ለመገንባት (የተለወጡ ፋይሎች ብቻ እንደገና ይገነባሉ) እና የስብሰባ ሂደቱን ትይዩ ማድረግ አለባቸው. የመሳሪያ አሠራር ተደጋጋሚ ስብሰባን ያረጋግጣል, ማለትም. በገንቢው ማሽን ላይ ፕሮጀክት የመገንባት ውጤት በሶስተኛ ወገን ስርዓቶች ላይ ከግንባታ ጋር ሙሉ በሙሉ ተመሳሳይ ይሆናል, እንደ ቀጣይነት ያለው ውህደት አገልጋዮች.

እንደ ሜክ እና ኒንጃ ሳይሆን ባዝል የመሰብሰቢያ ህጎችን ለመገንባት ከፍተኛ ደረጃን ይጠቀማል ፣ በዚህ ውስጥ ፣ በሚገነቡት ፋይሎች ላይ የትእዛዞችን ትስስር ከመግለጽ ይልቅ ፣ የበለጠ ረቂቅ ዝግጁ የሆኑ ብሎኮች ጥቅም ላይ ይውላሉ ፣ ለምሳሌ “ተፈጻሚነት ያለው ፋይል በመገንባት ላይ C++”፣ “በC++ ላይብረሪ መገንባት” ወይም “ለሙከራ ለC++ ማካሄድ”፣ እንዲሁም ዒላማዎችን መለየት እና መድረኮችን መገንባት። በ BUILD የጽሑፍ ፋይል ውስጥ የፕሮጀክት አካላት በግለሰብ ፋይሎች እና በአቀናባሪ የጥሪ ትዕዛዞች ደረጃ ላይ ሳይዘረዘሩ እንደ ቤተ-መጽሐፍት ፣ ተፈጻሚነት ያላቸው ፋይሎች እና ሙከራዎች ተገልጸዋል ። ተጨማሪ ተግባራት ማራዘሚያዎችን ለማገናኘት ዘዴው ይተገበራሉ.

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

ምንጭ: opennet.ru

አስተያየት ያክሉ