ការចេញផ្សាយប្រព័ន្ធសាងសង់ Bazel 2.0

មាន ការចេញផ្សាយឧបករណ៍ដំឡើងបើកចំហ Bazel 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 គឺល្បឿនខ្ពស់ ភាពជឿជាក់ និងដំណើរការឡើងវិញនៃដំណើរការដំឡើង។ ដើម្បីសម្រេចបាននូវល្បឿនសាងសង់ខ្ពស់ Bazel ប្រើបច្ចេកទេសឃ្លាំងសម្ងាត់ និងប៉ារ៉ាឡែលយ៉ាងសកម្មសម្រាប់ដំណើរការសាងសង់។ ឯកសារ BUILD ត្រូវតែកំណត់យ៉ាងពេញលេញនូវភាពអាស្រ័យទាំងអស់ ដោយឈរលើមូលដ្ឋាននៃការសម្រេចចិត្តដើម្បីស្ថាបនាឡើងវិញនូវសមាសធាតុ បន្ទាប់ពីការផ្លាស់ប្តូរត្រូវបានធ្វើឡើង (មានតែឯកសារដែលបានផ្លាស់ប្តូរប៉ុណ្ណោះដែលត្រូវបានសាងសង់ឡើងវិញ) និងដំណើរការស្របគ្នានៃដំណើរការដំឡើង។ ឧបករណ៍ក៏ធានាផងដែរនូវការជួបប្រជុំគ្នាដែលអាចធ្វើម្តងទៀត, i.e. លទ្ធផលនៃការសាងសង់គម្រោងនៅលើម៉ាស៊ីនរបស់អ្នកអភិវឌ្ឍន៍នឹងដូចគ្នាបេះបិទទាំងស្រុងទៅនឹងការបង្កើតនៅលើប្រព័ន្ធភាគីទីបី ដូចជាម៉ាស៊ីនមេរួមបញ្ចូលគ្នាជាបន្តបន្ទាប់។

មិនដូច Make និង Ninja, Bazel ប្រើវិធីសាស្រ្តកម្រិតខ្ពស់ក្នុងការកសាងច្បាប់ការជួបប្រជុំគ្នា ដែលជំនួសឱ្យការកំណត់ការភ្ជាប់ពាក្យបញ្ជាទៅនឹងឯកសារដែលកំពុងត្រូវបានសាងសង់ ប្លុកដែលត្រៀមរួចជាស្រេចអរូបីបន្ថែមទៀតត្រូវបានប្រើដូចជា "ការកសាងឯកសារដែលអាចប្រតិបត្តិបាននៅក្នុង C++”, “ការកសាងបណ្ណាល័យក្នុង C++” ឬ “ដំណើរការតេស្តសម្រាប់ C++” ក៏ដូចជាការកំណត់គោលដៅ និងបង្កើតវេទិកា។ នៅក្នុងឯកសារអត្ថបទ BUILD ធាតុផ្សំនៃគម្រោងត្រូវបានពិពណ៌នាថាជាបណ្តុំនៃបណ្ណាល័យ ឯកសារដែលអាចប្រតិបត្តិបាន និងការធ្វើតេស្ត ដោយមិនមានការលម្អិតអំពីកម្រិតនៃឯកសារនីមួយៗ និងពាក្យបញ្ជាហៅអ្នកចងក្រង។ មុខងារបន្ថែមត្រូវបានអនុវត្តតាមរយៈយន្តការសម្រាប់ភ្ជាប់ផ្នែកបន្ថែម។

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

ប្រភព: opennet.ru

បន្ថែមមតិយោបល់