ComfyUI Manager y GitHub Releases: ¿Por qué las versiones no coinciden?

Al empezar a explorar cómo funciona el software de generación de imágenes ComfyUI, surge una duda muy común: ¿por qué la versión más reciente que puedes instalar en la aplicación es la 0.34.5, mientras que al ir directamente a la página oficial de GitHub Releases solo aparece la 0.34.0? Parece contradictorio y uno podría pensar que el instalador está leyendo un archivo oculto o una lista secreta de versiones.

Comparación visual entre la interfaz del software mostrando 0.34.5 y la página de GitHub Release 0.34.0.
La discrepancia inicial entre el selector de versiones en la aplicación y la lista pública de releases en GitHub.

Para resolver esto, primero hay que entender la diferencia entre los objetos ‘GitHub Release’ y las etiquetas ‘Git tags’. Un GitHub Release es un objeto formal asociado a una versión pública en la web, mientras que un Git tag es simplemente una referencia a un commit específico dentro del repositorio.

Al investigar el código fuente de ComfyUI Manager, descubrimos que la función get_comfyui_versions no consulta la página web para construir su lista. En su lugar, ejecuta directamente comandos como git fetch --tags y recorre todos los tags disponibles en el repositorio.

Fragmento de código mostrando la función get_comfyui_versions leyendo git tags.
El código real que utiliza ComfyUI Manager para leer directamente los tags del repositorio Git en lugar de consultar la página web.

El código filtra estos tags para quedarse solo con aquellos que siguen un formato semver válido, como v0.34.1, v0.34.5 o v0.35.0. Ordena estas versiones y toma las cuatro más recientes, añadiendo la versión actual si es necesario para obtener una lista de hasta seis entradas.

Aquí es donde se revela el patrón de desarrollo del proyecto: ComfyUI utiliza dos ramas principales en su repositorio Git. La rama master es donde ocurre el avance principal y las nuevas versiones minor, como la próxima v0.35.0.

Diagrama del repositorio Git mostrando las ramas master y release/v0.34 con sus respectivos tags.
La estrategia de desarrollo con dos ramas: master para nuevas features y release/v0.34 para parches backporteados.

Por otro lado, existe una rama secundaria llamada release/v0.34. Esta es donde se backportean las actualizaciones de parche para la versión estable actual. Es por eso que vemos una secuencia continua de tags como v0.34.1, v0.34.2 y hasta v0.34.5.

En resumen, no hay ninguna lista secreta ni versiones fantasma. El Manager lee directamente los tags Git del repositorio para ofrecer las últimas actualizaciones estables, lo que explica perfectamente por qué la interfaz se queda en 0.34.5 mientras la página de GitHub Releases muestra una versión menor.