Como no podía ser de otra manera Drupal nos deja un regalo para las navidades, y se trata de la versión 10.2, la cual viene cargadita de novedades, y es que esta parece que será el inicio de una revolución dentro de Drupal en lo referente a experiencia de usuario, y es que en la 10.1 ya se atisbaba alguna mejora, pero ahora ya comienzan a llegar las más grandes.
Pero no solo de novedades a nivel de experiencia de usuario, si no que se ha comenzado a implementar algunas mejoras a nivel de código que son muy importantes de cara al lanzamiento de Drupal 11, y es que estas mejoras vienen para reemplazar a antiguos sistemas ya obsoletos que Drupal venía arrastrando desde hace años.
Pero dejémonos ya de introducción y vayamos a lo importante, las mejoras, vamos a repartirlas en 3 grupos, las que "podemos ver", es decir, las que mejoran alguna parte de la interfaz para hacerla más amigable o para añadir alguna funcionalidad nueva. Después las mejoras de código y es que hay algunas muy relevantes; y por ultimo las que se esperan de cara a Drupal 10.3 en adelante, y es que hay muchas mejoras anunciadas que no han llegado a tiempo para la 10.2 pero seguramente las tendremos dentro de unos meses cuando se lance la siguiente versión.
Novedades de Drupal 10.2 para usuarios
Como bien se ha comentado vamos a comenzar por las novedades que afectan a todos los usuarios, esto incluye a los editores de contenido, a los site-builders y también a los desarrolladores que siempre tienen que tocar y configurar diferentes apartados de la web.
Módulos experimentales
Lo primero a lo que vamos a dedicarle un apartado es a los módulos experimentales, y es que hay varios cambios muy relevantes, el primero de todos es que ahora el módulo "Announcements" se considera estable, y no solo eso, si no que está activo por defecto! con este módulo podremos estar informados de las últimas novedades en el mundo de Drupal que vayan publicando.
La siguiente novedad corresponde al módulo Help Topics, y es que ese modulo se ha usado para desarrollar el futuro de lo que sería la ayuda dentro de Drupal. Y es que después de mucho tiempo de desarrollo podemos llevarnos una sorpresa al ver que está marcado como obsoleto.
Pero no debemos alarmarnos, y es que ha realizado su función, porque de ahora en adelante todo lo que el módulo incluía está dentro del módulo Help, por lo tanto, ahora carece de funcionalidad y utilidad y es que ahora está disponible de manera estable y activadas por defecto sus funcionalidades. Y esto implica algo importante a futuro, y es que hay intenciones de marcar como obsoleto el conocido por todos hook_help().
Mejoras en la creación de los campos
Y es que ahora ya no tendremos la lista desplegable que nos ha acompañado durante muchísimos años, ahora dispondremos de un formulario que agrupa los campos y los muestra de una manera muchísimo más amigable y con descripciones, esto es una mejora increíble para mejorar la experiencia de los iniciados y es que pueden ver fácilmente los campos disponibles y leer una descripción para entender que hace cada uno.
Además de esta increíble mejora, se ha simplificado la creación del campo reduciendo el proceso a dos formularios, el que vemos en la imagen superior, y otro que agrupa las dos posteriores páginas, la que nos permitía indicar la cantidad de elementos y la propia de configuración del campo.
Además de lo anterior, los más observadores se habrán percatado de que no se permite reutilizar un campo, y es que ahora se ha separado esa sección para limitar la posible confusión, y es que de ahora en adelante dispondremos de dos botones en la gestión de los campos, uno para añadir un campo nuevo y otro para poder escoger uno existente y reutilizarlo.
Nueva interfaz para revisiones en Media
Y es que una novedad importante de Drupal 10.1 fue el añadido de una interfaz genérica para las revisiones, y se añadieron en los bloques de contenido. Pues ahora también dispondremos de una interfaz para gestionar las revisiones de las entidades Media.
Esto puede parecer un cambio menor, pero es un paso más a la hora de estandarizar toda la interfaz y las entidades con las que se interactuar de manera habitual y son muy necesarias. El siguiente paso sería añadirle la interfaz de revisiones a los términos de taxonomía, aunque realmente es una entidad que no es modificada de manera muy habitual y las revisiones no son algo primordial.
Limpiar los nombres de los archivos
Esto es algo en mi opinión extremadamente útil y no me había percatado de su falta hasta que lo he visto añadido, y es que dispondremos de una nueva sección para configurar como se trataran los archivos cuando se suban, y es que podremos limpiar los nombres de los archivos para evitar ciertos problemas.
Esta nueva sección la podremos encontrar dentro de la configuración de los archivos en Administration -> Configuration -> Media -> File system, y esto se aplicará a todos los archivos que se suban a nuestro sitio.
Algunas mejoras menores
Hasta aquí llega lo más relevante de las novedades de las que disponemos desde la interfaz, pero realmente no son todas y es que existen algunos cambios de menos importancia o que no requieren un apartado completo, y es que ahora disponemos de algún permiso nuevo, también se han cambiado otros permisos para acceder a ciertas areas, o también alguna página nueva pero que son de usos muy avanzados y seguramente ni los desarrolladores lleguen a usarlas, como la nueva para validar la configuración.
Novedades a nivel de código
Vamos ahora con las novedades para los desarrolladores, y este es el apartado más grande, pero hay tantas y tan importantes que es imposible cubrirlas todas y lo mejor es acudir al change record y repasar lo que hay y según nos interese o parezca relevante revisarlo.
Soporte para PHP 8.3
Y es que la nueva version de PHP se lanzó hace apenas unas semanas, y en este mismo blog revisamos algunas de sus novedades en otro artículo. Y con la nueva version de Drupal disponemos de soporte para PHP 8.3 en el core, para los módulos contribuidos habrá que esperar ya que cada uno va a su ritmo, pero lo más importante tiene soporte y eso es algo muy bueno ya que nos da acceso a todas las novedades y mejoras de las que dispone la nueva version de PHP.
Novedades de Symfony
Y si, esto no es algo habitual, pero tenemos novedades importantes, y es que se ha actualizado a Symfony 6.4, que ha sido lanzada semanas antes de la 10.2, la cual nos deja a la última en novedades y funcionalidades provistas por Symfony.
Pero las novedades no quedan solo ahi, y es que algunos componentes se han movido, como FileSystem y Finder, que pasan de ser dependencias de desarrollo a componentes requeridos para la ejecución de Drupal.
Y es que la unica novedad respecto a los componentes no es que se hayan movido como dependencias, es que ahora dispondremos de un nuevo componente dentro de Drupal, y es el componente Mailer, el cual viene a reemplazar al obsoleto sistema de mailing, pero no ahora, si no es un futuro que pinta a ser lejano. De momento disponemos del componente mailer y un nuevo plugin para los tipos de transports que queramos utilizar. Hay que recalcar que esto es una mejora experimental, pero ya se están dando los primeros pasos.
Soporte para atributos
Después de tantos años utilizando las anotaciones de Doctrine, por fin tenemos soporte oficial para poder usar atributos dentro de Drupal, y esto es un cambio gigante, especialmente para los plugins, que son los principales afectados y todos los plugins que tengamos tendrán que ser migrados a atributos para el lanzamiento de Drupal 11 (se le espera para dentro de un año como mucho).
Soporte para Fibers en BigPipe
Esto lo he añadido por parecerme muy relevante, aunque como desarrolladores no podremos sacar partido de esta mejora más allá de usar BigPipe. Y es que disponiendo de Fibers Drupal acelerara enormemente su rendimiento si usamos BigPipe, pero claro, esto depende de que el desarrollador sepa que BigPipe existe, sepa cómo se usa y lo implemente, lo cual es algo complicado para ser sinceros.
Autowire de servicios del core
Se ha ido mejorando el soporte para autowire, y es que en versiones anteriores disponíamos de autowire para los servicios del core, pero no para los servicios creados por modulos del core. Pues ahora ya disponemos de soporte para el autowire de los mismos. Esto es un cambio importante ya que nos mejora la experiencia de desarrollo mucho.
Autowire para controladores
Esto es una verdad a medias, pero a mi parecer una gran novedad. Y es que en los controladores teníamos que usar el método estático "create" para poder inyectar los servicios que necesitábamos, de ahora en adelante ya no será necesario y podremos hacerlo con atributos en el mismo constructor (por eso digo que es una verdad a medias, porque seguimos teniendo que definir los servicios necesarios).
public function __construct(
#[Autowire(service: 'cache.default')]
protected CacheBackendInterface $cache
) {}
Nueva validación de la configuración
Esto es algo que como desarrolladores a muchos se les pasará por alto, pero a mí me parece algo importante, y es que ahora la configuración se puede validar. De momento no he encontrado nada claro, excepto este changelog, pero es algo en lo que se está trabajando duramente y se espera que toda la configuración del core sea 100% validable para Drupal 11. No he encontrado noticias de si para desarrollo contrib y custom será obligatoria la validación, pero teniendo en cuenta que los schemas no lo son, personalmente lo dudo.
Y hasta aquí las novedades a nivel de código, existen muchísimas más y casi todas en el change record de Drupal 10.2, y es que en algunas ocasiones no crean el change record y hay que encontrar la tarea concreta donde se ha añadido el cambio.
Que podemos esperar de cara a Drupal 10.3
De nuevo vamos a comenzar por las mejoras a nivel de experiencia de usuario.
Que novedades esperamos para los usuarios
Una de las principales mejoras y para mí la más relevante, es el cambio en los campos, y es que se quiere modificar para que realice todo el proceso de añadir y configurar campos desde modales, lo cual agiliza mucho todo el proceso.
Además, se está trabajando en una mejora general para la parte administrativa, especialmente en el toolbar. Sobre esto hay una demo experimental pero que se puede usar en el theme administrativo Gin, pero no la probéis en producción, ya que han avisado de que parte está hardcodeado y solo existe para recoger feedback, no para tenerlo activo. En esta ocasión, además, como sucedió con Claro, la prueba de desarrollo del concepto se está haciendo en un módulo contribuido llamado "Navigation".
En la parte administrativa se esperan muchas mejoras, pero algunas aún se están debatiendo o apenas hay alguna prueba de concepto.
Novedades futuras para los desarrolladores
A nivel de código podemos esperar algunas mejoras, como el reemplazo de abandonar el uso de algunas interfaces como TrustedCallbackInterface a favor de atributos. El trabajo continuo para reemplazar el sistema de emails de hook_mail con uno más moderno con el componente de Symfony Mailer, y es que para la 10.3 seguramente aún se considere experimental, pero estará mucho más avanzado.
Tambien podemos esperar que se avance mucho en la parte de la validación de la configuración, que esto será algo muy importante para (por ejemplo) poder modificar configuration via API rest, que ahora mismo es imposible.
Otra mejora muy importante y esta es de rendimiento y muy relacionada con el soporte para Fibers en BigPipe es la de un nuevo driver para bases de datos con Mysqli, y es que aparentemente es más veloz de PDO y soporta Fibers, lo cual junto al soporte de Fibers por parte de BigPipe nos puede permitir renderizar en paralelo y más rápidamente todo lo que venga en segundo plano con BigPipe.
También hay planes para sustituir a los hooks por algo más moderno, y una propuesta para reemplazar el sistema actual de colas y cron por los componentes Messenger y Scheduler de Symfony, pero eso ya son planes a muy largo plazo y seguramente hasta Drupal 11 no se comience a trabajar en ellos.
Ahora va la última pero no por ello la menos importante, la cual es una novedad asegurada porque ya se ha mergeado en la rama de la 10.3, y es que tendremos una nueva API para gestionar las políticas de seguridad, esto es algo que se necesitaba desde hacía muchísimo y por fin se ha introducido.
Conclusiones
Y hasta aquí todo lo relacionado con las novedades y mejoras de Drupal 10.2, como podemos ver hay muchísimas y estas solamente son las más relevantes, pero todo indica que se viene un futuro prometedor para Drupal.
Realmente parece una versión que apenas puede aportar nada ya que se espera que Drupal de un giro para mejorar muchísimo en su manejo y facilitar la entrada a los nuevos dejando de lado a los desarrolladores, en los cuales Drupal se ha centrado por muchos años, y por un tiempo va siendo hora de dar prioridad a los nuevos para hacer Drupal más atractivo y fácil de usar.
Me metí en la aventura de Drupal con la versión 6, y aquí estoy, 10 años después, escribiendo articulos y haciendo videos sobre Drupal, quien me lo iba a decir. Aunque he probado otros framworks y cms, me quedo con Drupal de lejos, pero Symfony y Django estan entre mis favoritos. Aficionado a la montaña, la bicicleta, y el comer, de eso que no falte.