Para empezar debemos tener en cuenta  que Magento es un CMS Ecommerce de código abierto (Aunque si has llegado a este post probablemente ya lo sepas), esto quiere decir que la contribución al desarrollo de nuevas funcionalidades o a la solución de bugs queda libre a la comunidad o para quien quiera ser parte de esta gran plataforma Ecommerce.

Si quieres ser un desarrollador experto de Magento, no hace falta que contribuyas al núcleo pero aportaría muchísimo a tu experiencia con Magento ya que, resolviendo bugs o implementando nuevas funcionalidad puedes ver como Magento funciona por dentro y entenderlo mejor.

Este post es sólo sobre mi pequeña experiencia de mi primera contribución al núcleo de Magento 2.

No está de más comentar que gracias a los chicos de Interactiv4, quienes organizaron el Contribution Weekend España 2017 en Madrid, pude dar los primeros pasos a mi primera contribución de Magento 2. Gracias a este evento tuve la oportunidad de conocer a ingenieros de la arquitectura de Mangeto 2 como pueden ser Eugene Tulika Igor Miniailo y al director del equipo Max Yekaterynenko quienes estuvieron disponibles los dos días del Contribution Weekend como todos nosotros, los mortales, resolviendo bugs o desarrollando nuevas funcionalidades para Magento 2 pero también para resolver dudas relacionadas con la arquitectura de Magento. 

¡A que mola!.

Y claro, también tuve la oportunidad de conocer a otros desarrolladores de Magento, compartir ideas, conocer gente metida en este mundo.

Ahora entrando un poco a cosas más técnicas: ¿Qué necesitas para contribuir al núcleo de Magento?

1. Tener cuenta activa en Github

2. Tener “forkeado” el repositorio de Magento 2

3. El IDE que normalmente uses.

4. Un entorno de desarrollo, ya sea XMAP (LAMP, WAMP etc), Vagrant, Docker etc; Todo vale, mientras se pueda instalar y usar Magento. Ayuda también mucho al desarrollo tener un Debuger como puede ser XDebug.

¡Y esto es todo!

Luego, una de las tareas mas difíciles, escoger que bugs o nueva funcionalidad desarrollar.

En este enlace puedes ver todos los issues abiertos del repositorio de Magento https://github.com/magento/magento2/issues

Después de horas buscando, ya que personalmente no queria algo muy facil (Había un issue para actualizar el README, que ojo, a la final alguien tiene que hacerlo pero estaba buscando un reto) he encontrado este issue/feature https://github.com/magento/magento2/issues/10362  el cual me vi capaz de hacerlo.

Cuando ya hayas encontrado que resolver/desarolladar deja un comentario para que te asignen el issue y que te manden la invitación para poder contribuir al Github de Magento para que formes parte del equipo de contribuidores. Al hacer solo eso ya queda registrado que alguien está trabajando en el issue.

La persona que reportó el issue ya hizo su trabajo, puede que el no sea programador pero ya con reportar el error ha contribuido al Magento y que puede que en un futuro otra persona con el mismo problema pueda ver, buscando rápidamente en Google, que se esta trabajando en ese issue y puede que tenga un workaround para implementar inmeditamente o que puede esperar que en futuras versiones de Magento esto esté resuelto.

Sólo por comentar de que trata el issue, en la tabla de customer_entity hay una columna de is_active que en la última versión de Magento (Magento 2.2 a fecha de este post) está siendo completamente ingnorada. El usuario es capaz de logearse en el sitio aunque este valor en la tabla de customer_entity esté a 0.

Para empezar a resolver un bug o desarollar nueva funcionlidad haremos un fork de Magento 2, luego, desde nuestro entorno de desarollado podemos hacer el Pull desde nuestro repositorio y de la respectiva branch donde ocurre el bug y si es una nueva funcionalidad un pull desde la última versión

Ya con nuestra branch en nuestro entorno de desarollo podemos empezar a desarolladar con las herramientas que usemos normalmente

Una vez lo tengas resuelto, puedes hacer el push a tu repositorio y luego hacer un  Pull request  donde luego será validado y una vez aceptado, ya podrás ver tu contribución en actualizaciones posteriores de Magento

Ahora mismo estoy terminando de desarrollador esta nueva feature, estoy en un punto donde ya no logea al usuario si el valor de is_active en la tabla de customer_entity está a 0 pero tambien quiero dejar al administrador poder editar este valor desde la administración de Magento

Para terminar, quiero comentar que para contribuir al núcleo de Magento no hace falta que seas desarrollodor, cada aportación cuenta, es decir, si eres una site builder y detectas un fallo, repórtalo como issue en el GitHub, valída los pasos para reproducir un bug en una versión de Magento y coméntalo en el issue si lo pudiste replicar o no, eso ayuda a los desarrolladores a detectar más rápido por donde puede estar el fallo. Ayuda a testear los cambios hechos por otros, comenta cosas relacionadas con el issue en cuestion etc.

Al final, a todos nos afecta y entre todos podemos ayudarnos. Y ésta es una de las finalidades del desarrollo de software libre, la intelegencia colectiva por así decirlo.

Más noticias

Magento Contribution Weekend

Para empezar debemos tener en cuenta que Magento es un CMS Ecommerce de código abierto ...

Finalistas eAwards Madrid 2017

Los eAwards premian a las agencias y empresas del año, y se otorgan anualmente por ...
Magento Commerce, la mejor opción para B2B

Magento Commerce, la mejor opción para B2B

"Magento is a best fit for companies that want an open, feature-rich solution that they ...