Skip to content

v0.3.0 — Esquema versionado y repo renombrado

Choose a tag to compare

@orl92 orl92 released this 07 Nov 19:18
· 79 commits to main since this release
f2582f2

Warning

Instalá v0.3.1, no esta versión.

El bloque «QUE FALTA» de deploy/install.sh imprime un comando que deja el known_hosts mal formado:
ssh-keyscan -p 22 -H <host> | sed 's/^/|1 h=|/'. Ese sed prefija cada línea y el archivo deja de ser válido,
así que el deploy falla con Host key verification failed — un mensaje que no señala la causa.

El resto de este release está bien y sigue siendo la base de v0.3.1; el defecto es sólo esa cadena.

→ https://github.com/cmp-camaguey/webcmp/releases/tag/v0.3.1


Esquema versionado

El esquema de la base de datos ahora vive en el repositorio. Hasta este release,
.gitignore excluía todo bajo migrations/ salvo __init__.py: un clone limpio
llegaba sin migraciones y el esquema se derivaba de los modelos en cada deploy,
sin diff que revisar. Un ALTER destructivo se aplicaba contra producción sin
pasar por una revisión, y revertir el código no lo deshacía.

Las 10 migraciones locales tampoco eran confiables: faltaba Notification en
core y había cinco campos corridos en commercial. Por eso se regeneraron
desde cero — un 0001_initial por app — en lugar de commitearlas.

El gate deja de ser cosmético: CI y los dos puntos de despliegue ejecutan
makemigrations --check --dry-run antes de migrate. Si un cambio de modelo
llega sin su migración, el proceso aborta antes de tocar la base.

Repositorio renombrado

El proyecto vive en cmp-camaguey/webcmp (antes web-cmw-insmet-cu). GitHub
redirige el nombre viejo, pero los links y los defaults se actualizaron:

  • UPDATE_REPO_URL y UPDATE_REPO_API, que usa el panel para comparar el commit
    desplegado con el remoto.
  • REPO_URL del instalador y del despliegue automático, y las URLs crudas de
    install.sh en la documentación.
  • Los units systemd, que además apuntaban a la organización vieja orl92.

Ningún archivo versionado conserva el nombre viejo, salvo el registro histórico
de odd/tasks/ y openspec/changes/archive/, donde el nombre es parte del
registro y no un link vivo.

Migraciones aplicadas

App Migración
commercial 0001_initial
core 0001_initial
meteo 0001_initial
publications 0001_initial
user_auth 0001_initial

Verificación

  • migrate sobre una base PostgreSQL vacía aplica las 5 apps + las de Django.
  • migrate --check y makemigrations --check --dry-run salen 0.
  • Suite completa: 1562 tests, OK.
  • ruff check ., ruff format --check . y djlint . --lint limpios.
  • deploy/tests/run.sh: 65 ok, 0 fallas.
  • bash -n de los cuatro scripts, YAML parseable, git diff --check limpio.

Instalación

Primero el plan, sin tocar nada:

curl -fsSL https://raw.githubusercontent.com/cmp-camaguey/webcmp/main/deploy/install.sh \
    | sudo bash -s -- --dry-run

Después la corrida real, en una terminal interactiva:

curl -fsSL https://raw.githubusercontent.com/cmp-camaguey/webcmp/main/deploy/install.sh \
    | sudo bash -s

El instalador clona el repo, crea el usuario de servicio y el de despliegue,
genera el .env, levanta el venv, aplica migraciones y estáticos, y deja las dos
unidades systemd, el vhost de Nginx y /etc/webcmp/deploy.env. Toma el mismo
lock que deploy.sh (/var/lock/webcmp-deploy.lock), así que no puede pisar un
deploy en curso.

Notas

  • deploy-production.yml sigue deshabilitado (DEPLOY_ENABLED sin definir):
    fusionar en main no despliega nada.
  • deploy/install.sh y deploy/deploy.sh cambian de flujo y están cubiertos por
    los 65 asserts de shell, pero el instalador todavía no se corrió en un host
    real. Es el ítem abierto que arrastra #153.

Full Changelog: v0.2.0...v0.3.0