Система управления релизами для Linux - PullRequest
7 голосов
/ 19 февраля 2010

В нашей фирме нам нужен инструмент управления релизами для Linux / C ++.Наши продукты состоят из нескольких библиотек и конфигурационных файлов.Здесь я перечислю основные функции, которые мы хотим, чтобы такая система имела:

  • Способность отслеживать зависимости, легко увеличивать основные версии библиотек, чьи зависимости получили увеличенную основную версию.Он должен построить какой-то граф зависимостей внутри, чтобы он мог знать, на кого повлияло обновление.

  • Знать, как создавать продукты, с которыми он работает.Либо конкретный файл сборки, либо, что еще лучше, - способность читать и понимать файлы сборки.

  • Работать с SVN, чтобы он мог проверять наличие новых выпусков и выполнять сборку.*

  • Создайте несколько инсталляторов - в формате rpm или tar.gz.Для этой цели он должен понимать формат файла спецификации rpm.

В настоящее время мы работаем над таким инструментом, который уже довольно удобен в использовании.Однако я считаю, что наша задача не уникальна, и там должен быть какой-то инструмент, который сделает эту работу.

Ответы [ 5 ]

2 голосов
/ 21 февраля 2010

Вы должны изучить использование смеси между Hudson, Maven (для управления сборкой), Ivy (для управления зависимостями) и Archiva (для архивации артефактов).

Кроме того, если вы изучаете cross.compilation, взгляните на Make Project Creator (MPC) и Bakefile.

Веселись !!

1 голос
/ 22 февраля 2010

В проекте, над которым я сейчас работаю, мы используем cmake и другие инструменты Kitware для решения большинства этих проблем для собственного кода (C ++). Отвечая по пунктам:

  • Скрипты cmake обрабатывают зависимости для наших различных проектов. У нас есть граф зависимостей, но я не знаю, является ли самодельный скрипт или это функциональность, которую предоставляет cmake.

  • Ну, cmake генерирует make-файлы относительно платформы. Я генерирую проекты для eclipse cdt и visual studio, если меня просят сделать это в случае разработки.

  • В Cmake есть пара инструментов, ctest и cdash, которые мы используем для ежедневной сборки и просмотра результатов теста.

  • Для создания установщика в cmake есть cpack. Только из одного скрипта он может генерировать файлы tar.gz, deb или rpm в Linux или автоматически генерируемый скрипт NSIS для генерации установщиков в Windows.

Для кода Java мы используем maven и hudson, которые уже упоминались здесь.

1 голос
/ 21 февраля 2010

Взгляните на эту статью из DDJ, в которой представлена ​​и реализована более надежная концепция системы сборки (чем make). Не уверен, что он будет соответствовать вашим требованиям, но это самое близкое, что я когда-либо видел. Я искал то же самое несколько месяцев назад, а потом обнаружил статью.

http://www.drdobbs.com/architect/218400678

0 голосов
/ 20 февраля 2010
  • Понятия не имею
  • cmake / scons: я использовал cmake, но мне это не очень нравится, но я слышал действительно хорошие вещи о scons.Но scons основан на python, поэтому вам нужно установить python на компьютерах сборки / разработки.
  • Я использую Hudson , который имеет плагин для извлечения из SVN.Он работает интеллектуально в целом и, в частности, строит, только если какой-либо файл изменился в обновлении SVN.С Хадсоном легко начать.Хадсон основан на Java и довольно популярен в сообществе Java.Это означает, что он довольно кроссплатформенный, но вам нужно установить JRE на сборочной машине.
  • Вероятно, можно вызвать какой-нибудь инструмент rpm в hudson.
0 голосов
/ 19 февраля 2010

Maven имеет плагин с собственным кодом . Я не думаю, что он будет делать все, что вы хотите, но он хорошо отслеживает номера версий зависимостей, создаст артефакты и будет работать с вашей VCS.

...