Cómo acceder al número de versión de Git dentro del código

Tengo una GUI de Python en Github que está versionada usando el sistema de lanzamiento de Github. Me gustaría poner el número de versión a disposition de los usuarios dentro del software. ¿Está esta información almacenada de manera que pueda acceder a ella programáticamente?

Actualmente, almacenamos el número de versión en un file de versión al que se puede acceder desde la GUI, pero esto es propenso a pasar desapercibido y, por lo tanto, a veces está desactualizado. ¿Hay alguna mejor práctica diferente que no requiera el seguimiento del número de versión en dos lugares separados?

Para get el último número de versión, si está utilizando el sistema de lanzamiento Github , hay una API para él . Desea get la última versión que debería ser https://api.github.com/repos/:owner/:repo/releases/latest .

Sin embargo, usted quiere qué número de versión es la versión particular que está usando el usuario, no lo que es lo último en Github. Para eso necesitas el número de versión en algún lugar del software.

Yo recomendaría ponerlo en un file de configuration, algo fácil de leer y editar por software. Luego, su progtwig de lanzamiento automatizado editará ese file de configuration y hará todo lo demás para hacer una publicación. Es muy importante que el process de lanzamiento esté completamente automatizado; de lo contrario, como habrás observado, la gente olvidará cosas.

Para el administrador de versiones, probablemente se vería así:

 make_release v1.2.3 master 

Esto haría todo. Edita la configuration. Ejecute testings de lanzamiento. Cometer cambios. Crea un lanzamiento en Github. Etc …

Si usa versiones semánticas , ni siquiera le permitiría al humano decidir el número de versión. El humano simplemente diría qué tipo de lanzamiento es.

 # v1.2.3 -> v1.2.4 make_release --patch master # v1.2.3 -> v1.3.0 make_release --minor master