Expertos en Drupal

Adopción del “Semantic versioning” en drupal.org

En marzo del año 2020, la comunidad de drupal.org empezó a adoptar el “Semantic versioning” para los módulos contribuidos. A continuación, analizamos los motivos y como evoluciona el proceso de adopción.

Adopción del “Semantic versioning” en drupal.org

Con la llegada de la versión 9 de Drupal, se empezó a dar el caso que un módulo contribuido podía ser compatible al mismo tiempo con dos versiones diferentes del núcleo (la 8 y la 9). Por lo tanto, la nomenclatura histórica consistente en poner como prefijo la versión del núcleo a las versiones ya no tenia sentido (por ejemplo 7.x-1.0 o bien 8.x-1.0). No obstante, esta nomenclatura continúa siendo necesaria en el caso de los módulos de la versión 7 porque estos no son compatibles con las versiones 8 y 9.

Entonces, la comunidad adoptó el “Semantic versioning” que es un estándar que podemos consultar en su página web oficial. Según esta normativa, los módulos contribuidos tienen que definir un número de versión de la forma “MAJOR.MINOR.PATCH” donde tenemos que:

  • MAJOR: se incrementa este número cuando hay cambios incompatibles en la API.
  • MINOR: se incrementa este número cuando hay cambios compatibles con versiones anteriores.
  • PATCH: se incrementa este número cuando hay correcciones de errores que son compatibles con versiones anteriores.

Por otra parte, cabe destacar que el cambio también afecta a la nomenclatura de las ramas de los repositorios Git de drupal.org (actualmente 7.x-1.x y/o 8.x-1.x). En este caso, también se elimina el prefijo que contiene la versión del núcleo. La nueva nomenclatura permite ramas como por ejemplo 1.x, 2.x, etc.

En cualquier caso, el proceso de adopción de la nueva normativa no implica borrar ninguna versión liberada ni ninguna rama del repositorio. Simplemente consiste en lo siguiente:

  • Las nuevas mejoras que se hagan en los módulos contribuidos se tienen que hacer en nuevas ramas del repositorio.
  • Las nuevas versiones se tienen que etiquetar cumpliendo la nueva normativa.

Finalmente, revisando el sitio web de drupal.org, se puede ver que hay muchos módulos conocidos que aún no la han adoptado: Token, Pathauto, Redirect, Metatag, Date, etc. Por otra parte, también encontramos módulos conocidos que si que la han adoptado: Twig Tweak, Webform, Linkit, etc. Por lo tanto, parece que el proceso de adopción estar resultando ser muy lento.

Bibliografía

https://semver.org/lang/es/

https://www.drupal.org/node/3108648

Comparte este artículo

Artículos Relacionados