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?