Blog sobre software libre

Posts tagged "elisp,":

27 jun 2023

Publicación de un paquete en MELPA

El otro día estaba mirando la lista de paquetes de MELPA, y vi que había varios paquetes que añadían al calendario de Emacs los días festivos de varios países. Sin embargo no encontré por ningún lado los festivos de España, y pensé en hacer yo mismo el paquete.

Primer paso: creación del paquete

Como es un paquete muy simple, no me llevó mucho tiempo. Me basé en el paquete de mexican-holidays y copié su estructura. Luego fui a la página del gobierno donde están publicados los festivos de 2023.

Segundo paso: formato del paquete

Una vez creado, le di al paquete el formato requerido por MELPA. Siguiendo las instrucciones de https://github.com/melpa/melpa/blob/master/README.md#contributing y https://github.com/melpa/melpa/blob/master/CONTRIBUTING.org.

Al ser un paquete de un sólo archivo, sin dependencias, lo único que hice fue pasarle el package-lint y checkdoc para comprobar que todo estaba correcto y con buena documentación y estructura.

Tercer paso: creación del recipe y pull request

Para integrar el paquete en MELPA, hay que hacer un git clone del repositorio de MELPA, añadir un archivo llamado recipe donde se incluye el nombre del paquete así como el repositorio fuente, y por último solicitar un pull request en Github.

Cuarto paso: comprobación del merge

Antes de hacer un merge en MELPA, un revisor comprobará que el paquete cumple todos los requerimientos, hará algún comentario por si falta algo y luego finalmente se hará el merge. En mi caso me faltaba añadir el archivo de licencia, tras añadirlo el paquete fue incluido en MELPA.

Conclusión

Todo el proceso se realizó en menos de 24 horas. Todas las instrucciones fueron muy claras, y el revisor muy amable. Incluso sin saber mucho de elisp, he podido crear y contribuir con un paquete al entorno de GNU Emacs.

Tags: emacs, elisp, melpa
Other posts
Other posts
Creative Commons License
www.finaprosadigital.com by Carlos Pajuelo is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.