Twitter представил первый значительный выпуск системы сборки Pants
Опубликован первый значительный выпуск системы сборки Pants 1.0, развиваемой компанией Twitter в качестве масштабируемой замены сборочного инструментария Maven. Pants предоставляет средства для сборки и тестирования кода на различных языках программирования и хорошо подходит для организации сборки в больших или быстрорастущих репозиториях, содержащих множество подпроектов, совместно использующих значительные порции кода. Система также оптимизирована для работы в условиях наличия сложных зависимостей от внешних библиотек. Проект написан на языке Python и распространяется под лицензией Apache 2.0.
Pants 1.0 позиционируется как первый значительный выпуск, пригодный для широкого использования, в котором осуществлена стабилизация интерфейсов для разработки модулей-дополнений и опций командной строки. В новом выпуске также значительно упрощены установка, настройка и адаптация под рабочий процесс. Например, для установки достаточно загрузить и выполнить один скрипт. Модульная организация позволяет легко встраивать обработчики для любых аспектов работы Pants. Система и модули распространяются через репозиторий PYPI.
Основные особенности Pants:
- Встроенная поддержка языков программирования Python, Java и Scala. В форме плагинов доступна поддержка C/C+, Go, JavaScript/NodeJS и Android.
- Возможность организации повторяемых сборок (собранные файлы бинарно идентичны при разных сборках одного и того же кода на разных системах);
- Для оценки изменений используются хэши от содержимого файлов, а не данные о времени изменения файлов;
- Система кэширования промежуточных результатов сборки;
- Возможность организации распределённого кэша, охватывающего несколько серверов и доступного через API REST или NFS;
- Наличие поддержки в интегрированных средах разработки, таких как IntelliJ;
- Поддержка инкрементальных сборок, включая оптимизации для быстрой сборки проектов на языке Scala;
- Поддержка подключения расширяющих функциональность дополнений, написанных на языке Python;
- Поддержка создания самодостаточных сборок программ на языке Python, упакованных с использованием инструментария PEX (Python EXecutable);
- Интеграция с репозиториями Python и JVM, используя PEX и Ivy.
© OpenNet