È confuso non memorizzare il numero di versione di un progetto nel codice sorgente?

5

Attualmente per creare versioni per il nostro progetto, stiamo usando Travis CI per caricare i binari ogni volta che un tag è creato . Utilizziamo versioning semantico , quindi i nostri tag hanno la forma v<Major>.<Minor>.<Patch> . Il nostro numero di versione è impostato da CMake e a evitare problemi con la sincronizzazione con il numero di versione del tag, lo siamo utilizzando un semplice script per estrarre il numero di versione dalla variabile di ambiente TRAVIS_TAG .

La nostra CMakeLists.txt ha un aspetto simile al seguente:

execute_process(COMMAND .travis/get_version_from_tag.sh major OUTPUT_VARIABLE MAJOR)
execute_process(COMMAND .travis/get_version_from_tag.sh minor OUTPUT_VARIABLE MINOR)
execute_process(COMMAND .travis/get_version_from_tag.sh patch OUTPUT_VARIABLE PATCH)
set(VERSION ${MAJOR}.${MINOR}.${PATCH})

# Using the version number later for packaging, etc...

set(CPACK_PACKAGE_MAJOR ${MAJOR})
set(CPACK_PACKAGE_MINOR ${MINOR})
set(CPACK_PACKAGE_PATCH ${PATCH})
INCLUDE(CPack)

Mi piace questo approccio perché rende molto facile pubblicare le versioni e non c'è alcun rischio di dimenticare di aggiornare il numero di versione codificato in un file da qualche parte. D'altra parte, sono preoccupato che potrebbe essere un po 'confuso poiché da una copia del codice sorgente da solo, è impossibile conoscere il numero di versione.

Questa è una configurazione eccessivamente complicata e confusa?

    
posta Gordon Bailey 19.05.2016 - 16:22
fonte

1 risposta

2

Non proprio, se il codice sorgente è ottenuto dal ramo taggato, allora è ovvio quale versione è quale!

Potresti avere più difficoltà se stai lavorando su un ramo, che è probabilmente preso dal trunk, o uno preso da un tag in modo da non sapere necessariamente a quale versione corrisponde la sorgente. Se riesci a trovare la versione da cui proviene la fonte, non è un problema. Se non puoi, allora i tuoi dev devono solo essere un po 'più attenti. Se i tuoi sviluppatori sono sciatti, un file con il numero di versione potrebbe aiutarli, ma probabilmente hai problemi più grandi in quel caso.

Un posto dove potresti voler includere un numero di versione in source è in un readme o un log delle modifiche. Alcune persone aggiornano questa operazione a mano (riassumendo le modifiche) o la generano dal tuo SCM, ma ritengo che sia ancora meglio affidarla alla directory sorgente una volta creata come parte di una build. Se lo fai, avrai il numero di versione nella parte superiore, indipendentemente dal ramo sorgente che stai recuperando.

    
risposta data 19.05.2016 - 16:56
fonte