Desde que Composer se convirtió en el estándar de facto y GitHub nos permitió mantener código online sin esfuerzo, la cantidad de paquetes y módulos sin mantenimiento de ningún tipo tuvo un crecimiento exponencial.
Está bueno recordar que además de programar para resolver un problema específico, programamos para otros programadores. O al menos deberíamos hacerlo. O al menos deberíamos intentarlo. (Quizás hasta nos podríamos conformar con que parezca que…)
Muchas veces nos habrá sucedido (o nos va a suceder) que algún módulo que compartimos y supimos mantener, hoy ya no tenga sentido. Es entonces que el módulo en cuestión puede quedar abandonado, sin ningún tipo de mantenimiento o corrección, puede que sea útil, o no; pero nadie lo sabe hasta que lo prueba.
Llegado ese punto podemos hacer 3 cosas (podemos hacer muchas, pero vamos a quedarnos con la idea de 3 cosas con respecto al módulo).
La primera y más fácil, hacer la plancha. Si funciona, bien. Si no funciona, no fue mi tiempo el que se perdió.
La segunda opción, quizás algo más radical, pero que en el fondo (muy en el fondo) demuestra cierta empatía con el prójimo: borrar repositorio de GitHub y paquete de Packagist.
La tercera opción es descontinuar el paquete de forma prolija y ordenada, para que si alguien lo instala, pueda saber en ese momento que el paquete ya no tendrá soporte alguno.
Voy a usar como ejemplo el módulo https://github.com/barbanet/magento2-argentinaregions que, así como otros módulos, se forkeó en Mugar y se lo estuvo mejorando bajo ese ámbito.
Lo primero que deberíamos hacer es archivar el repositorio en GitHub. Esto convierte al repositorio en uno de sólo lectura.
Entonces, el primer paso, es ir a Settings -> Options y luego bajar hasta la Danger Zone.
Allí nos interesará:
Al hacer click sobre el botón, aparecerá el cuadro que nos alerta sobre las implicancias de la acción (si nos equivocamos, deshacer la acción es muy sencillo y no tiene consecuencias).
Ingresamos el nombre del repositorio.
Y confirmamos la acción.
Ahora en nuestro repositorio aparecerá una leyenda de forma permanente.
Nuestro repositorio es de sólo lectura. Primera parte resuelta.
Ahora tenemos que ir a nuestra cuenta en Packagist y buscar el paquete.
Allí vamos a hacer click sobre «Abandon».
Esto nos llevará a una nueva pantalla que nos permitirá, de forma opcional, indicar el paquete de reemplazo.
Para este ejemplo, el reemplazo será el fork.
Si volvemos a la página del paquete, ahora veremos la siguiente leyenda.
Nuestro módulo o paquete ya fue puesto en modo sólo lectura en GitHub y ya fue marcado como Abandonado en Packagist.
¿Por qué es relevante hacer esto?.
Porque si alguien instalara ahora el módulo vería el siguiente mensaje.
Al momento de instalar, estamos dando, en este caso, dos mensajes:
El primer mensaje es que el paquete está abandonado. El segundo, e igual de relevante, es que en lugar de nuestro módulo sugerimos usar otro.
Ya tenemos, entonces, tarea para el próximo mes. 🙂