Usamos el estándar de versionado semántico:
http://semver.org/spec/v2.0.0.html
Por ejemplo, podemos tener: 1.5.1-dev.1 que corresponde a: MAJOR.MINOR.PATCH-PRERELEASE
Con más detalle:
Versión MAJOR cuando haces cambios incompatibles en la API / estructura de la BD. En AzerothCore lanzamos una versión MAJOR de vez en cuando y a partir de entonces solo damos soporte a arreglos de seguridad (lee la sección de abajo). Por tanto, esta versión puede verse más como un Milestone.
Versión MINOR cuando añades funcionalidad de forma retrocompatible. Esto está mayormente sin usar en AC, ya que no importamos ninguna funcionalidad nueva después de lanzar una versión MAJOR.
Versión PATCH cuando haces arreglos de bugs y de seguridad retrocompatibles.
PRERELEASE esto es lo que se llama "metadata" en el estándar semver. Usamos esta parte del versionado mientras trabajamos en la rama master. Cada vez que se lanza una nueva funcionalidad o un cambio que rompe compatibilidad (tanto en código como en BD), este número se incrementa para notificarte sobre posibles acciones a realizar. Consulta cómo usar el changelog.
AzerothCore aún no se considera un software "completado", por lo que está constantemente en fase de desarrollo. El versionado descrito arriba se usará principalmente para proporcionar una forma sencilla de comprobar si un módulo, script o cualquier cosa conectada a AC es compatible o no con AC y qué hacer para actualizarlo.
Nuestra estrategia es (en orden de las acciones más comunes):
-dev.x en master cuando tenemos cambios que rompen compatibilidad o nuevas funcionalidadesFASE 1: Fase de desarrollo: durante la fase de desarrollo, usaremos la rama master, donde podemos hacer libremente cambios en la API, la BD y todo lo que pueda romper la compatibilidad con revisiones antiguas. Al inicio de cada fase de desarrollo, limpiaremos las carpetas sql/updates archivando los SQLs antiguos.
N.B.
FASE 2: Solo arreglos de estabilidad y seguridad: en esta fase dejaremos de importar arreglos de mecánicas / contenido y ofreceremos soporte solo a problemas de seguridad y estabilidad. Por ejemplo: si una función genera un crash por un puntero nulo, lo arreglaremos.
Podríamos eventualmente extender esta fase si muchas personas lo solicitan.
FASE 3: Fin de vida ( EOL ): archivaremos esa release manteniendo, por supuesto, la documentación y la rama. Puedes seguir usándola/descargándola, pero no ofreceremos ningún soporte oficial de ningún tipo
NOTA: esto está desactualizado, consulta nuestras releases en github
| version/branch | codename | description | current state | release data | end of support |
|---|---|---|---|---|---|
| 0.x | Sunwell | small reworks for sunwell | EOL | 2016 Q3 | 2017 Q1 |
| 1.x | Mimiron | first version to introduce the module system | EOL | 2017 Q1 | 2019 Q1 |
| 2.x | Gunship | Integrated CI/CD and tons of fixes | Security & Stability | 2019 Q1 | ~ |
| master (3.x) | ~ | ~ | developing | ~ | ~ |