El mejor momento para involucrarse con Drupal 8

Empecé con Drupal allá por 2007, en ese momento era un mero usuario, me explicaron que era esto de los content types y CCK, me costó bastante, pero en un par de meses lo entendí y empecé a desarrollar con Drupal. Por ese entonces estaba en desarrollo Drupal 6, yo, que no tenía ni idea de Drupal estaba más preocupado por aprender a usarlo que por contribuir, y es lógico, a todos nos pasa.

En el año 2008 salió Drupal 6, digo salió porque es lo que yo viví, "alguien" había hecho una nueva versión de Drupal y estaba disponible al público general. Que lindo... La versión nueva tenia un montón de novedades, pero había que aprenderlas.

Por ese entonces ya había empezado a incursionar en el tema del desarrollo de módulos. En Drupal 6 habían cambiado el sistema de menús, por lo que había que aprender a usarlo, no fue complicado, pero era algo nuevo y había que aprenderlo.

Mientras tanto, esa misma "gente" seguía trabajando y en Noviembre de 2009 liberó Drupal 7. Para ese entonces yo ya era un desarrollador de módulos de Drupal 6, y de hecho ya tenia cosas publicadas en Drupal.org, pero el núcleo de Drupal nunca lo había tocado, sabia que funcionaba, pero era algo misterioso y complejo para mí.

A principios de 2009 ya con casi dos años de experiencia en Drupal me animé a participar un poco en el desarrollo de Drupal 7. El resultado fue nefasto, cada linea de código que escribí fue duramente criticada por gente que usaba, diseñaba y desarrollaba en Drupal desde hacia años. Afortunadamente no me trataron mal, simplemente marcaron mis errores y corregirlos me llevó a aprender más sobre como funcionaba Drupal de forma interna.

Durante el desarrollo de Drupal 8 casi ni participé, estaba demasiado ocupado con otras cosas, con la universidad, con el trabajo, con mis módulos propios. Me involucré bastante con el desarrollo de Views 3 primero para Drupal 6 y luego para Drupal 7. Pero del núcleo casi nada.

Pero hoy después de 5 años de usar Drupal estoy participando de forma más activa en el core de Drupal 8, y esto tiene sus ventajas, vamos a ver cuales son.

Ciclo de desarrollo de Drupal

Primero, hay que entender como funciona el ciclo de desarrollo de Drupal.

Tenemos básicamente cuatro etapas.

En la fase de desarrollo rige el caos (caos en el buen sentido de la palabra) lo que se propone y se aprueba por la comunidad, se incorpora al núcleo.

Esta etapa termina el primero de Diciembre de 2012, después de esta fecha, no se agregan más sistemas nuevos al núcleo.

La buena noticia es que ya se agregaron cosas muy interesantes, como Views, Twig, Transliteration, Entity Translation entre otros. La mala noticia es que algunas cosas quedarán para Drupal 9.

Cuando se entra en la etapa de Feature Freeze, lo que se busca es optimizar el código y convertir partes del núcleo a los nuevos sistemas.

Dicho de otra forma, durante la etapa de desarrollo se incorporó un sistema nuevo de manejo de configuraciones, es muy útil, muy potente, pero más de la mitad del núcleo de Drupal no lo está usando aún. Durante esta etapa se busca convertir estos componentes a la nueva API.

El Feature Freeze se ubica entre el 1 de Diciembre de 2012 y el 1 de Abril de 2013.

Feature Freeze, el mejor momento para empezar a contribuir

Si nunca contribuyeron al núcleo de Drupal, la fase de Feature Freeze es, a mi criterio, el mejor momento para comenzar. La explicación es la siguiente:

Primero, no se pueden agregar más cosas nuevas, hay que trabajar con lo que hay, las discusiones son mucho más acotadas, durante la fase de desarrollo era fácil ver hilos de conversación de entre 100 y 200 comentarios, ahora no se discute más eso, o por lo menos no se debería.

Segundo, hay un montón de trabajo para hacer, y hay varios lugares desde donde 'copiar'. Por ejemplo, volviendo al ejemplo del sistema de manejo de configuraciones. Hay que convertir todas las variables de Drupal 7 a configuración de Drupal 8. Hay una lista enorme de variables para convertir. Como algunas ya fueron convertidas, uno puede usar esos ejemplos para aprender y convertir las otras.

Tercero, hay muchos conceptos nuevos que en un futuro van a ser importantes para los desarrolladores de módulos de Drupal 8. Plugins, routes, entidades, CMI, PSR-0, entre otros, son cosas que vamos a tener que manejar en algún momento, pero ir viéndolas desde ahora hace menos duro el aprendizaje futuro.

Cuarto, ventaja competitiva. Involucrarse en el desarrollo de Drupal 8 implica estar más preparado para el futuro. Mientras la mayoría esté aprendiendo a usar Drupal 8, alguien que haya participado de su desarrollo va a tener ventaja sobre el resto. Esto puede sonar un poco cruel, pero en muchos lugares es así...

Pero yo no soy desarrollador...

Un error común es creer que por no ser desarrollador no se puede contribuir con el desarrollo de Drupal 8. Pongo un ejemplo simple, Cathy Theys, esta mujer no es desarrolladora, pero se encargó de probar y documentar todos los errores del módulo Entity Translations, que estuvo programando un italiano durante meses. YesCT, como se la conoce a Cathy en Drupal publicó decenas de screenshots y comentarios acerca de lo que veía. Sin su ayuda probablemente no tendríamos ese módulo en el core. Para saber más sobre esto: http://drupal.org/node/1188388

Otras cosas que se pueden probar son los upgrade paths. Básicamente es, instalar Drupal 7, e intentar actualizarlo a Drupal 8. Generalmente fallan, porque estos upgrade paths son difíciles de programar. El simple hecho de decir en un hilo de Drupal.org 'Probé el upgrade path y no funcionó', es de una utilidad terrible.

No sea avaro...

Si usted es jefe de un grupo de programadores, por favor, tómese un minuto y considere lo que dice Karim Boudjema, un desarrollador de Bolivia: http://www.youtube.com/watch?v=y3DD4P-guF0. Al rededor del minuto 16.

El dice que, dándole un día a la semana para que los desarrolladores hagan lo que quieran en Drupal les retribuye de forma enorme. "Les doy un poco de tiempo libre y se vuelven mejores programadores...". Contribuyen a algo que van a terminar usando, y se capacitan, de forma gratuita.

Entiendo que es difícil de aceptar, siempre hay plazos de entrega que respetar, y clientes ansiosos, pero lograr la capacitación de los desarrolladores no es algo fácil, y permitirles involucrarse en el desarrollo de Drupal durante su horario de trabajo probablemente sea más fructífero que dar capacitaciones internas.

Además, recuerde que Drupal es gratis, pero alguien lo hace, exprimir a la comunidad sin retribuir nada a cambio no es algo del todo ético.

Involúcrese!

Entonces... ¿Como empiezo?

Es fácil, primero hay que descargar Drupal 8, eso se hace desde la pestaña "Version Control" en http://drupal.org/project/Drupal/git-instructions

Luego, ejecutar las siguientes lineas de código en una terminal.

git clone --recursive --branch 8.x http://git.drupal.org/project/drupal.git
cd Drupal

E instalar Drupal de la forma usual.

Después es cuestión de centrarse en algún issue de la siguiente lista http://drupal.org/project/issues/Drupal?version=8.x y aplicar los parches que se publiquen allí de la siguiente forma:

Y escribir los comentarios.

Hay un sitio llamado Drupa Ladder http://drupalladder.org/ que pretende ser un punto de inicio para aquellas personas que quieran sumarse al desarrollo de Drupal 8. Si maneja algo de inglés, hay tutoriales muy interesantes.

También puede pedir ayuda en el IRC de Drupal Hispano (http://cuencodigital.com/articulos/como_unirse_al_irc_de_drupal.html) ahi lo van a orientar seguro.

Sobre Drupal 8

Yo lo he estado probando durante las última semanas, y es bastante estable. Tiene errores, y el código va a cambiar mucho durante los próximos meses, por eso no es recomendable hacer desarrollos reales con Drupal 8 hasta que no estén los primeros release candidates. Pero se puede ir probando ya, sin miedo.

Nuevamente lo invito a considerarlo, va a aprender mucho, le va a servir para el currículum, y va a tener la posibilidad de sentir a Drupal un poco más 'suyo'.

Saludos!

Te invito a leer también...

Compartir este material en...

Comentarios

He visto que se esta retrasando de nuevo la version 8. El motivo que indican es por la finalizacion de funciones. ¿A que se refieren exactamente?

Hola!
Que bien que motives a probar el Drupal desde su formación. Personalmente manejo las funciones básicas y pretendo involucrarme más ya que es un sistema potente. De partida quiero migrar el sitio www.cluch.cl a Drupal 7, ahora me pregunto sera posible la actualización a drupal 8 despúes cuando salga?