¿Qué hay de nuevo en D9?

Dharizza Espinach Barahona
MANATI | Agencia Web
6 min readJun 10, 2020
Ilustración por Lucy Sánchez

You can also read this article in english.

El pasado miércoles 3 de junio fue el lanzamiento oficial de Drupal 9 y con ello, se consolida un nuevo paso en la evolución de este CMS. Esta nueva versión no trae consigo nuevas características como tal, sin embargo, los cambios que trae son muy visibles para los desarrolladores pues ofrece un sistema más seguro con dependencias actualizadas y un API aún más fácil de usar.

El fin de D7

Con la llegada de Drupal 9, se hace inevitable hablar sobre aquellos sitios que aún están utilizando Drupal 7, pues ya estamos dos versiones por delante y es bien conocido desde hace algunos meses que el final de la vida de esta versión será en diciembre del 2021, es decir dentro de 18 meses aproximadamente. Durante este tiempo, Drupal 7 seguirá recibiendo soporte en cuanto a resolución de pulgas y problemas de seguridad, sin embargo, la recomendación general es aprovechar este tiempo para realizar la migración ya sea a Drupal 8 o 9.

La migración desde Drupal 7 hacia 8 o 9 se considera como el último gran salto que debería realizarse. Esto es así porque justamente en el cambio de la versión 7 a 8 se hizo una reconstrucción completa de Drupal. Es decir, se creó una nueva rama para Drupal 8 y ahí se empezó a desarrollar el proyecto, completamente independiente de Drupal 7.

Para realizar la migración desde Drupal 7 hacia 8 o 9, lo recomendable es utilizar Upgrade Status, Drupal Module Upgrader y Migrate Suite.

  • Upgrade status: es un módulo que nos permite saber el estado de nuestros módulos contrib, nos ayuda a saber si ya hay versiones compatibles con Drupal 8/9 o si existen módulos que reemplacen dicha funcionalidad,
  • Drupal module upgrader: es un módulo que genera parches o cambios en nuestros módulos custom para hacerlos compatibles con Drupal 8 y 9,
  • Migrate suite: es parte del core y nos sirve para realizar las migraciones de contenido.

Innovación en Drupal

Los procesos de migración de una versión major de Drupal a otra están caracterizados por ser procesos largos, caros y complejos. El cambio de Drupal 7 a 8 no escapa de esto, sin embargo, de ahora en adelante en los nuevos cambios de versión esto ya no es así porque se ha implementado un nuevo proceso de innovación que elimina gran parte de la complejidad.

Imagen tomada de slides de @gaborhojtsy

Como mencioné anteriormente, el cambio de Drupal 7 a 8 fue una reestructuración completa y para ello se creó una rama nueva en la que se empezó a desarrollar Drupal 8. De Drupal 9 en adelante esto es diferente porque ahora cada nueva versión simplemente va a ir utilizando las mismas características de la versión anterior, de forma que se va construyendo sobre lo ya existente.

Este nuevo proceso de innovación en Drupal se lleva a cabo gracias a tres puntos principales:

  • semantic versioning: permite diferenciar los lanzamientos de nuevas funciones de aquellos en los que solo se arreglan bugs, esto facilita agregar nueva funcionalidad y hacer mejoras en las API manteniendo la compatibilidad con las versiones anteriores,
  • lanzamientos programados: el ciclo de lanzamientos de Drupal se ha cambiado de forma que se tendrán lanzamientos de nuevas características cada seis meses, con lo cual se entrega valor a los usuarios y se recibe feedback más rápidamente, y
  • proyectos experimentales: permiten que los usuarios puedan acceder por adelantado a características que aún no están terminadas, esto con el fin de que brinden feedback rápidamente y poder ajustar la dirección que se toma en dichos proyectos.

¿Por qué Drupal 9?

Si esto es así y el primer release de Drupal 9 no tiene funcionalidades distintas a las de 8.9.0, entonces ¿por qué lanzar D9? Porque D9 viene con todas sus dependencias actualizadas incluyendo Symfony 4, Twig 2, CKEditor 4 y se elimina el uso de JQuery UI. Otro de los cambios que incluye el lanzamiento de D9 es que todo el código que había sido marcado como deprecated en versiones anteriores de D8 se ha eliminado.

Imagen tomada de slides de @gaborhojtsy

Además, si esto no es motivo suficiente para migrar aún, se tiene que el fin de la vida de Drupal 8 es al mismo tiempo que el de D7, es decir, diciembre del 2021. Esto porque ese es el momento en el que Symfony 3 llega al final de su vida, por lo tanto desde este momento hasta esa fecha D8 solamente tendrá soporte de seguridad y arreglos de bugs.

¿Cómo hacemos el cambio a D9 si ya estamos en D8?

Dries Buytaert menciona que “The big deal about Drupal 9 is… that it should not be a big deal”. Lo que quiere decir es que en realidad D9 no debería implicar un gran problema, la migración no debería ser tan compleja como en otros cambios y debe ser súper fluida y sencilla. Lo único que se necesita es:

  1. asegurarse de que nuestro ambiente es compatible con D9. Esto significa confirmar que tenemos PHP 7.3, utilizamos Drush 10 y que nuestra versión de MySql es al menos 5.7.8,
  2. tener nuestro core de Drupal 8 totalmente actualizado,
  3. actualizar los módulos y temas contrib que estemos utilizando a sus versiones compatibles con D9,
  4. eliminar de nuestro código custom el uso de funciones del API que hayan sido marcadas como deprecated, y
  5. finalmente actualizar el core a Drupal 9.

Antes mencioné el módulo upgrade status como herramienta para prepararse para la migración de D7 a 8 o 9, pero su versión en D8 también nos sirve para ver el estado de nuestros módulos y saber si ya son compatibles con D9. Otra herramienta útil en la transición de D8 a 9 es el módulo drupal rector, este automatiza la actualización de código para que sea compatible con Drupal 9. Finalmente, otra recomendación es que al tener todo nuestro código actualizado y compatible con D9, corramos nuestros tests automatizados contra Drupal 9.

Estado de proyectos

En actualizaciones anteriores, una de las principales preocupaciones de los usuarios ha sido ¿Cuándo los módulos van a estar disponibles para la nueva versión? Sin embargo, desde tiempo antes del lanzamiento de D9 la comunidad ha venido trabajando en portar los módulos, de hecho este año se realizaron varios eventos masivos en los que los usuarios se unían para trabajar juntos portando módulos. El primero se realizó el 28 de abril y el segundo el 22 y 23 de mayo. Como resultado de todos estos esfuerzos para migrar los módulos, al día del lanzamiento se tenía compatibilidad con Drupal 9 en el el 95% del top 100 de proyectos Drupal.

Imagen tomada de la página de Acquia Deprecation Status

El futuro

Nuevas características seguirán siendo lanzadas cada seis meses. Por ejemplo el tema Olivero saldrá en diciembre y se está trabajando en Claro como tema de administración. Más información sobre Drupal 9 se puede encontrar aquí.

También recomiendo ver los slides de @gaborhojtsy, son bastante claros y tienen bastantes enlaces a otros recursos, además fueron utilizados por la comunidad en varias celebraciones de D9 alrededor del mundo.

¡Gracias por leer!

Manatí es una firma consultora web de origen costarricense, donde hacemos sitios que impulsan el progreso en gobierno, causas sin fines de lucro y educación superior.

No se pierdan los proyectos, noticias e ideas de nosotros en Manatí. Conozca más sobre lo que hacemos, síganos en medium, twitter y facebook.

--

--