Ci sono benefici per derivare versioni dal ramo SCM?

2

Attualmente, abbiamo uno schema di versioning che segue il modello major.minor.patch. Lo sviluppo è fatto in una filiale (ad es. Filiali / b4_2); una versione è un tag (tag / r4_2_0). Per determinare la versione all'interno del codice, abbiamo una classe in grado di analizzare l'URL SCM (FooVersion.java). Se l'URL rappresenta un ramo, la revisione SVN viene aggiunta (per le build del QA).

Stiamo rivalutando il controllo delle versioni e, più precisamente, che tipo di ambienti abbiamo. Il grande cambiamento qui sta aggiungendo il concetto di un ambiente beta per i nostri "super utenti". Insieme a questo, sto ripensando a questo sistema di derivazione della versione potenzialmente sovradimensionato.

Come si determina, nel codice, qual è la versione del software? La creazione di una release è già un processo manuale (creazione di tag, check in JAR per le librerie correlate che sviluppiamo, ecc.) Che potrebbe probabilmente essere script, quindi c'è un vantaggio nel modo in cui lo facciamo avendo un file di testo che viene aggiornato quando una versione è tagliata?

    
posta sarumont 12.12.2011 - 19:31
fonte

1 risposta

2

Distinguiamo tra un identificatore di build (l'URL SVN + revisione, sebbene possa essere anche un identificatore git) e un numero di versione "marketing", quest'ultimo gestito in un file di testo e aggiornato manualmente.

C'è pochissimo uso e qualche danno nell'avere questi due numeri dipendono l'uno dall'altro. Sono usati molto raramente insieme. Esiste una n relazione pesante tra i commit SVN e gli aumenti del numero di marketing. Gli utenti si confondono quando i numeri di versione saltano selvaggiamente. Quando inizi a spedire i binari insieme (come i relativi librerie-JAR), hai bisogno di un identificatore di rilascio che sia indipendente dagli identificatori binari. Ad esempio, combiniamo 5 pacchetti per una versione binaria, ognuno dei quali necessita di un identificativo di versione, quindi non è possibile derivare il numero di versione da uno qualsiasi di questi 5 URL in alcun modo.

Pertanto, ti consiglierei di eliminare lo schema di derivazione della versione e gestire la versione di marketing in modo indipendente. Utilizza l'URL SVN + revisione come identificatore di build, inseriscilo in un menu remoto nel tuo software e nei log degli errori che vengono generati ai fini della segnalazione di bug, e non toccarlo mai in modo programmatico.

    
risposta data 12.12.2011 - 22:03
fonte

Leggi altre domande sui tag