# Plantilla de registro de paquetes de SiPi

Esto es TODO lo que hace falta para tener un registro de paquetes de
SiPi real y funcionando -- no hay servidor que mantener, GitHub lo
sirve gratis.

## Ponerlo en marcha (5 minutos)

1. Crea un repositorio nuevo en GitHub, publico. Por ejemplo
   `tu-usuario/sipi-registro`.
2. Sube este `index.json` (y este README si queres) a la rama `main`.
3. La URL de tu indice queda en:
   `https://raw.githubusercontent.com/tu-usuario/sipi-registro/main/index.json`
4. En cualquier proyecto SiPi que quiera usar tu registro, agrega a su
   `sipi.toml`:
   ```
   [registro]
   url = "https://raw.githubusercontent.com/tu-usuario/sipi-registro/main/index.json"
   ```
   (o exporta la variable de entorno `SIPI_REGISTRO_URL` con esa
   misma URL, si no queres tocar el `sipi.toml`).

## Publicar un paquete

Desde la carpeta del paquete (con su `sipi.json` adentro):

```
sipi paquete publicar
```

Sin mas configuracion, esto arma el `.zip` del paquete y te imprime:
- Donde subir ese `.zip` para que tenga una URL publica (un "Release"
  de GitHub es gratis y sirve perfecto para esto).
- El fragmento JSON exacto para pegar dentro de `paquetes.<nombre>.versiones`
  en tu `index.json`.

Si administras el repo del registro y tenes un clon local con permisos
de `git push`, podes automatizar TODO el paso anterior:

```
sipi paquete publicar --registro /ruta/a/tu/clon/de/sipi-registro
```

Esto copia el `.zip` a `paquetes/`, actualiza `index.json`, hace commit
y `git push` solo.

## Instalar un paquete

```
sipi paquete instalar reconocimiento_facial          # ultima version
sipi paquete instalar reconocimiento_facial@^1.2.0    # rango semver
sipi paquete buscar facial                            # buscar por nombre/descripcion
```

## Formato de `sipi.json` de un paquete

```json
{
  "nombre": "reconocimiento_facial",
  "version": "1.2.0",
  "descripcion": "Reconocimiento facial con OpenCV desde SiPi",
  "punto_entrada": "modulo.sipi",
  "dependencias": {
    "otro_paquete": "^1.0.0"
  }
}
```
