Fix immutable release bootstrap for 0.3.17
This commit is contained in:
@@ -10,8 +10,10 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: astral-sh/setup-uv@v6
|
- name: Install pinned uv
|
||||||
|
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
||||||
with:
|
with:
|
||||||
|
version: "0.11.12"
|
||||||
python-version: "3.13"
|
python-version: "3.13"
|
||||||
- name: Install verification browser
|
- name: Install verification browser
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -2,6 +2,14 @@
|
|||||||
|
|
||||||
Alle betekenisvolle wijzigingen worden hier bijgehouden. Het project volgt voorlopig een pre-1.0 semantische versieaanpak.
|
Alle betekenisvolle wijzigingen worden hier bijgehouden. Het project volgt voorlopig een pre-1.0 semantische versieaanpak.
|
||||||
|
|
||||||
|
## 0.3.17 - 2026-08-12
|
||||||
|
|
||||||
|
### Hersteld
|
||||||
|
|
||||||
|
- De Gitea-releasebootstrap gebruikt een immutable `setup-uv`-commit en een exacte
|
||||||
|
uv-versie; downloads lopen via de Astral-mirror en zijn niet langer afhankelijk
|
||||||
|
van de gelimiteerde GitHub Releases-API op het gedeelde runner-IP.
|
||||||
|
|
||||||
## 0.3.16 - 2026-08-12
|
## 0.3.16 - 2026-08-12
|
||||||
|
|
||||||
### Hersteld
|
### Hersteld
|
||||||
|
|||||||
@@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
VacatureRadar is een persoonlijke vacature-assistent voor België. De applicatie volgt toegestane werkgeversbronnen, ATS-pagina’s, feeds en vacaturemails, verwijdert dubbels en irrelevante resultaten en rangschikt de overblijvende kansen tegen jouw zoekprofiel. Jij behoudt altijd de controle: VacatureRadar helpt zoeken en opvolgen, maar solliciteert nooit automatisch.
|
VacatureRadar is een persoonlijke vacature-assistent voor België. De applicatie volgt toegestane werkgeversbronnen, ATS-pagina’s, feeds en vacaturemails, verwijdert dubbels en irrelevante resultaten en rangschikt de overblijvende kansen tegen jouw zoekprofiel. Jij behoudt altijd de controle: VacatureRadar helpt zoeken en opvolgen, maar solliciteert nooit automatisch.
|
||||||
|
|
||||||
**Actuele release: 0.3.16.** De volledige P0/P1-releasebasis en de publieke
|
**Actuele release: 0.3.17.** De volledige P0/P1-releasebasis en de publieke
|
||||||
demo-hardening zijn afgerond: 327 tests zijn groen, Microsoft 365 verwerkt platformmails via
|
demo-hardening zijn afgerond: 327 tests zijn groen, Microsoft 365 verwerkt platformmails via
|
||||||
app-only OAuth/XOAUTH2 en de productie-installatie draait gezond op de lokaal
|
app-only OAuth/XOAUTH2. Release 0.3.17 herstelt bovendien de reproduceerbare
|
||||||
gebouwde 0.3.16-image. De laatst volledig bewezen immutable private-registryrelease
|
private-registrypublicatie zonder afhankelijkheid van de GitHub Releases-API.
|
||||||
is 0.3.15; het controleerbare acceptatiebewijs staat in
|
Het controleerbare acceptatiebewijs staat in
|
||||||
[Finale acceptance](docs/audit/FINAL_ACCEPTANCE.md).
|
[Finale acceptance](docs/audit/FINAL_ACCEPTANCE.md).
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
+1
-1
@@ -139,7 +139,7 @@ CSRF_TRUSTED_ORIGINS = merge_unique(
|
|||||||
)
|
)
|
||||||
TIME_ZONE = os.getenv("DJANGO_TIME_ZONE", "Europe/Brussels")
|
TIME_ZONE = os.getenv("DJANGO_TIME_ZONE", "Europe/Brussels")
|
||||||
VACATURERADAR_OWNER_NAME = os.getenv("VACATURERADAR_OWNER_NAME", "Jens").strip()[:40] or "Jens"
|
VACATURERADAR_OWNER_NAME = os.getenv("VACATURERADAR_OWNER_NAME", "Jens").strip()[:40] or "Jens"
|
||||||
VACATURERADAR_VERSION = os.getenv("VACATURERADAR_VERSION", "0.3.16").strip() or "0.3.16"
|
VACATURERADAR_VERSION = os.getenv("VACATURERADAR_VERSION", "0.3.17").strip() or "0.3.17"
|
||||||
LANGUAGE_CODE = "nl-be"
|
LANGUAGE_CODE = "nl-be"
|
||||||
USE_I18N = True
|
USE_I18N = True
|
||||||
USE_TZ = True
|
USE_TZ = True
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ DJANGO_ALLOWED_HOSTS=vacatureradar.example.be,127.0.0.1,localhost
|
|||||||
DJANGO_CSRF_TRUSTED_ORIGINS=https://vacatureradar.example.be
|
DJANGO_CSRF_TRUSTED_ORIGINS=https://vacatureradar.example.be
|
||||||
DJANGO_TIME_ZONE=Europe/Brussels
|
DJANGO_TIME_ZONE=Europe/Brussels
|
||||||
VACATURERADAR_OWNER_NAME=Jens
|
VACATURERADAR_OWNER_NAME=Jens
|
||||||
VACATURERADAR_VERSION=0.3.16
|
VACATURERADAR_VERSION=0.3.17
|
||||||
|
|
||||||
POSTGRES_DB=vacatureradar
|
POSTGRES_DB=vacatureradar
|
||||||
POSTGRES_USER=vacatureradar
|
POSTGRES_USER=vacatureradar
|
||||||
|
|||||||
@@ -2417,3 +2417,26 @@ tasks:
|
|||||||
opvolging en 9 fictieve mailboxkoppelingen; EMAIL-bronnen en demo-mailboxen zijn uit de verkeerde schedulers
|
opvolging en 9 fictieve mailboxkoppelingen; EMAIL-bronnen en demo-mailboxen zijn uit de verkeerde schedulers
|
||||||
en activityfeeds uitgesloten, statuscopy en loginplaceholder zijn gecorrigeerd. Gerichte 51 tests en volledige
|
en activityfeeds uitgesloten, statuscopy en loginplaceholder zijn gecorrigeerd. Gerichte 51 tests en volledige
|
||||||
gate met 327 tests groen, 84,04% dekking.
|
gate met 327 tests groen, 84,04% dekking.
|
||||||
|
- id: VR-230
|
||||||
|
title: Herstel de immutable Gitea-releasepublicatie
|
||||||
|
status: ready
|
||||||
|
priority: P0
|
||||||
|
requirement_ids:
|
||||||
|
- NFR-009
|
||||||
|
depends_on:
|
||||||
|
- VR-229
|
||||||
|
summary: Verwijder de externe GitHub-API-rate-limit uit de releasebootstrap en publiceer de actuele productiebuild
|
||||||
|
opnieuw als aantoonbaar immutable private-registryimage.
|
||||||
|
acceptance_criteria:
|
||||||
|
- De uv-bootstrap is op een immutable actioncommit en een exacte uv-versie gepind.
|
||||||
|
- De releaseworkflow gebruikt voor uv-downloads geen GitHub Releases-API die op een gedeeld runner-IP kan limiteren.
|
||||||
|
- Gitea Actions publiceert een private registryimage met digest, SBOM, checksums en release notes.
|
||||||
|
- Unraid is op de gepubliceerde digest gepind en live health/readiness slagen.
|
||||||
|
verification:
|
||||||
|
- uv run pytest tests/unit/test_deployment_configuration.py
|
||||||
|
- ./scripts/codex_verify.sh
|
||||||
|
- Gitea Actions releasebewijs en live Unraid health/readiness
|
||||||
|
primary_paths:
|
||||||
|
- .gitea/workflows/release.yml
|
||||||
|
- tests/unit/test_deployment_configuration.py
|
||||||
|
- docs/audit/FINAL_ACCEPTANCE.md
|
||||||
|
|||||||
@@ -128,3 +128,11 @@ def test_deploy_uses_selected_environment_file_for_compose() -> None:
|
|||||||
assert 'export VACATURERADAR_ENV_FILE="$env_file"' in deploy_script
|
assert 'export VACATURERADAR_ENV_FILE="$env_file"' in deploy_script
|
||||||
assert 'docker compose --env-file "$env_file" -f "$compose_file" up -d --build' in deploy_script
|
assert 'docker compose --env-file "$env_file" -f "$compose_file" up -d --build' in deploy_script
|
||||||
assert "waarde uit ${env_file}" in deploy_script
|
assert "waarde uit ${env_file}" in deploy_script
|
||||||
|
|
||||||
|
|
||||||
|
def test_release_uv_install_is_immutable_and_does_not_require_github_api() -> None:
|
||||||
|
workflow = (ROOT / ".gitea" / "workflows" / "release.yml").read_text(encoding="utf-8")
|
||||||
|
|
||||||
|
assert "astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0" in workflow
|
||||||
|
assert 'version: "0.11.12"' in workflow
|
||||||
|
assert "astral-sh/setup-uv@v6" not in workflow
|
||||||
|
|||||||
Reference in New Issue
Block a user