Инструмент сборки для сложного проекта C ++ / Python

Я работаю над проектом, состоящим из нескольких проектов C ++ и Python. Типичный компонент, например, состоит из:

  • Чистая библиотека C ++ (в зависимости от других нативных библиотек)
  • C / C ++ Python привязка (в зависимости от нативных библиотек)
  • Чистый связующий код Python (в зависимости от других библиотек Python и привязок Python)

Компонент может зависеть от других компонентов.

Компоненты C ++ создаются с использованием CMake и созданных RPM-файлов. Компоненты Python упакованы с помощью setuptool для колес Python. Окончательное приложение упаковано в образ Docker.

Как вы можете догадаться, эту неоднородную среду очень сложно поддерживать:

  • Управление зависимостями очень сложно и подвержено ошибкам. Зависимости C ++ управляются с использованием функций RPM. Python зависимости с помощью setuptool.
  • Развернуть результаты сборки сложно. Поддерживаются 2 сервера, 1 для хранилища RPM и 1 для хранилища Pypi
  • Установка сложна: целостность компонентов RPM и Python не гарантируется. Выбрать и установить приложение сложно, так как нет единого управления зависимостями
  • Пометка версий в системе управления версиями также сложна: вам нужно изменить версию в проекте Python и C ++. Нам действительно нужна единая точка входа.

Я уверен, что некоторые люди там уже сталкивались с такой проблемой, и я ищу хорошее и надежное техническое решение. Мы уже пытались управлять этими проектами с помощью Maven (подтверждение концепции), но наш опыт работы с этой системой сборки не очень положительный: ей не хватает гибкости, и мы не нашли, как управлять пользовательским артефактом (RPM, колеса) и окончательной установкой. ,

Есть ли у вас какие-либо идеи о том, как разработать поддерживаемую систему сборки в этом контексте?

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector