 ¿Filosofo, antropólogo, doctor en Cognición Humana y Evolución? Pues sí, Gerardo es todo esto y además nos va a enseñar en esta charla rápida todas las formas de contribuir a Gutenberg independientemente de nuestra experiencia y área de conocimiento, como podéis observar. Este turno, Gerardo. Buenas, soy Gerardo y en este vídeo os explicaré muy brevemente todas las formas en las que podéis contribuir al desarrollo de Gutenberg independientemente de vuestro nivel de conocimiento. La idea de esta charla surgió hace un par de meses visitando el WorldCamp de Chiclana. Allí encontré esta camiseta. Yo sobrevivía a Gutenberg. Que me hizo pensar que para muchos usuarios de WordPress, Gutenberg no es más que un cambio molesto impuesto desde arriba. ¿Y no lo es? No. Como el resto de WordPress, Gutenberg es un proyecto de software libre, abierto y desarrollado por y para la comunidad. Si es cierto que Gutenberg tiene algunas peculiaridades, que en un principio pueden hacerlo menos accesible. Su documentación está algo desorganizada y a diferencia de la mayoría de proyectos de la comunidad WordPress, su núcleo no se encuentra en MakeWarpers, sino en GitHub, uno de los repositorios más importantes de software libre a día de hoy. Pero no nos adelantemos a los acontecimientos. Antes de presentaros GitHub y enseñaros cómo usarlo para contribuir a Gutenberg, vamos a ver las tres fuentes principales de ayuda y documentación para cualquier persona interesada en contribuir. El núcleo central del proyecto en GitHub, github.com.wordpress.goldenberg. En concreto podéis encontrar la guía de contribución, así como toda una serie de guías especializadas en el subdirectorio DOCS y dentro de él en Contributors. Adentrarse en esta guía es perderse en un pequeño laberinto de enlaces que a veces hacen difícil encontrar lo que buscamos. Como alternativa, podemos consultar el manual de contribución en WordPress.org. Este manual se encuentra en la sección de desarrollo bajo el nada evidente título del manual del editor de bloques. Puedes acceder al manual directamente siguiendo el enlace developer.wordpress.org para blockeditor-contributors. Este manual se genera automáticamente a partir de la documentación en GitHub, pero la presenta de una forma mucho más clara y accesible. Finalmente podéis pedir ayuda en los distintos canales de Slack. Para quienes no lo conozcáis, Slack es una herramienta de comunicación similar a WhatsApp o Skype con utilidades adicionales orientadas al trabajo colaborativo. Slack se organiza en canales y servidores. El canal principal de Gutenberg es CoreEditor Wordpress.slack.com Para hacer una cuenta, tendréis que acceder al servidor Wordpress.slack.com y registraros usando vuestro usuario de Wordpress.org como si fuera un email, acabado en chat.wordpress.org Una vez tengáis acceso, podéis uniros a cualquier canal que os interese. Los miércoles a las 4 o a penisular hay una reunión general en CoreEditor en la que se revisan los últimos cambios realizados en el componente, así como los próximos pasos a desarrollar. También, si necesitáis ayuda en español podéis probar en Slack de Wordpress España www.es.slack.com Una vez que ya sabemos dónde encontrar información podemos empezar a explorar las distintas formas en que contribuir a Gutenberg. Quizás penséis que necesitáis conocimientos técnicos para hacerlo, pero eso no es así. Cualquier usuario puede poner su gran hito de arena, ya sea informando errores, solicitando funcionalidades o revisando los errores reportados por otros usuarios. Veamos cómo. Para reportar un error, debemos dirigirnos al repositorio de Gutenberg en GitHub. Al cargarlo, se nos muestra una vista que algunos os resultará brumadora. Es el código de Gutenberg. Como vimos al principio, GitHub es un repositorio de código. Un repositorio almacena el código de una aplicación, así como todos los cambios y bifurcaciones realizados en el mismo. Si no somos desarrolladores, esto puede no interesarnos. Pero eso no significa que no podamos usar GitHub. Si os fijáis, la pestaña situada a la derecha de Code se llama Issues, algo que podría traducirse como Asuntos o Problemas. Si la abrimos, vemos que Gutenberg nos saluda amablemente y nos invita a colaborar. Además, podéis ver una lista de asuntos abiertos que podéis filtrar usando esta barra de búsqueda o eligiendo las etiquetas que os interese. Para informar de errores o solicitar mejoras, debemos pulsar en New Issue, lo que nos permitirá elegir el tipo de solicitud que queramos realizar. Una vez seleccionada una, se nos abrirá un editor de texto o una guía que es preferible que sigamos para que nuestra solicitud pueda ser atendida. En el caso de un error, debemos incluir una descripción precisa del problema, los pasos para reproducirlo, lo que esperabais que sucediera en su lugar y si es necesario, capturas que ayuden a explicar el problema. Además, debemos incluir la versión de WordPress en que habéis detectado el problema, la versión de Gutenberg, vuestro sistema operativo, el navegador y su versión y si usáis un teléfono móvil, el modelo de este. Todo ello acompañado de un título claro y descriptivo. Otra forma de contribuir sin necesidad tener un conocimiento especial es el triaje. El triaje consiste en la revisión de solicitudes abiertas por otros usuarios, descartando solicitudes duplicadas, solicitando más información cuando es necesario, reescribiendo títulos y añadiendo etiquetas para facilitar la búsqueda a los desarrolladores y estableciendo el nivel de prioridad de una solicitud para ayudar a detectar aquellas realmente importantes. Si os interesa participar en el triaje podéis uniros al equipo encargado, para hacerlo solo tenéis que pedirlo en el canal CoreEditor. Si preferís comenzar por vuestra cuenta, en Gutenberg-docs-contributors-triaje.md podéis encontrar más información y listas filtradas con las que empezar a trabajar. También es posible contribuir a Gutenberg manteniendo, revisando y expandiendo la documentación. Esto ataña tanto a las guías de usuario como a las de desarrollo y colaboración que estamos usando. Podéis encontrar más información en el canal docs y, si estáis interesados, asistir a las reuniones que se realizan en ese canal los lunes a las 4 horas penisular. Llegados a este punto, es un buen momento para introducirnos en el fascinante mundo de las pull requests, la forma principal de contribuir al desarrollo de proyectos de software libre. En control de versiones se llama push a la acción de publicar nuestro código y pull a traer el nuevo código publicado e integrarlo en nuestra versión del software. Así, una pull request es una solicitud a los gestores del repositorio para que incorporen nuestros cambios en el código. Pero no estamos viendo cómo contribuir a la documentación que hago hablando de cambios en el código. Si os fijáis, la documentación de Gutenberg está compuesta por archivos de texto. La modificación de estos archivos en el repositorio es a todos los efectos igual a la modificación de archivos de código. Digamos que estamos revisando la documentación y encontramos una errata. Logados con un usuario de GitHub debemos crear un fork, una bifurcación de Gutenberg pulsando en este botón de arriba a la derecha. Esto creará una copia del proyecto en nuestro repositorio personal, lo que nos permitirá modificarla a nuestro antojo. En nuestra versión del repositorio, crearemos una rama. Esto nos permitirá aislar los cambios para que la integración sea más limpia. En la documentación de Gutenberg nos recomienda usar estos prefijos a la hora de crear una rama. At, cuando queremos añadir una nueva funcionalidad. Try, cuando estamos probando algo loco y experimental. Update, cuando queremos actualizar una funcionalidad existente. En este caso se trata de un update. Llamaremos a nuestra rama update-contributor-guidelines. Ahora solo tenemos que navegar hasta el archivo de documentación que queremos modificar y podremos realizar el cambio directamente en el navegador. Una vez realizado el cambio debemos hacer un commit, al macenar el cambio realizado en nuestra rama. Y ya con esto estamos listos para solicitar el pull request. Podemos añadir la etiqueta documentation para informar del tipo de cambio solicitado en este caso. Y listo. Una vez enviada, nuestra solicitud será revisada y, si es aceptada, integrada al proyecto. Estas son las principales formas de contribuir sin tener un conocimiento especial. Precisáis diseñadores o desarrolladores aún hay más formas de hacerlo. Los diseñadores se reúnen en el canal Design y pueden contribuir respondiendo a issues con la etiqueta Needs Design o Needs Design Feedback, aportando mock-ups, bocetos, animaciones o simplemente su opinión experta. En la documentación podéis encontrar algunos recursos y los principios de diseño de Gutenberg. Además, tenéis disponibles en Figma toda una librería de componentes de WordPress que usaren vuestros diseños. Finalmente, si sois desarrolladores, podéis contribuir de tres formas adicionales. Como parte del triaje podéis comprobar los errores reportados depurando el código para añadir información adicional que facilite su resolución. Podéis participar en la revisión de pull requests abiertas. Los criterios para aprobar una solicitud son su corrección, su seguridad, su legibilidad, su elegancia o concurrencia con el estilo general y su altruismo. Cualquier persona puede aceptar una solicitud si confían los cambios, pero, incluso si no es el caso, un comentario en la pull request puede ser útil para el mismo autor. Por último, podéis contribuir con vuestras propias pull requests, ya sea solucionando errores como añadiendo mejoras solicitadas en las issues abiertas. El proceso para realizar estas solicitudes es similar al descrito anteriormente para la modificación de un documento con la salvedad de que necesitaréis ejecutar una versión local de Gutenberg para poder revisar las modificaciones y realizar los cambios con comodidad. Como veis, hay muchas formas posibles de contribuir a Gutenberg al alcance de todos. Espero que hayáis encontrado las vuestras. Para cualquier duda o comentario, podéis escribirme a tu Gerardo virtual a robadgmail.com o encontrarme en GitHub, WordPress o Twitter que no uso con el imaginativo nombre de usuario de Gerardo.