Un año más ha sido la Drupal Camp y vuelvo encantado de la Comunidad, de su buen ambiente y todas las cosas que se han mostrado en las charlas, en las reuniones más informales, en los pasillos y los eventos sociales. El lema "Ven por el software, quédate por la comunidad" siguen tan vigente como siempre. Y este año me ha parecido ver bastantes caras nuevas. En la charla de cierre se hizo un sorteo solo para quienes habían venido por primera vez a la Drupal Camp y creo que conté unas treinta personas en la ruleta del sorteo, así que al menos había un 15% de nuevas personas que espero hayan sentido ese lema. Además, creo que hubo mucha asistencia al curso de introducción a Drupal 10 de Forcontu, en parte porque este año la Asociación Española de Drupal dio con la estrategia adecuada para traer a estudiantes de varios centros.
Por mi parte, creo que la Comunidad sigue sana y en forma.
Las charlas
Dado que aún no consigo dominar el arte de desdoblarme a mi mismo y asistir a varias charlas simultáneas, solo pude ver unas pocas y oír opiniones de algunas otras, por lo que la selección que hago a continuación es incompleta y sesgada, pero creo que no deja de ser interesante.
El futuro de Drupal
Esta año se ha lanzado Drupal Starshot, que trata de crear un nuevo punto de entrada a Drupal, y que sería la descarga por defecto Drupal.org en vez del core de Drupal. El resultado de Drupal Starshot será Drupal CMS, que estará compuesto del core de Drupal más una serie de módulos contribuidos y recetas focalizados en mejorar la experiencia de uso. Es decir, actualmente quien quiera descargar Drupal es dirigido a la descarga del core de Drupal, que incluye la base esencial de Drupal junto con los módulos de core. Si bien esto incluye mucha funcionalidad, es muy raro que un sitio web basado en Drupal no incluya muchos otros módulos. Drupal CMS incluirá este core más una selección de módulos contribuidos junto con varias recetas y un instalador que permita al usuario preconfigurar su sitio con funcionalidades acordes a sus necesidades. Por ejemplo, el instalador de Drupal CMS tendrá entre otras opciones activar la receta de blog que crea, mediante una Recipe, la configuración necesaria para que el sitio se comporte como un blog. O preparar el sitio para el multidioma, algo que se incluye con Drupal pero que no es trivial de configurar.
Si quieres saber más, nada mejor que la charla destacada de Lauri Timmanee, quién está liderando esta iniciativa, "How will Starshot redefine Drupal for a new generation of users" (en inglés).
La segunda charla relacionada, también destacada por la organización, es "Navigation changes in Drupal’s Admin UI", de Cristina Chumillas, quién lidera por su lado el rediseño de la interfaz de administración de Drupal, y que debería ser incluida en Drupal CMS.
Antes he mencionado las recetas (o recipes), y es otra de las innovaciones que ya incluyen las nuevas versiones de Drupal. En esencia, una receta es una forma de compartir una funcionalidad compleja de Drupal más allá del código. Una receta permite añadir el código fuente de módulos (es decir, requerirlos mediante composer), activarlos, cambiar configuración, crear contenido (normalmente de prueba) y aplicar otras recetas. Y digo aplicar porque las recetas no se instalan, simplemente se aplican. En cierta medida, una receta es como dejar tu sitio en manos de un desarrollador que aplica los cambios de la receta para conseguir la funcionalidad que provee la receta. Una vez aplicada, la receta deja de tener uso. Por eso mismo, las recetas no incluyen código (toda funcionalidad se añade mediante módulos que se descarguen e instalen). Por debajo usa cosas muy interesantes como Config Action API, que permitirá nuevos avances a futuro (como acciones realizadas por agentes de IA que configuren Drupal, pero ya me estoy yendo demasiado del tema original, esto espero comentarlo en otro artículo).
El caso es que Manuel Adán Bonald habló de recetas en su charla "Teoría y práctica sobre Drupal recipes", por lo que es un buen punto para introducirse en ellas.
Otras de las novedades, muy de desarrollo, es el uso de atributos de PHP para implementar hooks de Drupal. Óscar Calvo, en su charla "Uso de Hux para la creación de módulos", nos habla de este cambio. Destacar que, como él mismo indica en su sesión, se habla del uso del módulo Hux, pero que esa funcionalidad ya está disponible de forma nativa a partir de Drupal 11.1 sin necesidad del módulo. En cualquier caso, con o sin módulo, es algo que conviene conocer.
Este cambio permite implementar los hooks de Drupal sin necesidad de seguir el esquema de nombrado que se ha usado hasta ahora, que localizaba las implementaciones de hooks de forma automática pero también forzaba a que las funciones que los implementaban tuviesen unos nombres específicos. Con esta nueva forma se permite una mayor flexibilidad a la hora de organizar el código, lo que enlaza con otra charla, "Vertical Slicing: Mejorando la Eficiencia en el Desarrollo de Software", de Ana Picón Sánchez, que habla de una técnica de organización del código que creo puede ser interesante para proyectos complejos. La idea, muy simplificada, es organizar el código en funcionalidades en vez de por capas o áreas. Así, podríamos tener una funcionalidad que cuelgue de un directorio, de forma que los cambios en esa funcionalidad solo afecten a los ficheros ahí contenidos. Una de las ventajas es que en una organización por capas seguramente habría que tocar en varios directorios y los cambios estarían más esparcidos. Gracias al cambio mencionado sobre cómo implementar hooks, ahora es posible implementar vertical slicing en un proyecto en caso de querer hacerlo.
Drupal, actualmente
Pero no todo es lo que viene, también conviene repasar lo que ya tenemos desde hace tiempo.
Por ejemplo, la potente caché de Drupal. Luis Ruiz Peidro, en su charla "Introducción a la Cache en Drupal", nos habla de ella, y aunque diga que es una introducción hay que decir profundiza bastante. Eso sí, empieza desde cero, por lo que aún si no conoces nada de la caché te será de utilidad. Tengo que decir que Luis es compañero en Metadrop, pero hubiese seleccionado su charla igualmente aunque lo fuese porque creo realmente que es un muy buen recurso para conocer la caché de Drupal.
Charla que enlaza con la de Alejandro Arnau, "Estructura de tu Contenido y Cache Tags en Drupal: Una Relación Vital para obtener un rendimiento superior", donde habla de una las funcionalidades de la caché de Drupal: las caché tags.
Por su parte, Jose Manuel Ortega Candel, nos habló en "Seguridad de APIs en Drupal: herramientas, mejores prácticas y estrategias para asegurar las APIs" de varios módulos muy interesantes para mejorar la seguridad de un sitio Drupal.
Otros temas
No solo de Drupal se vive, por lo que hubo otros asuntos relacionados de bastante interés.
Por ejemplo, "Zequi" Vazquez en "El mapa del tesoro: retos y soluciones de un año y pico navegando en aguas DevOps" nos contó sus vicisitudes durante el tiempo que has estado en el equipo de desarrollo de Tugboat, una herramienta de entornos efímeros que entre otra cosa es lo que usa Simplytest para que cualquier persona pueda probar un módulo o theme de Drupal desde su navegador sin instalar nada. Si no lo conoces, ¡deberías!
Ahora toca hace run poco de autobombo y destacar mi propia charla, "Testeándolo todo: testing más allá de PHPUnit". Creo que pese a su utilidad, la realidad es que se testea mucho menos de lo que debería. En esta charla propongo testear muchas más cosas que las que ofrece el core de Drupal: análisis estático de código, tests de regresión visual, accesibilidad y muchas otras.
Por último, quiero destacar la charla de mi compañero Jorge Tutor titulada "Effective Scope, Budget & Change Request Management in Software Development". Al igual que el testing, considero que se desconoce el verdadero potencial de la gestión de proyectos y a menudo se recurre a soluciones genéricas que no funcionan al no darle la importancia que tiene. Creo que uno de los puntos fuertes de Metadrop es precisamente nuestra manera de gestionar los proyectos. Por eso, escuchar a Jorge hablar sobre cómo manejar el alcance, el presupuesto y los cambios inevitables en un proyecto es más que interesante.
Lo que no se graba
Se habló de muchas otras cosas, y no solo en las charlas. Gran parte del atractivo de una Drupal Camp reside en lo que se comenta en espacios no grabados, como el Open Space, donde los asistentes proponían temas de debate y se seleccionaban aquellos que suscitaban más interés, o en las conversaciones informales que ocurren en los pasillos, durante las cenas y en otros lugares de encuentro. Por ejemplo, se debatió sobre los cambios que traerán las inteligencias artificiales, los cuales, desde mi punto de vista, serán significativos pero deben verse como una nueva herramienta para el día a día del desarrollo de proyectos. También se discutió cómo evolucionar las Drupaladas, que son básicamente charlas en línea gestionadas en Drupal.org y que, si tienes interés en el mundo Drupal, es recomendable que les eches un vistazo. Propuestas de nuevos módulos, intercambio de ideas sobre el impacto que producirá Drupal Starshot, o que te muestren iniciativas, módulos o formas de hacer las cosas que no conocías son algunas de las muchas conversaciones que se escucharon fuera de cámara y que, para mí, son la sal de estos eventos. Porque las charlas se graban y se pueden revisitar, pero lo que ocurre fuera es solo para quien pueda acudir.