بازل 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 تعمیر کے عمل کے لیے فعال طور پر کیشنگ اور متوازی تکنیک کا استعمال کرتا ہے۔ BUILD فائلوں کو تمام انحصار کی مکمل وضاحت کرنی چاہیے، جس کی بنیاد پر تبدیلیاں کیے جانے کے بعد اجزاء کو دوبارہ بنانے کے فیصلے کیے جاتے ہیں (صرف تبدیل شدہ فائلوں کو دوبارہ بنایا جاتا ہے) اور اسمبلی کے عمل کو متوازی بنایا جاتا ہے۔ ٹولنگ بھی دوبارہ قابل اسمبلی کو یقینی بناتی ہے، یعنی ڈویلپر کی مشین پر پروجیکٹ بنانے کا نتیجہ مکمل طور پر تھرڈ پارٹی سسٹمز جیسے کنٹیگریشن انٹیگریشن سرورز سے ملتا جلتا ہوگا۔

میک اور ننجا کے برعکس، بازل اسمبلی کے قواعد کی تعمیر کے لیے ایک اعلیٰ سطحی نقطہ نظر کا استعمال کرتا ہے، جس میں، بنائی جانے والی فائلوں کے لیے کمانڈز کے پابند ہونے کی وضاحت کرنے کے بجائے، مزید تجریدی ریڈی میڈ بلاکس استعمال کیے جاتے ہیں، جیسے کہ "ایک قابل عمل فائل کی تعمیر۔ C++، "C++ میں لائبریری بنانا" یا "C++ کے لیے ٹیسٹ چلانا"، نیز ہدف کی شناخت اور پلیٹ فارمز کی تعمیر۔ BUILD ٹیکسٹ فائل میں، پروجیکٹ کے اجزاء کو انفرادی فائلوں اور کمپائلر کال کمانڈز کی سطح پر تفصیل کے بغیر لائبریریوں، قابل عمل فائلوں اور ٹیسٹوں کے ایک گروپ کے طور پر بیان کیا گیا ہے۔ اضافی فعالیت کو ملانے کے طریقہ کار کے ذریعے لاگو کیا جاتا ہے۔

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

ماخذ: opennet.ru

نیا تبصرہ شامل کریں