Versioning: coerenza tra diversi ambienti come DEV, TEST e PROD

1

Sto cercando di ideare un sistema di controllo delle versioni per un prodotto che stiamo costruendo. Abbiamo tre ambienti: DEV, TEST e PROD.

Un sistema è quello ad es. se abbiamo un (piccolo) cambiamento in DEV, incrementiamo la versione in 5.1.2 dalla 5.1.1, facciamo propagare questo numero di versione anche a TEST e PROD. Quindi per il prossimo (piccolo) cambiamento in dire TEST, sarebbe 5.1.3 e lo stesso si propagherà anche a DEV e PROD.

Questa è una buona idea? Non lo trovo così. Ma non sono stato in grado di pensare o trovare qualcosa di meglio.

C'è una guida generale a riguardo? Eventuali suggerimenti? O sto sbagliando tutto questo?

Grazie.

    
posta virtualmic 18.08.2016 - 10:31
fonte

1 risposta

2

In un mondo ideale distribuisci lo stesso codice ( esattamente lo stesso) in ogni ambiente a turno - nel caso di codice compilato questo dovrebbe essere lo stesso binario compilato / pacchettizzato.

In termini di implementazione il codice (compilato) dovrebbe seguire più o meno sempre un percorso da dev - > test - > live (questa è una generalizzazione radicale e c'è un intero carico di cose dipendenti dal contesto che lo invalidano).

Se guardi "Semantic Versioning" avrai delle buone linee guida per i numeri di versione.

Personalmente sono più felice quando il numero di versione meno significativo (patch e below in major.minor.patch) è impostato sul mio build build server e le distribuzioni sono sempre di pacchetti generati dal build server. Voglio anche che l'hash git (o equivalente) sia codificato nel pacchetto distribuito perché in questo modo si conosce in modo positivo e assolutamente quale versione del codice si sta guardando.

Questo non risponde completamente alla domanda perché uno avrebbe bisogno di più contesto (dettagli del tuo ambiente specifico)

    
risposta data 18.08.2016 - 11:01
fonte

Leggi altre domande sui tag