Cómo contribuir en drupal.org con Merge Requests
Ahora que los parches se están deprecando en Drupal.org, es hora de aprender cómo contribuir fácilmente en las issues y problemas de core y módulos contribuidos mediante Gitlab, a través de Merge Requests.
En este artículo nos centraremos en explicar la forma actualmente más sencilla y rápida de contribuir a Drupal, mediante las herramientas y posibilidades que ofrece la plataforma.
Requisitos
Maldita sea, siempre tiene que haber requisitos... Pero no te preocupes, te prometo que serán pocos:
- Disponer de una cuenta en drupal.org - Creo que esto es bastante aceptable, ¿no?
- Disponer de rol "confirmed" en tu cuenta de drupal.org - Este rol se obtiene automáticamente 90 días después de la creación de tu cuenta, aunque puede obtenerse mucho antes si no eres un usuario sospechoso (bot, spammer, etc...). Puedes obtener más información aquí. Si tu cuenta no tiene dicho rol, se te mostrará este mensaje en tu perfil:
- Obtener acceso a DrupalCode (Gitlab) - Esto puedes comprobarlo desde tu "Mi cuenta". Tu cuenta de Gitlab debería ser git.drupalcode.org/[alias]. Si es la primera vez que visitas el repositorio, tendrás que aceptar los términos del servicio.
- Obtener un Personal Access Token desde Gitlab para trabajar por HTTP/S - Es muy sencillo, solo entra a tu perfil de Gitlab de drupal.org y en la configuración de tu cuenta accede a "Access Tokens". Una vez dentro, añade un nuevo Token personal y selecciona los scopes "write_repository" y "read_repository".
¡Y esto sería todo! La forma en la que vamos a explicar a contribuir en este artículo es mediante tu navegador web y HTTP/S, por lo que no necesitas configurar un cliente Git, ni claves SSH, GPG, ni nada.
Pasos para contribuir en Drupal.org
Se puede contribuir de muchas maneras a Drupal, pero en este artículo vamos a explicar la situación más sencilla posible para contribuir a Drupal mediante issues o colas de problemas.
Para nuestro caso práctico vamos a crear una issue en un módulo contribuido, en la que hemos observado que falta el fichero Readme, en el que debe figurar una breve descripción, requisitos, configuración y características del módulo.
Una vez creada se nos mostrará en la parte superior un botón "Create issue fork". Haremos click en dicho botón para que se cree un fork de la issue y una rama sobre la que trabajaremos.
En issues ya creadas previamente, es posible que alguien haya creado antes que tú el fork de la issue, por lo que en lugar de crearla se te mostrará un botón "Get push access", para obtener acceso al fork de la issue y crear tu rama de trabajo.
Una vez creado el fork de la issue, se nos mostrará algo así:
Ahora debemos hacer clic en la rama de trabajo que se nos ha creado junto al fork, que en este caso se llama "3455971-add-readme-file, que es el ID de la issue y el título. Al hacer clic se nos abrirá Gitlab.
Ahora usaremos la herramienta "Web IDE" que nos provee Gitlab para poder trabajar con un entorno de desarrollo con el motor de Visual Studio y desde la web.
He creado un fichero README.md y he añadido algo de documentación acerca del módulo.
El entorno de desarrollo tiene integrado control de versiones de Gitlab, por lo que es extremadamente sencillo y rápido versionar nuestros cambios directamente en la rama sobre la que estábamos trabajando en la issue. Añadimos un commit message que cumpla las buenas prácticas de la contribución... ¡Y listo!
Cuando hagamos el commit nos saldrá una ventana en la parte inferior derecha de Web IDE. En nuestro caso, la issue era sencilla de resolver y solo hemos necesitado un commit para resolver el problema, por lo que ya podemos crear el Merge Request desde el botón "Create MR".
Al hacer clic se nos abrirá Gitlab y, tras comprobar que los commits y cambios son correctos, podemos Crear la Merge Request.
Al hacerlo mediante Web IDE, el título y descripción de la Merge Request se nos crea de forma automática.
Cuando volvamos a la issue nos aparecerá nuestro Merge Request en color verde e indicando que es "mergeable". Ahora es cuestión de cambiar el estado de la issue a "Needs review", para que las personas mantenedoras del proyecto se encarguen de revisarlo y aceptar la Merge Request para que el Readme se incluya en el repositorio original del proyecto.
Si se tratara de código, la issue pasaría por otros estados previos, en los que se incluye la revisión del mismo y pruebas adicionales.
Cuando los mantenedores del proyecto revisen y acepten la Merge Request se nos otorgarán créditos por ello. Pero... esto lo dejamos para otro artículo. ¡Espero que te haya sido útil!