SlideShare a Scribd company logo
1 of 21
CrossPM
Упрощаем сложные зависимости
Александр Ковалев
Ведущий программист
отдела технологий разработки (DevOps)
akovalev@ptsecurity.com
Пакетный менеджер:
Что мы хотим
Нерешенные проблемы со сборками
Отсутствие единого инструмента, реализующего модель сборок
Нерешенные проблемы со сборками
К чему это привело
CrossPM: Серебряная пуля
Наше решение
Open Source
Подготовка и вывод проекта в сообщество DevOpsHQ
CrossPM
config.yaml
cpm.manifest
environment
Загруженные
зависимости
command line
Artifactory
adapter
Git
adapter
Whatever
adapter
...
Любая структура каталогов
и имен файлов в репозитории
Формат описания
зависимостей указывается
в config.yaml
Просто выполнить
pip install crosspm
перед использованием
Логичная структура проекта,
ведется работа по
документированию кода
CrossPM:
Возможности и примеры
CrossPM: Что он может
• Найти пакеты, от которых зависит ваш проект
• Найти пакеты, от которых зависят эти пакеты
• Найти пакеты, от которых зависят и эти пакеты тоже
• И т.д…
• И т.д…
• И т.д…
• Распаковать загруженные пакеты
• Создать shell скрипт для установки путей к пакетам в переменные окружения
• Или cmd скрипт
• Или python скрипт
• Или json файл
• Или просто вывести в stdout
• Если Вам этого мало – пойдем пообщаемся… в хорошем смысле
• Загрузить все эти найденные пакеты
• Или загрузить только указанный пакет
• Или просто вернуть полный путь или имя файла пакета
CrossPM: Конфигурация формата манифеста
crosspm.yaml (фрагмент)
cpm.manifest (пример)
boost 1.55.3
poco 1.46.14
openssl 1.0.20
log4cplus 1.1.6
...
columns: "*package, version"
...
CrossPM: Конфигурация формата манифеста
...
columns: "*package, version, branch, contract, quality"
parsers:
common:
columns:
version: "{int}.{int}.{int}[-{str}]"
artifactory:
path: "{server}/{package}/{branch}/{package}.{version}[.zip|.tar.gz|.nupkg]"
properties: "build.contract.{contract} = {quality}"
...
crosspm.yaml (фрагмент)
cpm.manifest (пример)
boost 1.55.*- 1.55-pm R11.0 snapshot
poco 1.46.>=14 1.46-pm * release
openssl 1.>0.* 1.* * *
log4cplus 1.1.6 1.1-pm R10.0 stable
CrossPM: Конфигурация меток качества
...
values:
quality:
1: banned
2: snapshot
3: integration
4: stable
5: release
...
crosspm.yaml (фрагмент)
cpm.manifest (пример)
boost 1.55.*- 1.55-pm R11.0 >snapshot
poco 1.46.>=14 1.46-pm * release
openssl 1.>0.* 1.* * *
log4cplus 1.1.6 1.1-pm R10.0 >=stable
CrossPM: Конфигурация дополнительных опций
...
options:
arch:
cmdline: arch
env: CROSSPM_ARCH
osname:
cmdline: os
env: CROSSPM_OS
default: linux
...
crosspm.yaml (фрагмент)
Командная строка
C:build> crosspm download --out-format=stdout –o arch=x86_64,os=win
CrossPM: Конфигурация источников
...
sources:
- type: artifactory
parser: artifactory
server: https://repo1.someorg.com/artifactory/
repo:
- libs-cpp
- libs.snapshot
auth_type: simple
auth:
- reader_cpp_libs
- "**********"
- type: artifactory
parser: artifactory
server: https://repo1.someorg.com/artifactory/
repo: libs-other.snapshot
auth_type: simple
auth:
- "reader_libs"
- "**********"
...
crosspm.yaml (фрагмент)
CrossPM: Конфигурация источников (упрощение)
...
common:
type: artifactory
parser: artifactory
server: https://repo1.someorg.com/artifactory/
auth_type: simple
sources:
- repo:
- libs-cpp
- libs.snapshot
auth:
- reader_cpp_libs
- "**********"
- repo: libs-other.snapshot
auth:
- "reader_libs"
- "**********"
...
crosspm.yaml (фрагмент)
CrossPM: Командная строка
CrossPM (Cross Package Manager) version: 0.8.1 The MIT License (MIT)
Usage:
crosspm download [options]
crosspm promote [options]
crosspm pack <OUT> <SOURCE> [options]
crosspm -h | --help
crosspm --version
Options:
<OUT> Output file.
<SOURCE> Source directory path.
-h, --help Show this screen.
--version Show version.
-v, --verbose Increase output verbosity.
--verbosity=LEVEL Set output verbosity level: (critical, error, warning, info, ...
-c=FILE, --config=FILE Path to configuration file.
-o OPTIONS, --options OPTIONS Extra options.
--depslock-path=FILE Path to file with locked dependencies [default: ./cpm.manifest]
--out-format=TYPE Output data format. Available formats:(['stdout', 'cmd', ...
--output=FILE Output file name (required if --out_format is not stdout)
--out-prefix=PREFIX Prefix for output variable name [default: ] (no prefix at all)
crosspm --help
CrossPM:
Интеграция и доработки
CrossPM + Artifactory
• Использовали существующий API от Artifactory
• Запланировали написать свою библиотеку для работы с Artifactory
Первый этап:
• Обнаружили, что такая библиотека уже существует
• Протестировали: библиотека сыровата, но пользоваться уже можно
• Разработчикам из Parallels – отдельное спасибо! Ждем развития!
Второй этап (Open Source):
CrossPM + Artifactory
+ любое другое хранилище, на самом деле…
• Динамически подключаемые модули для работы с репозиторием:
• Любой способ подключения:
• http
• ftp, sftp
• smb
• просто файлы в папках
• и прочее…
• Любое количество типов репозиториев
CrossPM: Возможные доработки инструмента
• Поддержка дополнительных форматов пакетов
• Повторные попытки загрузки пакетов при разрывах соединения
• Загрузка пакетов в репозиторий
• Управление пакетами в репозитории
Полезные ссылки
• CrossPM:
https://github.com/devopshq/crosspm
установка:
pip install crosspm
• Python interface library for Jfrog Artifactory:
https://github.com/Parallels/artifactory
• Ждем ваши предложения на DevOpsHQ:
https://github.com/devopshq/crosspm/issues
Спасибо!
Александр Ковалев
Ведущий программист
отдела технологий разработки (DevOps)
akovalev@ptsecurity.com
https://github.com/devopshq/crosspm
Вопросы?

More Related Content

What's hot

Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Positive Hack Days
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
Sql server clr integration
Sql server clr integration Sql server clr integration
Sql server clr integration Alex Tumanoff
 
Интеграция TeamCity и сервера символов | Алексей Соловьев
Интеграция TeamCity и сервера символов | Алексей СоловьевИнтеграция TeamCity и сервера символов | Алексей Соловьев
Интеграция TeamCity и сервера символов | Алексей СоловьевPositive Hack Days
 
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеAlex Tumanoff
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Test driven development in net
Test driven development in netTest driven development in net
Test driven development in netAlex Tumanoff
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис ПаясьCodeFest
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим ПугачевCodeFest
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
 
Игорь Кашкута
Игорь КашкутаИгорь Кашкута
Игорь КашкутаCodeFest
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationSQALab
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Fwdays
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел СташевскийDevDay
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Fwdays
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеYandex
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...SQALab
 
Maven как средство сборки проекта
Maven как средство сборки проектаMaven как средство сборки проекта
Maven как средство сборки проектаYova Stoika
 

What's hot (20)

Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
 
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
Практические рекомендации по использованию системы TestRail | Дмитрий Рыльцов...
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Sql server clr integration
Sql server clr integration Sql server clr integration
Sql server clr integration
 
Интеграция TeamCity и сервера символов | Алексей Соловьев
Интеграция TeamCity и сервера символов | Алексей СоловьевИнтеграция TeamCity и сервера символов | Алексей Соловьев
Интеграция TeamCity и сервера символов | Алексей Соловьев
 
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопе
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Test driven development in net
Test driven development in netTest driven development in net
Test driven development in net
 
Денис Паясь
Денис ПаясьДенис Паясь
Денис Паясь
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Игорь Кашкута
Игорь КашкутаИгорь Кашкута
Игорь Кашкута
 
Docker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous IntegrationDocker + Selenium Webdriver в рамках Continuous Integration
Docker + Selenium Webdriver в рамках Continuous Integration
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
 
«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский«Тестируем веб приложения», Павел Сташевский
«Тестируем веб приложения», Павел Сташевский
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Денис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в ЯндексеДенис Чистяков: Workflow. Работа над проектом в Яндексе
Денис Чистяков: Workflow. Работа над проектом в Яндексе
 
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
Apache JMeter vs LoadRunner: на заре справедливости, сравнение инструментов н...
 
Maven как средство сборки проекта
Maven как средство сборки проектаMaven как средство сборки проекта
Maven как средство сборки проекта
 

Viewers also liked

TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...Positive Hack Days
 
Сообщество DevOpsHQ: идеология и инструменты | Александр Паздников
Сообщество DevOpsHQ: идеология и инструменты | Александр ПаздниковСообщество DevOpsHQ: идеология и инструменты | Александр Паздников
Сообщество DevOpsHQ: идеология и инструменты | Александр ПаздниковPositive Hack Days
 
Метод машинного обучения для распознавания сгенерированных доменных имен
Метод машинного обучения для распознавания сгенерированных доменных именМетод машинного обучения для распознавания сгенерированных доменных имен
Метод машинного обучения для распознавания сгенерированных доменных именPositive Hack Days
 
Модель системы Continuous Integration в компании Positive Technologies | Тиму...
Модель системы Continuous Integration в компании Positive Technologies | Тиму...Модель системы Continuous Integration в компании Positive Technologies | Тиму...
Модель системы Continuous Integration в компании Positive Technologies | Тиму...Positive Hack Days
 
Организация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей СоловьевОрганизация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей СоловьевPositive Hack Days
 
Возможно, время не на твоей стороне. Реализация атаки по времени в браузере
Возможно, время не на твоей стороне. Реализация атаки по времени в браузереВозможно, время не на твоей стороне. Реализация атаки по времени в браузере
Возможно, время не на твоей стороне. Реализация атаки по времени в браузереPositive Hack Days
 
SupplyLab - публикация, доставка, развёртывание, лицензирование | Александр П...
SupplyLab - публикация, доставка, развёртывание, лицензирование | Александр П...SupplyLab - публикация, доставка, развёртывание, лицензирование | Александр П...
SupplyLab - публикация, доставка, развёртывание, лицензирование | Александр П...Positive Hack Days
 
Инструменты для проведения конкурентного анализа программных продуктов | Вла...
Инструменты для проведения конкурентного анализа программных продуктов |  Вла...Инструменты для проведения конкурентного анализа программных продуктов |  Вла...
Инструменты для проведения конкурентного анализа программных продуктов | Вла...Positive Hack Days
 
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...Positive Hack Days
 
Доставка зловредов через облака
Доставка зловредов через облакаДоставка зловредов через облака
Доставка зловредов через облакаPositive Hack Days
 
Обход файрволов веб-приложений
Обход файрволов веб-приложенийОбход файрволов веб-приложений
Обход файрволов веб-приложенийPositive Hack Days
 
Аспекты деятельности инсайдеров на предприятии
Аспекты деятельности инсайдеров на предприятииАспекты деятельности инсайдеров на предприятии
Аспекты деятельности инсайдеров на предприятииPositive Hack Days
 
Fingerprinting and Attacking a Healthcare Infrastructure
Fingerprinting and Attacking a Healthcare InfrastructureFingerprinting and Attacking a Healthcare Infrastructure
Fingerprinting and Attacking a Healthcare InfrastructurePositive Hack Days
 
Janitor to CISO in 360 Seconds: Exploiting Mechanical Privilege Escalation
Janitor to CISO in 360 Seconds: Exploiting Mechanical Privilege EscalationJanitor to CISO in 360 Seconds: Exploiting Mechanical Privilege Escalation
Janitor to CISO in 360 Seconds: Exploiting Mechanical Privilege EscalationPositive Hack Days
 
Восток — дело тонкое, или Уязвимости медицинского и индустриального ПО
Восток — дело тонкое, или Уязвимости медицинского и индустриального ПОВосток — дело тонкое, или Уязвимости медицинского и индустриального ПО
Восток — дело тонкое, или Уязвимости медицинского и индустриального ПОPositive Hack Days
 
Эксплуатируем неэксплуатируемые уязвимости SAP
Эксплуатируем неэксплуатируемые уязвимости SAPЭксплуатируем неэксплуатируемые уязвимости SAP
Эксплуатируем неэксплуатируемые уязвимости SAPPositive Hack Days
 
NFC: Naked Fried Chicken / Пентест NFC — вот что я люблю
NFC: Naked Fried Chicken / Пентест NFC — вот что я люблюNFC: Naked Fried Chicken / Пентест NFC — вот что я люблю
NFC: Naked Fried Chicken / Пентест NFC — вот что я люблюPositive Hack Days
 
Magic Box, или Как пришлось сломать банкоматы, чтобы их спасти
Magic Box, или Как пришлось сломать банкоматы, чтобы их спастиMagic Box, или Как пришлось сломать банкоматы, чтобы их спасти
Magic Box, или Как пришлось сломать банкоматы, чтобы их спастиPositive Hack Days
 
Боремся с читингом в онлайн-играх
Боремся с читингом в онлайн-играхБоремся с читингом в онлайн-играх
Боремся с читингом в онлайн-играхPositive Hack Days
 

Viewers also liked (20)

TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
TeamPass - управление разграничением доступа к сервисным паролям в команде | ...
 
Сообщество DevOpsHQ: идеология и инструменты | Александр Паздников
Сообщество DevOpsHQ: идеология и инструменты | Александр ПаздниковСообщество DevOpsHQ: идеология и инструменты | Александр Паздников
Сообщество DevOpsHQ: идеология и инструменты | Александр Паздников
 
Tapping into the core
Tapping into the coreTapping into the core
Tapping into the core
 
Метод машинного обучения для распознавания сгенерированных доменных имен
Метод машинного обучения для распознавания сгенерированных доменных именМетод машинного обучения для распознавания сгенерированных доменных имен
Метод машинного обучения для распознавания сгенерированных доменных имен
 
Модель системы Continuous Integration в компании Positive Technologies | Тиму...
Модель системы Continuous Integration в компании Positive Technologies | Тиму...Модель системы Continuous Integration в компании Positive Technologies | Тиму...
Модель системы Continuous Integration в компании Positive Technologies | Тиму...
 
Организация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей СоловьевОрганизация workflow в трекере TFS | Алексей Соловьев
Организация workflow в трекере TFS | Алексей Соловьев
 
Возможно, время не на твоей стороне. Реализация атаки по времени в браузере
Возможно, время не на твоей стороне. Реализация атаки по времени в браузереВозможно, время не на твоей стороне. Реализация атаки по времени в браузере
Возможно, время не на твоей стороне. Реализация атаки по времени в браузере
 
SupplyLab - публикация, доставка, развёртывание, лицензирование | Александр П...
SupplyLab - публикация, доставка, развёртывание, лицензирование | Александр П...SupplyLab - публикация, доставка, развёртывание, лицензирование | Александр П...
SupplyLab - публикация, доставка, развёртывание, лицензирование | Александр П...
 
Инструменты для проведения конкурентного анализа программных продуктов | Вла...
Инструменты для проведения конкурентного анализа программных продуктов |  Вла...Инструменты для проведения конкурентного анализа программных продуктов |  Вла...
Инструменты для проведения конкурентного анализа программных продуктов | Вла...
 
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
Общая концепция системы развёртывания серверного окружения на базе SaltStack ...
 
Доставка зловредов через облака
Доставка зловредов через облакаДоставка зловредов через облака
Доставка зловредов через облака
 
Обход файрволов веб-приложений
Обход файрволов веб-приложенийОбход файрволов веб-приложений
Обход файрволов веб-приложений
 
Аспекты деятельности инсайдеров на предприятии
Аспекты деятельности инсайдеров на предприятииАспекты деятельности инсайдеров на предприятии
Аспекты деятельности инсайдеров на предприятии
 
Fingerprinting and Attacking a Healthcare Infrastructure
Fingerprinting and Attacking a Healthcare InfrastructureFingerprinting and Attacking a Healthcare Infrastructure
Fingerprinting and Attacking a Healthcare Infrastructure
 
Janitor to CISO in 360 Seconds: Exploiting Mechanical Privilege Escalation
Janitor to CISO in 360 Seconds: Exploiting Mechanical Privilege EscalationJanitor to CISO in 360 Seconds: Exploiting Mechanical Privilege Escalation
Janitor to CISO in 360 Seconds: Exploiting Mechanical Privilege Escalation
 
Восток — дело тонкое, или Уязвимости медицинского и индустриального ПО
Восток — дело тонкое, или Уязвимости медицинского и индустриального ПОВосток — дело тонкое, или Уязвимости медицинского и индустриального ПО
Восток — дело тонкое, или Уязвимости медицинского и индустриального ПО
 
Эксплуатируем неэксплуатируемые уязвимости SAP
Эксплуатируем неэксплуатируемые уязвимости SAPЭксплуатируем неэксплуатируемые уязвимости SAP
Эксплуатируем неэксплуатируемые уязвимости SAP
 
NFC: Naked Fried Chicken / Пентест NFC — вот что я люблю
NFC: Naked Fried Chicken / Пентест NFC — вот что я люблюNFC: Naked Fried Chicken / Пентест NFC — вот что я люблю
NFC: Naked Fried Chicken / Пентест NFC — вот что я люблю
 
Magic Box, или Как пришлось сломать банкоматы, чтобы их спасти
Magic Box, или Как пришлось сломать банкоматы, чтобы их спастиMagic Box, или Как пришлось сломать банкоматы, чтобы их спасти
Magic Box, или Как пришлось сломать банкоматы, чтобы их спасти
 
Боремся с читингом в онлайн-играх
Боремся с читингом в онлайн-играхБоремся с читингом в онлайн-играх
Боремся с читингом в онлайн-играх
 

Similar to Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев

RDSDataSource: Основы LLVM
RDSDataSource: Основы LLVMRDSDataSource: Основы LLVM
RDSDataSource: Основы LLVMRAMBLER&Co
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр Егурцов
 
Александр Фокин, Рефлексия в C++
Александр Фокин, Рефлексия в C++Александр Фокин, Рефлексия в C++
Александр Фокин, Рефлексия в C++Sergey Platonov
 
C++ осень 2013 лекция 7
C++ осень 2013 лекция 7C++ осень 2013 лекция 7
C++ осень 2013 лекция 7Technopark
 
Scripting languages
Scripting languagesScripting languages
Scripting languagesLev Panov
 
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...SQALab
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)Sergey Skvortsov
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayAndrey Rebrov
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Ontico
 
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustMichael Pankov
 
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)AvitoTech
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямSergey Staroletov
 
Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)
Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)
Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)GeeksLab Odessa
 
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Ontico
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктуройdddpaul
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Yandex
 
Middleware
MiddlewareMiddleware
Middlewaremegakott
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
 
Caché Native Access. InterSystems Meetup 2014
Caché Native Access. InterSystems  Meetup 2014Caché Native Access. InterSystems  Meetup 2014
Caché Native Access. InterSystems Meetup 2014InterSystems
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusCisco Russia
 

Similar to Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев (20)

RDSDataSource: Основы LLVM
RDSDataSource: Основы LLVMRDSDataSource: Основы LLVM
RDSDataSource: Основы LLVM
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
 
Александр Фокин, Рефлексия в C++
Александр Фокин, Рефлексия в C++Александр Фокин, Рефлексия в C++
Александр Фокин, Рефлексия в C++
 
C++ осень 2013 лекция 7
C++ осень 2013 лекция 7C++ осень 2013 лекция 7
C++ осень 2013 лекция 7
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
 
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
Полная автоматизация развертываний ПО: общие концепции, пример реализации, ср...
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
 
Building deployment pipeline - DevOps way
Building deployment pipeline - DevOps wayBuilding deployment pipeline - DevOps way
Building deployment pipeline - DevOps way
 
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
Лучшие практики Continuous Delivery с Docker / Дмитрий Столяров (Флант)
 
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
 
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
Rempl — крутая платформа для крутых инструментов - Роман Дворнов (Avito)
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциям
 
Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)
Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)
Cocaine: сценарии использования (Дмитрий Унковский, Яндекс)
 
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
Как devops исчерпывает себя, и что будет дальше / Кирилл Вечера (Jetware)
 
Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
 
Middleware
MiddlewareMiddleware
Middleware
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Caché Native Access. InterSystems Meetup 2014
Caché Native Access. InterSystems  Meetup 2014Caché Native Access. InterSystems  Meetup 2014
Caché Native Access. InterSystems Meetup 2014
 
Программируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco NexusПрограммируемость коммутаторов для ЦОД Cisco Nexus
Программируемость коммутаторов для ЦОД Cisco Nexus
 

More from Positive Hack Days

Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Positive Hack Days
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Hack Days
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Positive Hack Days
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложенийPositive Hack Days
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложенийPositive Hack Days
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application SecurityPositive Hack Days
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Hack Days
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Hack Days
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОPositive Hack Days
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке СиPositive Hack Days
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CorePositive Hack Days
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опытPositive Hack Days
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterPositive Hack Days
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиPositive Hack Days
 
Практический опыт защиты финансовых транзакций клиентов Банка
Практический опыт защиты финансовых транзакций клиентов БанкаПрактический опыт защиты финансовых транзакций клиентов Банка
Практический опыт защиты финансовых транзакций клиентов БанкаPositive Hack Days
 
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...Positive Hack Days
 
Эффективный контроль сотрудников
Эффективный контроль сотрудниковЭффективный контроль сотрудников
Эффективный контроль сотрудниковPositive Hack Days
 

More from Positive Hack Days (20)

Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложений
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application Security
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опыт
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services Center
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атаки
 
Доклад SiteSecure
Доклад SiteSecureДоклад SiteSecure
Доклад SiteSecure
 
Практический опыт защиты финансовых транзакций клиентов Банка
Практический опыт защиты финансовых транзакций клиентов БанкаПрактический опыт защиты финансовых транзакций клиентов Банка
Практический опыт защиты финансовых транзакций клиентов Банка
 
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...
Решение SafeTouch — доверенный экран для безопасного подтверждения банковских...
 
Эффективный контроль сотрудников
Эффективный контроль сотрудниковЭффективный контроль сотрудников
Эффективный контроль сотрудников
 

Recently uploaded (9)

СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 

Пакетный менеджер CrossPM: упрощаем сложные зависимости | Александр Ковалев

  • 1. CrossPM Упрощаем сложные зависимости Александр Ковалев Ведущий программист отдела технологий разработки (DevOps) akovalev@ptsecurity.com
  • 3. Нерешенные проблемы со сборками Отсутствие единого инструмента, реализующего модель сборок
  • 4. Нерешенные проблемы со сборками К чему это привело
  • 6. Open Source Подготовка и вывод проекта в сообщество DevOpsHQ CrossPM config.yaml cpm.manifest environment Загруженные зависимости command line Artifactory adapter Git adapter Whatever adapter ... Любая структура каталогов и имен файлов в репозитории Формат описания зависимостей указывается в config.yaml Просто выполнить pip install crosspm перед использованием Логичная структура проекта, ведется работа по документированию кода
  • 8. CrossPM: Что он может • Найти пакеты, от которых зависит ваш проект • Найти пакеты, от которых зависят эти пакеты • Найти пакеты, от которых зависят и эти пакеты тоже • И т.д… • И т.д… • И т.д… • Распаковать загруженные пакеты • Создать shell скрипт для установки путей к пакетам в переменные окружения • Или cmd скрипт • Или python скрипт • Или json файл • Или просто вывести в stdout • Если Вам этого мало – пойдем пообщаемся… в хорошем смысле • Загрузить все эти найденные пакеты • Или загрузить только указанный пакет • Или просто вернуть полный путь или имя файла пакета
  • 9. CrossPM: Конфигурация формата манифеста crosspm.yaml (фрагмент) cpm.manifest (пример) boost 1.55.3 poco 1.46.14 openssl 1.0.20 log4cplus 1.1.6 ... columns: "*package, version" ...
  • 10. CrossPM: Конфигурация формата манифеста ... columns: "*package, version, branch, contract, quality" parsers: common: columns: version: "{int}.{int}.{int}[-{str}]" artifactory: path: "{server}/{package}/{branch}/{package}.{version}[.zip|.tar.gz|.nupkg]" properties: "build.contract.{contract} = {quality}" ... crosspm.yaml (фрагмент) cpm.manifest (пример) boost 1.55.*- 1.55-pm R11.0 snapshot poco 1.46.>=14 1.46-pm * release openssl 1.>0.* 1.* * * log4cplus 1.1.6 1.1-pm R10.0 stable
  • 11. CrossPM: Конфигурация меток качества ... values: quality: 1: banned 2: snapshot 3: integration 4: stable 5: release ... crosspm.yaml (фрагмент) cpm.manifest (пример) boost 1.55.*- 1.55-pm R11.0 >snapshot poco 1.46.>=14 1.46-pm * release openssl 1.>0.* 1.* * * log4cplus 1.1.6 1.1-pm R10.0 >=stable
  • 12. CrossPM: Конфигурация дополнительных опций ... options: arch: cmdline: arch env: CROSSPM_ARCH osname: cmdline: os env: CROSSPM_OS default: linux ... crosspm.yaml (фрагмент) Командная строка C:build> crosspm download --out-format=stdout –o arch=x86_64,os=win
  • 13. CrossPM: Конфигурация источников ... sources: - type: artifactory parser: artifactory server: https://repo1.someorg.com/artifactory/ repo: - libs-cpp - libs.snapshot auth_type: simple auth: - reader_cpp_libs - "**********" - type: artifactory parser: artifactory server: https://repo1.someorg.com/artifactory/ repo: libs-other.snapshot auth_type: simple auth: - "reader_libs" - "**********" ... crosspm.yaml (фрагмент)
  • 14. CrossPM: Конфигурация источников (упрощение) ... common: type: artifactory parser: artifactory server: https://repo1.someorg.com/artifactory/ auth_type: simple sources: - repo: - libs-cpp - libs.snapshot auth: - reader_cpp_libs - "**********" - repo: libs-other.snapshot auth: - "reader_libs" - "**********" ... crosspm.yaml (фрагмент)
  • 15. CrossPM: Командная строка CrossPM (Cross Package Manager) version: 0.8.1 The MIT License (MIT) Usage: crosspm download [options] crosspm promote [options] crosspm pack <OUT> <SOURCE> [options] crosspm -h | --help crosspm --version Options: <OUT> Output file. <SOURCE> Source directory path. -h, --help Show this screen. --version Show version. -v, --verbose Increase output verbosity. --verbosity=LEVEL Set output verbosity level: (critical, error, warning, info, ... -c=FILE, --config=FILE Path to configuration file. -o OPTIONS, --options OPTIONS Extra options. --depslock-path=FILE Path to file with locked dependencies [default: ./cpm.manifest] --out-format=TYPE Output data format. Available formats:(['stdout', 'cmd', ... --output=FILE Output file name (required if --out_format is not stdout) --out-prefix=PREFIX Prefix for output variable name [default: ] (no prefix at all) crosspm --help
  • 17. CrossPM + Artifactory • Использовали существующий API от Artifactory • Запланировали написать свою библиотеку для работы с Artifactory Первый этап: • Обнаружили, что такая библиотека уже существует • Протестировали: библиотека сыровата, но пользоваться уже можно • Разработчикам из Parallels – отдельное спасибо! Ждем развития! Второй этап (Open Source):
  • 18. CrossPM + Artifactory + любое другое хранилище, на самом деле… • Динамически подключаемые модули для работы с репозиторием: • Любой способ подключения: • http • ftp, sftp • smb • просто файлы в папках • и прочее… • Любое количество типов репозиториев
  • 19. CrossPM: Возможные доработки инструмента • Поддержка дополнительных форматов пакетов • Повторные попытки загрузки пакетов при разрывах соединения • Загрузка пакетов в репозиторий • Управление пакетами в репозитории
  • 20. Полезные ссылки • CrossPM: https://github.com/devopshq/crosspm установка: pip install crosspm • Python interface library for Jfrog Artifactory: https://github.com/Parallels/artifactory • Ждем ваши предложения на DevOpsHQ: https://github.com/devopshq/crosspm/issues
  • 21. Спасибо! Александр Ковалев Ведущий программист отдела технологий разработки (DevOps) akovalev@ptsecurity.com https://github.com/devopshq/crosspm Вопросы?