Ramificazione di un programma di installazione / installazione dell'applicazione tra le versioni?

1

Mi chiedo se dovrei diramare il nostro script di installazione / file di progetto (usiamo InnoSetup ) con ogni versione dell'applicazione o se dovrei tenerne uno nello script del programma di installazione  che genera l'installazione per tutte le versioni e rami.

Sfondo

Utilizziamo le filiali ("versioni di manutenzione") pesantemente perché le nostre funzionalità sono molto guidate dai clienti e spesso implementiamo una correzione di bug in una specifica versione del cliente per mantenere le cose stabili. (Sì. Non è ottimale, ma è anche ciò che piacciono ai clienti. Mancano poche modifiche al codice per non correre rischi con il loro costoso hardware che giace inattivo a causa delle regressioni.)

Quindi i nostri rami / versioni sarebbero simili a questo

v150.6 - "150" branch installed with customer X 
v151.7 - "151" branch installed with customer Y, Z, A and B
...
v156.3 - "156" branch installed with customer C and D
vCurrent - Development of new features - will produce a v157 eventually

Ora ho controllato il nostro script di installazione nel controllo della versione e ha già riscontrato parecchie correzioni e modifiche.

Al momento, quando viene creata una nuova versione di manutenzione v151.n + 1, gli script di build automatici portano lo script di installazione controllato nella diramazione v151 e creano un setup con questo. Quindi, ovviamente, una versione v151.8 avrebbe un installer un po 'obsoleto, anche se "il 95%" di tutte le correzioni del programma di installazione sarebbe applicabile a tutte le vecchie versioni.

Pertanto sto considerando di adattare i nostri script di compilazione automatici per utilizzare sempre lo script di installazione dal ramo vCurrent: - anche per le impostazioni delle versioni di manutenzione appena create delle vecchie filiali.

Che cosa ne pensi di questo. Lo script di installazione / installazione deve essere "strettamente vincolato" a una versione di codice sorgente o il ciclo di vita della logica di installazione essere più indipendente dall'effettiva versione di codice / binari installati, in modo che corregge l'installazione la logica può essere utilizzata su una gamma di versioni (di manutenzione) differenti?

    
posta Martin Ba 12.07.2011 - 10:10
fonte

1 risposta

1

Dipende ... abbiamo una situazione simile, se ti assicurassi che i prodotti ricevessero solo correzioni di errori e non tutto ciò che potrebbe richiedere modifiche agli script di installazione, allora lo script rimane costante e potresti riutilizzarne uno principale per ogni ramo. Tuttavia, quando i rami ricevono prodotti modificati (ovvero quel 5% che hai menzionato), un singolo script di installazione per tutto non sarebbe sufficiente per ogni ramo, quindi dovresti avere uno script per ogni ramo.

Se utilizzi qualcosa come Wix , puoi pre-elaborare i file per includere o escludere gli elementi , ma penso che richiederebbe troppo tempo per mantenere gli script. Sarebbe molto più efficiente archiviare gli script dedicati per ciascun ramo e unire le modifiche tra i rami come richiesto.

So che non è una buona risposta, ma dipende in realtà da cosa sta installando ciascun ramo, e quanto impegno comporta l'ultimo 5%.

    
risposta data 12.07.2011 - 12:04
fonte

Leggi altre domande sui tag