2010-02-19 9 views
7

Ciò di cui abbiamo bisogno nella nostra azienda è una sorta di strumento di gestione dei rilasci per Linux/C++. I nostri prodotti sono costituiti da più librerie e file di configurazione. Qui mi limiterò a elencare le caratteristiche di base che vogliamo tale sistema abbia:Sistema di gestione dei rilasci per Linux

  • Possibilità di monitorare le dipendenze, facilmente aumentare le principali versioni di librerie di cui dipendenze ha ottenuto la loro versione principale è aumentato. Dovrebbe creare internamente una sorta di grafico delle dipendenze in modo che possa sapere chi è interessato da un aggiornamento.

  • Sapere come costruire i prodotti che gestisce. O un file di build specifico o anche migliore: possibilità di leggere e capire i makefile.

  • Lavora con SVN in modo da poter controllare le nuove versioni da lì e fa la compilazione.

  • Genera alcuni programmi di installazione - in formato rpm o tar.gz. A tale scopo dovrebbe essere in grado di capire il formato del file spec rpm.

Attualmente stiamo lavorando a tale strumento che è già abbastanza utilizzabile. Tuttavia, ritengo che il nostro compito non sia unico e che ci debba essere uno strumento là fuori che fa il lavoro.

risposta

1

Nel progetto al momento sto lavorando usiamo cmake e altri strumenti Kitware per gestire la maggior parte di questi problemi per codice nativo (C++).Rispondere punto per punto:

  • Gli script cmake gestiscono le dipendenze per i diversi progetti. Abbiamo un grafico delle dipendenze ma non so se è uno script fatto in casa o è una funzionalità fornita da cmake.

  • Bene cmake genera i file relativi alla piattaforma. Genero progetti per eclipse cdt e visual studio se viene richiesto di farlo in caso di sviluppo.

  • Cmake ha un paio di strumenti, ctest e cdash che usiamo per fare la build giornaliera e vedere come stanno facendo i test.

  • Per creare il programma di installazione cmake ha cpack. Da un solo script è possibile generare file tar.gz, deb o rpm in Linux o uno script NSIS generato automaticamente per generare programmi di installazione in Windows.

Per il codice Java utilizziamo maven e hudson che sono stati già menzionati qui.

0

Maven ha un native code plugin. Non penso che farà tutto quello che vuoi, ma è utile per tenere traccia dei numeri di versione delle dipendenze, creerà artefatti e funzionerà con il tuo VCS.

0
  • Nessuna idea
  • cmake/scons: Ho usato CMake ma non esattamente amarla, ma ho sentito cose molto buone su scons. Ma scons è basato su Python, quindi è necessario avere python installato sulle macchine build/dev.
  • Io uso Hudson, che ha un plugin per il recupero da svn. Funziona in modo intelligente in generale, e in particolare crea solo se qualche file è stato modificato in un aggiornamento di svn. Hudson è facile da iniziare. Hudson è basato su Java ed è molto popolare con la comunità Java. Ciò significa che è abbastanza multipiattaforma, ma è necessario che JRE sia installato sulla macchina di compilazione.
  • Probabilmente si può chiamare qualche strumento rpm all'interno di hudson.
1

Dai un'occhiata a questo articolo del DDJ, in cui viene presentato e implementato un concetto di sistema di costruzione più robusto (che fare). Non sono sicuro che si adatti alle tue esigenze, ma è il più vicino che abbia mai visto. Stavo cercando la stessa cosa mesi fa, e poi ho scoperto l'articolo.

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

2

Si dovrebbe considerare di usare un mix tra Hudson, Maven (per la gestione di compilazione), Ivy (per le dipendenze gestione) e Archiva (per i manufatti d'archivio).

Inoltre, se stai cercando cross.compilation, dai un'occhiata a Make Project Creator (MPC) e Bakefile.

Buon divertimento !!