feature/generador-instaladores-linux-windows
This commit is contained in:
47
CHANGELOG.md
47
CHANGELOG.md
@@ -1,5 +1,52 @@
|
||||
# Changelog
|
||||
|
||||
## [1.1.0] - 2026-07-29
|
||||
|
||||
### Distribución e instalación automatizada vía Gitea + PANEL
|
||||
|
||||
#### Publicación de versiones
|
||||
- Artefactos con versión en el nombre: `CloudRestoreAS-<version>-{linux,win}-<arch>.{tar.gz,zip}`,
|
||||
más `SHA256SUMS` y `release.json` (manifiesto con sha256, tamaño y deps embebidas).
|
||||
- `packaging/scripts/publish-release.sh`: publica en los paquetes genéricos de Gitea
|
||||
(`ADUANASOFT/generic/cloudrestoreas/<version>`) y **verifica el sha256 contra la propia
|
||||
API de Gitea** antes de dar la publicación por buena. Soporta `--dry-run`, `--force` y
|
||||
`--notify-panel`.
|
||||
- `build-all.sh --publish` encadena build → empaquetado → publicación. Se niega a publicar
|
||||
si falta una plataforma: los paquetes genéricos son inmutables y corregirlo quemaría el
|
||||
número de versión.
|
||||
|
||||
#### Contrato con el PANEL
|
||||
- `POST /api/restore/instance-config` ahora reporta también `platform` y `arch`, para que
|
||||
el PANEL sepa qué artefacto le corresponde a cada servidor.
|
||||
- `processed_folder` ya se envía en ese mismo reporte (antes se calculaba, no se mandaba).
|
||||
|
||||
#### Instaladores
|
||||
- **Nuevo `install.ps1`**: instalador de despliegue Windows, autocontenido. Registra una
|
||||
tarea programada ONSTART como SYSTEM para el 24/7 headless — sin NSSM ni descargas en el
|
||||
servidor destino. Detiene la instancia en ejecución antes de reemplazar el `.exe`.
|
||||
- El antiguo `install.ps1` (preparación del entorno de desarrollo: Python, venv, pip) se
|
||||
movió a `scripts/dev-setup.ps1`. **Se estaba empaquetando por error** en el zip del
|
||||
ejecutable autocontenido, que no necesita nada de eso.
|
||||
- `install.sh` e `install.ps1` aceptan `--panel-env-file` / `-PanelEnvFile`: fusionan las
|
||||
claves `CLOUDRESTORE_PANEL_*` en `config/.env` (replace-or-append, idempotente, con lista
|
||||
blanca) y borran el archivo. El token viaja por archivo 0600, nunca por argumentos, para
|
||||
que no quede visible en `ps` ni en el historial del destino.
|
||||
- `install.sh` detiene el servicio antes de reemplazar el binario (un ELF en ejecución da
|
||||
`ETXTBSY`) y lo vuelve a levantar si estaba activo.
|
||||
|
||||
#### Versionado
|
||||
- `app/__init__.py` es la fuente única de la versión; el diálogo *Acerca de* ya no la trae
|
||||
hardcodeada.
|
||||
- Flag `--version` en el binario, y sello `config/.version` que escribe el bootstrap (el
|
||||
instalador remoto lo lee por SFTP, porque el `.exe` se compila con `console=False`).
|
||||
- El `.exe` ya lleva metadatos de versión de Windows (`VSVersionInfo`).
|
||||
|
||||
#### Correcciones
|
||||
- `config/7zip` y `config/odbc` se re-despliegan cuando el build trae otras versiones
|
||||
embebidas, comparando un sello con el sha256 de `bundled-versions.json`. Antes solo se
|
||||
copiaban si la carpeta estaba vacía, así que una actualización con driver ODBC nuevo
|
||||
conservaba el viejo indefinidamente.
|
||||
|
||||
## [1.0.0] - 2026-01-25
|
||||
|
||||
### Lanzamiento Inicial
|
||||
|
||||
Reference in New Issue
Block a user