מעלדונג פון די Bazel 2.0 בויען סיסטעם

בנימצא מעלדונג פון עפענען פֿאַרזאַמלונג מכשירים באַזל 2.0, развиваемого инженерами из Google и используемого для сборки большинства внутренних проектов данной компании. Bazel обеспечивает сборку проекта, запуская необходимые компиляторы и тесты. Поддерживается сборка и тестирование кода на Java, C++, Objective-C, Python, Rust, Go и многих других языках, а также сборка мобильных приложений для Android и iOS. Код проекта פונאנדערגעטיילט דורך לייסאַנסט אונטער אַפּאַטשי 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 זענען די הויך גיכקייַט, רילייאַבילאַטי און ריפּיטאַביליטי פון די פֿאַרזאַמלונג פּראָצעס. צו דערגרייכן הויך בויען גיכקייַט, Bazel אַקטיוולי ניצט קאַטשינג און פּאַראַלעליזאַטיאָן טעקניקס פֿאַר די בויען פּראָצעס. BUILD טעקעס מוזן גאָר דעפינירן אַלע דיפּענדאַנסיז, אויף דער באזע פון ​​וואָס דיסיזשאַנז זענען געמאכט צו ריבילד קאַמפּאָונאַנץ נאָך ענדערונגען (בלויז טשיינדזשד טעקעס זענען ריבילט) און פּאַראַלעליזירן די פֿאַרזאַמלונג פּראָצעס. טאָאָלינג אויך ינשורז ריפּיטאַבאַל פֿאַרזאַמלונג, י.ע. דער רעזולטאַט פון בויען אַ פּרויעקט אויף די דעוועלאָפּער ס מאַשין וועט זיין גאָר יידעניקאַל צו די בויען אויף דריט-פּאַרטיי סיסטעמען, אַזאַ ווי קעסיידערדיק ינטאַגריישאַן סערווערס.

ניט ענלעך מאַכן און נינדזשאַ, Bazel ניצט אַ העכער-מדרגה צוגאַנג צו בויען פֿאַרזאַמלונג כּללים, אין וואָס, אַנשטאָט פון דיפיינינג די ביינדינג פון קאַמאַנדז צו די טעקעס וואָס זענען געבויט, מער אַבסטראַקט פאַרטיק בלאַקס זענען געניצט, אַזאַ ווי "בויינג אַ עקסעקוטאַבלע טעקע אין C ++", "בויען אַ ביבליאָטעק אין C ++" אָדער "לויפן אַ פּראָבע פֿאַר C ++", ווי אויך ידענטיפיצירן ציל און בויען פּלאַטפאָרמס. אין די BUILD טעקסט טעקע, די פּרויעקט קאַמפּאָונאַנץ זענען דיסקרייבד ווי אַ בינטל פון לייברעריז, עקסעקוטאַבלע טעקעס און טעסץ, אָן דיטיילינג די מדרגה פון יחיד טעקעס און קאַמפּיילער רופן קאַמאַנדז. נאָך פאַנגקשאַנאַליטי איז ימפּלאַמענאַד דורך די מעקאַניזאַם פֿאַר קאַנעקטינג יקסטענשאַנז.

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

מקור: opennet.ru

לייגן אַ באַמערקונג