This commit is contained in:
Jordy Hoogeveen
2026-09-10 16:24:30 +02:00
parent 624f51679a
commit ceff734793
7 changed files with 287 additions and 82 deletions
+41 -21
View File
@@ -218,16 +218,18 @@ in, dan valt de push in stap 3 om. Loopt dat toch mis, dan is
```powershell
# 1. Versienummer in package.json van "x.x.x-dev" naar "x.x.x"
# 2. Changelog.md: kop van "Niet vrijgegeven" naar "[x.x.x] - datum"
# 2. Wijzigingen in Changelog.md onder de kop "## [Niet vrijgegeven]"
# (de kop zelf omzetten hoeft niet — dat doet het script)
# 3. Token staat in .env.release (zie Tokens) — of eenmalig in de shell:
$env:GITEA_TOKEN = "<vibefinance-workstation>"
.\release.ps1 # test, bouw (amd64+arm64), push, tag, Gitea-release
.\release.ps1 -DryRun # droogloop — toont alle stappen zonder uit te voeren
.\release.ps1 -NoBuild # sla docker build over, alleen tag + release
.\release.ps1 -SkipTests # sla de testsuite over (niet aanbevolen)
.\release.ps1 # test, bouw (amd64+arm64), push, tag, Gitea-release
.\release.ps1 -DryRun # droogloop — toont alle stappen zonder uit te voeren
.\release.ps1 -NoBuild # sla docker build over, alleen tag + release
.\release.ps1 -SkipTests # sla de testsuite over (niet aanbevolen)
.\release.ps1 -NoChangelog # publiceer bewust zonder release-notes
# 4. Versienummer in package.json naar "x.x.(x+1)-dev" voor volgende cyclus
# Klaar. Het versienummer voor de volgende cyclus zet het script zelf.
```
Het script bouwt één image voor `linux/amd64` en `linux/arm64`, zodat dezelfde
@@ -235,22 +237,35 @@ tag op een Raspberry Pi en op een x86-server werkt.
**Wat het script zelf bijwerkt** — met de hand aanpassen is dus dubbel werk:
| Bestand | Wat |
|---|---|
| `frontend/package.json` | versie gelijkgetrokken met de root `package.json` |
| `README.md` | de `versie-x.x.x`-badge bovenaan |
| Bestand | Wat | Wanneer |
|---|---|---|
| `Changelog.md` | kop `## [Niet vrijgegeven]` → `## [x.x.x] - datum` | vóór de build |
| `frontend/package.json` | versie gelijkgetrokken met de root `package.json` | vóór de build |
| `README.md` | de `versie-x.x.x`-badge bovenaan | vóór de build |
| `package.json` (root) | versie → `x.x.(x+1)-dev` voor de volgende cyclus | **ná** het publiceren |
Beide gebeuren vóór de build, en een `-DryRun` meldt ze zonder te schrijven. Ze
blijven na een echte release als wijziging in je working tree staan; neem ze mee
in de volgende commit.
Een `-DryRun` meldt alle vier zonder te schrijven. Ze blijven na een echte
release als wijziging in je working tree staan; neem ze mee in de volgende
commit.
> **De changelog-kop moet exact `## [x.x.x]` zijn.** `release.ps1` zoekt die kop
> om de release-notes te vullen. Staat je werk nog onder `## [Niet vrijgegeven]`,
> dan vindt het script niets en valt het terug op de tekst `"Release x.x.x"` —
> dan staat er geen inhoudelijke release-notes in Gitea en ziet een gebruiker in
> het belletje een placeholder. Dat overkwam 0.1.9. Achteraf repareren kan met
> een `PATCH` op `/repos/<org>/<repo>/releases/<id>`, maar vóór de release
> omzetten is een stuk minder werk.
De laatste staat bewust ná het publiceren: breekt de release eerder af, dan
schuift het versienummer niet vooruit. Bijeffect dat je moet kennen — na een
geslaagde release staat er een `-dev` nummer in `package.json`, en de controle
bovenin het script weigert een `-dev` versie. Dat sluit een dubbele publicatie
uit, maar wil je dezelfde versie bewust opnieuw releasen (bijvoorbeeld omdat een
tag is verdwenen), zet het nummer dan eerst zelf terug naar `x.x.x`.
> **Zonder changelog-sectie breekt het script af.** De release-notes komen uit de
> sectie `## [x.x.x]` in `Changelog.md`. Vond het script daar niets, dan
> publiceerde het stil de tekst `"Release x.x.x"` — dat gebeurde bij 0.1.9 en
> 1.0.2. Nu zet het de kop `## [Niet vrijgegeven]` zelf om, en als er ook dán
> niets over deze versie in staat, stopt het vóór de build met de melding wat je
> moet toevoegen. Wil je bewust zonder notes publiceren, gebruik `-NoChangelog`.
>
> De controle staat vóór de drie auto-updates hierboven, zodat een afgebroken
> release geen gewijzigde bestanden achterlaat. Is een release toch al gepubliceerd
> met de placeholder, dan repareer je dat met een `PATCH` op
> `/repos/<org>/<repo>/releases/<id>` met de juiste `body`.
### `.env.release` — token niet elke sessie opnieuw zetten
@@ -283,7 +298,12 @@ docker compose pull && docker compose up -d
docker compose down -v && docker compose up -d
```
Pullen vereist een registry-login op die host — zie
Draai dit in de map met `docker-compose.yml` en `.env`. `docker compose` zoekt
dat bestand namelijk in de huidige map en kijkt niet omhoog; staat het er niet,
dan is het antwoord `no configuration file provided: not found`. Met
`docker compose -f /pad/naar/docker-compose.yml` kun je het expliciet meegeven.
Pullen zelf werkt anoniem zolang de organisatie public is — zie
[Pullen op een deploy-machine](#pullen-op-een-deploy-machine).
### PostgreSQL versie-upgrade