Cómo subir módulos a Luarocks

Luarocks es el administrador de módulos de Lua, equivalente al pip3 de Python o al npm de Node js, yo he estado trabajando en un pequeño modulo de vector inspirado en la clase Vector2 de Godot, y ésto me ha llevado a aprender a subir módulos a luarocks.

Paso 1. Crea una cuenta en Luarocks.



Crear una cuenta es muy fácil, puedes integrarte con tu cuenta de Github, el link es éste.

Paso 2. Crea un archivo .rockspec


El archivo .rockspec es donde pondremos todo el metadato del módulo

El nombre del archivo es importante, debe tener una estructura: nombreModulo-version.rockspec, importante que la versión la puedes nombrar como quieras pero debe tener un -número al final que es el consecutivo de versiones de tu módulo.

Ejemplo: mi-modulo-1.0.0-1.rockspec

Paso 3. Escribe los datos del rockspec


La estructura básica es la siguiente:


package = "my-rock"
version = "version-1"
source = {
   url = "git+https://github.com/my-username/my-rock"
}
description = {
   homepage = "https://github.com/my-username/my-rock",
   license = "*** please specify a license ***"
}
dependencies = {}
build = {
   type = "builtin",
   modules = {
      ["modulo.submodulo"] = "modulo.lua",
      ["modulo.submodulo2"] = "modulo2.lua",
   }
}
Puedes ampliar esta estructura con mas metatados, enlace a la doc.
Toma encuenta que la estructura que tomará el módulo será en forma de paquete, por ejemplo, el repositorio "game-tools" contiene "vector.lua" y no "game-tools.lua". Pero cuando requieras utilizar el submódulo después de instalarlo con luarocks deberás escribir: require("game-tools.vector").

Paso 4. Empaqueta el módulo


Para empaquetar el módulo, abrimos la terminal y nos ubicamos en la raíz del repositorio, luego escribimos lo siguiente con PERMISOS DE ADMIN (sudo):

luarocks pack my_module-1.0.rockspec
Sustituyendo el my_module-1.0 por el nombre del .rockspec según el caso.

Esto nos genera un archivo con extensión .src.rock

Paso 5. Sube los archivos


Nos vamos a la web de luarocks y seleccionamos upload, luego solo tenemos que subir el archivo .rockspec y .src.rock y seleccionar Submit Query y con esto el módulo ya estará disponible en luarocks.


Comentarios