Este es el inicio de una serie de artículos que estaré escribiendo sobre Drupal 9, a solo unas cuantas semanas de que esta nueva versión esté disponible en versión estable para todos.
Advertencia: Este artículo es apto para desarrolladores o para quien tenga corazón de desarrollador.
El tema del versionamiento no es como una gran novedad en Drupal 9 ya que desde Drupal 8 ya veníamos experimentando los cambios poco a poco hacia el versionamiento semántico, de hecho es el que ha facilitado el proceso de actualización a medida que nos acercamos a Drupal 9.
El versionamiento semántico nos ayuda a leer mejor una versión de Drupal, usa tres números para identificar la versión en lugar de dos, por ejemplo, cuando vamos a la página de descarga del proyecto drupal.org nos encontramos con un número de versión como el siguiente:
Este número 8.8.8 es la representación de PRINCIPAL.MENOR.PARCHE, a medida que el equipo de desarrollo vaya actualizando tendrá en cuenta los siguientes criterios para asignar un número a cada uno de ellos así:
- Versión PRINCIPAL: Cuando se realizan cambios en la API tan grandes que remueven funciones obsoletas o crean incompatibilidades, esta versión es la que tarda años en cambiar, han pasado 5 años desde que cambió a la versión 8, como los cambios son tan grandes, no hay compatibilidad con la versión anterior, es decir que por por eso Drupal 8 no es compatible con Drupal 7.
- Versión MENOR: Esta versión agrega nuevas funcionalidades manteniendo una compatibilidad con versiones anteriores, el API no cambia sustancialmente, por ejemplo, cuando cambió de la versión 8.7 a la 8.8 los cambios en 8.8 mantienen la compatibilidad con 8.7 y además el módulo Pathauto pasó a ser parte del core
- Versión PARCHE: Corresponde a una versión que corrige problemas identificados, estos pueden ser de orden funcional o de seguridad
De tal forma que la imagen que vimos anteriormente se leería así:
- 8: Indica que el software ha pasado por siete versiones anteriores que han tenido cambios profundos en el API y actualmente se encuentra en la octava.
- 8: Se han producido ocho cambios que agregan nuevas funcionalidades a lo largo de la existencia de la versión mayor 8, si por ejemplo la versión mayor cambiara a 9, la versión menor cambiaría a cero, porque no se habrían producido aún cambios que agreguen nuevas funcionalidades en esta nueva versión.
- 5: Cinco grupos de correcciones funcionales o visuales se han producido a lo largo de la existencia de la versión menor ocho.
Adicionalmente, uno de los requisitos que tiene el versionamiento semántico es disponer de una API Pública la cual puede ser consultada para que un equipo de desarrollo pueda determinar si quiere implementar los cambios que trae la nueva versión, la dirección de la API pública de drupal es https://api.drupal.org
Drupal ha seguido este esquema de numeración desde que se lanzó la versión 8.0 en 2015 y tal parece que la versión PRINCIPAL será actualizada cada dos o tres años. Esto ha forzado (en el buen sentido) un proceso de desarrollo que permite actualizaciones funcionales más fáciles y una eliminación más sencilla del código antiguo. Anteriormente, los lanzamientos de versiones no ofrecerían soporte futuro para el código antiguo, dejando a los desarrolladores en un escenario en el que deben actualizar o proporcionar sus propias actualizaciones al código heredado.
¿Por qué es importante entender el versionamiento semántico?
Ya sea que haga parte de un equipo de desarrollo que trabaja con Drupal o cualquier otro software que usa el versionamiento semántico o que haga parte del equipo directivo que toma decisiones respecto a las actualizaciones del software, el tener claro qué tipo de cambios puede esperar en el software solo viendo la versión le permitirá tomar las decisiones acertadas con su equipo y tener un mejor plan de actualización.
Siendo Drupal 9.0.0 un cambio en la versión PRINCIPAL, puede esperar unos cambios importantes en el API que requieren la atención de su equipo de desarrollo para hacer los ajustes necesarios para hacerlo compatible con la nueva versión. La muy buena noticia es que el cambio de Drupal 8 a Drupal 9 no tiene nada que ver con el cambio que tuvo Drupal 7 a Drupal 8, en esta nueva actualización los ajustes necesarios son tan fáciles de aplicar que incluso ya hay una gran cantidad de módulos contribuidos compatibles con Drupal 9.
Si tiene planeado actualizar a Drupal 9.0.0 y le sugerimos que lo haga, es hora iniciar los ajustes necesarios, en otro artículos trataremos el detalle de cómo hacerlo, si prefiere contar con el apoyo de un equipo experto, estamos para ayudarle, contáctenos.
Inspirado en:
- https://zu.com/articles/drupal-9-coming
- https://drupalize.me/videos/semantic-versioning
- https://www.drupal.org/core/release-cycle-overview