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 फाइलहरूले सबै निर्भरताहरू पूर्ण रूपमा परिभाषित गर्नुपर्छ, जसको आधारमा परिवर्तनहरू गरिसकेपछि कम्पोनेन्टहरू पुन: निर्माण गर्ने निर्णयहरू गरिन्छ (केवल परिवर्तन गरिएका फाइलहरू पुन: निर्माण गरिन्छ) र विधानसभा प्रक्रियालाई समानान्तर बनाइन्छ। उपकरणले पनि दोहोर्याउन मिल्ने असेम्बली सुनिश्चित गर्दछ, अर्थात् विकासकर्ताको मेसिनमा परियोजना निर्माणको नतिजा तेस्रो-पक्ष प्रणालीहरूमा निर्माणको लागि पूर्ण रूपमा समान हुनेछ, जस्तै निरन्तर एकीकरण सर्भरहरू।

मेक र निन्जाको विपरीत, बाजेलले एसेम्बली नियमहरू निर्माण गर्न उच्च-स्तरको दृष्टिकोण प्रयोग गर्दछ, जसमा निर्माण भइरहेको फाइलहरूमा आदेशहरूको बन्धन परिभाषित गर्नुको सट्टा, थप एब्स्ट्र्याक्ट रेडिमेड ब्लकहरू प्रयोग गरिन्छ, जस्तै "एउटा कार्यान्वयनयोग्य फाइल निर्माण गर्ने। C++", "C++ मा पुस्तकालय निर्माण" वा "C++ को लागि परीक्षण चलाउँदै", साथै लक्ष्य पहिचान र प्लेटफार्महरू निर्माण गर्ने। BUILD पाठ फाइलमा, परियोजना अवयवहरूलाई व्यक्तिगत फाइलहरू र कम्पाइलर कल आदेशहरूको स्तरमा विवरण नगरी पुस्तकालयहरू, कार्यान्वयनयोग्य फाइलहरू र परीक्षणहरूको गुच्छाको रूपमा वर्णन गरिएको छ। थप कार्यक्षमता विस्तारहरू जडान गर्न संयन्त्र मार्फत लागू गरिएको छ।

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

स्रोत: opennet.ru

एक टिप्पणी थप्न