Procedure consigliate per il controllo della versione della libreria

5

Potrei violare alcuni termini di StackOverflow ponendo una domanda che ha maggiori probabilità di generare discussioni piuttosto che una risposta pulita. Qui va, tuttavia.

Ho sviluppato alcuni software per una piccola azienda che non è una software house (quindi non abbiamo ancora un sacco di processi in atto). È in Turbo Pascal (Delphi 2009) e la mia fonte è controllata dalla versione (CVS).

Uso diversi componenti di terze parti (grafici, comunicazioni TCP, ecc.) In Delphi, il comportamento predefinito è per la fonte che questi vengano memorizzati in una cartella di inclusione nella cartella dei file di programma IDE Delphi.

È ora di passare questo progetto a un altro sviluppatore. Ora dovrà installare i componenti IDE + affinché possano apparire correttamente durante la modifica dei moduli in questa applicazione. Ma mi piacerebbe che il nostro processo di produzione fosse automatizzato e vorrei che un server di compilazione fosse in grado di eseguire un checkout del codice e compilare.

Questo significa che penso di aver davvero bisogno di mettere tutto il codice sorgente (o almeno le DCU in cui non ho i file sorgente) per questi componenti aggiuntivi di terze parti nel controllo del codice sorgente. Penso che dovrebbero far parte del modulo CVS per il progetto software in fase di sviluppo (cioè non il loro modulo di controllo sorgente).

Penso che dobbiamo essere in grado (come una piccola azienda) di indicare un futuro sviluppatore al repository e dire "Dai un'occhiata a questo modulo" e avrà tutto ciò di cui ha bisogno per essere in grado di compilare dalla riga di comando senza fare altro. (vale a dire la portabilità verso nuovi ambienti di sviluppo è importante)

È sensato, o sarebbe più scalabile per noi mantenere ciascuna libreria nel suo stato di versione controllata e poi nello script di build, tirare il codice sorgente per questo progetto e la versione corretta del codice sorgente per ogni biblioteca?

Grazie in anticipo, e le mie scuse per la natura sconclusionata della domanda.

Duncan

    
posta Duncan 19.05.2011 - 17:02
fonte

2 risposte

7

Beh, non penso che ci sia una sola risposta definitiva. Ma posso dirti cosa succede nel mio posto di lavoro, e cioè che l'intero albero del codice sorgente è sotto controllo di revisione: tutti i miei componenti di terze parti, tutte le routine C dispari che vengono compilate e collegate, un numero di .obj file ecc.

È molto importante per noi essere in grado di avere un processo di generazione ripetibile e quanto sopra è davvero un prerequisito per questo.

Ora, come raggiungere questo obiettivo con il tuo sistema di controllo del codice sorgente è un'altra cosa, ma dovresti mirare a poter controllare l'intero progetto ed essere in grado di costruirlo senza alcun intervento umano.

    
risposta data 19.05.2011 - 17:21
fonte
0

Interpreterò anche su come facciamo le cose nella mia azienda. Abbiamo un repository per il progetto principale e un repository separato per tutti i nostri componenti Delphi.

Quando creo una nuova versione del progetto principale, contrassegno la versione sia nel progetto che nei repository dei componenti.

Ho anche uno script di build che estrae il trunk o un tag specificato per entrambi i repository e quindi crea una versione di rilascio del progetto.

Se i componenti che utilizzi nel tuo progetto sono usati solo in quel progetto, allora penso che avrebbe più senso tenerli con il progetto. D'altra parte, se utilizzi questi componenti di terze parti con altri progetti, forse ha più senso tenerli in un repository separato.

    
risposta data 11.08.2011 - 19:44
fonte

Leggi altre domande sui tag