Finalize GeoIntel 1.0.0 release identity
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-19 12:07:04 +02:00
parent 04b8373d7e
commit f045dec849
21 changed files with 94 additions and 62 deletions
+12
View File
@@ -7,6 +7,18 @@
# Changelog # Changelog
## 1.0.0 - Final Belgium and Belgian North Sea release (2026-07-19)
- Promoted the nationally federated, map-first GeoIntel workbench from the
release candidate to the final `1.0.0` version.
- Accepted the final post-RC repository gates, live PostGIS runtime and
browser golden journeys against the immutable release image.
- Accepted live SPW waterbed elevation analysis in EPSG:3812/mDNG for the
documented 2019-2022 survey period, including bounded raster persistence,
coverage metrics and explicit depth/volume limitations.
- Kept unavailable North Sea bathymetry and unsupported water volume visibly
unavailable; no source-integrity or vertical-datum rule was bypassed.
## National history and governed SPW bathymetry (2026-07-19) ## National history and governed SPW bathymetry (2026-07-19)
- Accepted the two documented official Statbel geometry-archive variants: - Accepted the two documented official Statbel geometry-archive variants:
+1 -1
View File
@@ -14,7 +14,7 @@ GeoIntel is not a generic dashboard or chatbot. The core product is:
## Current milestone ## Current milestone
**v1.0.0-rc.1 - Belgium/North Sea release candidate** **v1.0.0 - Belgium/North Sea release**
The canonical release controls are: The canonical release controls are:
+1 -1
View File
@@ -1 +1 @@
1.0.0-rc.1 1.0.0
+1 -1
View File
@@ -12,7 +12,7 @@ class Settings(BaseSettings):
app_env: str = Field(default="development", validation_alias="GEOINTEL_ENV") app_env: str = Field(default="development", validation_alias="GEOINTEL_ENV")
app_version: str = Field( app_version: str = Field(
default="1.0.0-rc.1", default="1.0.0",
validation_alias="GEOINTEL_APP_VERSION", validation_alias="GEOINTEL_APP_VERSION",
) )
build_sha: str | None = Field(default=None, validation_alias="GEOINTEL_BUILD_SHA") build_sha: str | None = Field(default=None, validation_alias="GEOINTEL_BUILD_SHA")
+1 -1
View File
@@ -1,6 +1,6 @@
[project] [project]
name = "geointel-backend" name = "geointel-backend"
version = "1.0.0rc1" version = "1.0.0"
description = "GeoIntel Belgium and Belgian North Sea backend" description = "GeoIntel Belgium and Belgian North Sea backend"
readme = "README.md" readme = "README.md"
requires-python = ">=3.11" requires-python = ">=3.11"
+6 -6
View File
@@ -34,10 +34,10 @@ def test_release_version_is_consistent_across_runtime_packages() -> None:
(ROOT / "frontend" / "package-lock.json").read_text(encoding="utf-8") (ROOT / "frontend" / "package-lock.json").read_text(encoding="utf-8")
) )
assert version == "1.0.0-rc.1" assert version == "1.0.0"
assert f'default="{version}"' in config assert f'default="{version}"' in config
assert "GEOINTEL_APP_VERSION" in config assert "GEOINTEL_APP_VERSION" in config
assert 'version = "1.0.0rc1"' in pyproject assert 'version = "1.0.0"' in pyproject
assert frontend["version"] == version assert frontend["version"] == version
assert package_lock["version"] == version assert package_lock["version"] == version
assert package_lock["packages"][""]["version"] == version assert package_lock["packages"][""]["version"] == version
@@ -51,7 +51,7 @@ def test_release_image_carries_semantic_version_identity() -> None:
encoding="utf-8" encoding="utf-8"
) )
assert "ARG GEOINTEL_APP_VERSION=1.0.0-rc.1" in dockerfile assert "ARG GEOINTEL_APP_VERSION=1.0.0" in dockerfile
assert 'org.opencontainers.image.version="${GEOINTEL_APP_VERSION}"' in dockerfile assert 'org.opencontainers.image.version="${GEOINTEL_APP_VERSION}"' in dockerfile
assert "GEOINTEL_APP_VERSION=\"$(tr -d '[:space:]' < VERSION)\"" in deploy assert "GEOINTEL_APP_VERSION=\"$(tr -d '[:space:]' < VERSION)\"" in deploy
assert "--build-arg GEOINTEL_APP_VERSION=" in deploy assert "--build-arg GEOINTEL_APP_VERSION=" in deploy
@@ -85,8 +85,8 @@ def test_release_package_signature_and_checksums_fail_closed(tmp_path: Path) ->
) )
manifest = { manifest = {
"schema_version": 1, "schema_version": 1,
"release_id": "v1.0.0-rc.1", "release_id": "v1.0.0",
"version": "1.0.0-rc.1", "version": "1.0.0",
"scope": "Belgium and the Belgian North Sea", "scope": "Belgium and the Belgian North Sea",
"signature": {"identity": identity, "namespace": namespace}, "signature": {"identity": identity, "namespace": namespace},
"evidence": [ "evidence": [
@@ -114,7 +114,7 @@ def test_release_package_signature_and_checksums_fail_closed(tmp_path: Path) ->
module.write_checksums(package) module.write_checksums(package)
verified = module.verify_package(package) verified = module.verify_package(package)
assert verified["release_id"] == "v1.0.0-rc.1" assert verified["release_id"] == "v1.0.0"
evidence.write_text("tampered\n", encoding="utf-8") evidence.write_text("tampered\n", encoding="utf-8")
with pytest.raises(RuntimeError, match="Checksum mismatch"): with pytest.raises(RuntimeError, match="Checksum mismatch"):
+1 -1
View File
@@ -34,7 +34,7 @@ def test_release_evidence_manifest_is_secret_free_and_read_only(tmp_path: Path)
assert manifest["schema_version"] == 1 assert manifest["schema_version"] == 1
assert manifest["release_id"] == "test-rc" assert manifest["release_id"] == "test-rc"
assert manifest["version"] == "1.0.0-rc.1" assert manifest["version"] == "1.0.0"
assert manifest["read_only"] is True assert manifest["read_only"] is True
assert manifest["scope"] == "Belgium and the Belgian North Sea" assert manifest["scope"] == "Belgium and the Belgian North Sea"
assert "DATABASE_URL" not in json.dumps(manifest).replace( assert "DATABASE_URL" not in json.dumps(manifest).replace(
+1 -1
View File
@@ -165,7 +165,7 @@ RUN chmod +x /usr/local/bin/geointel-all-in-one-start /usr/local/bin/gosu \
ARG GEOINTEL_BUILD_SHA=unknown ARG GEOINTEL_BUILD_SHA=unknown
ARG GEOINTEL_BUILD_TIME=unknown ARG GEOINTEL_BUILD_TIME=unknown
ARG GEOINTEL_APP_VERSION=1.0.0-rc.1 ARG GEOINTEL_APP_VERSION=1.0.0
ENV GEOINTEL_BUILD_SHA="${GEOINTEL_BUILD_SHA}" \ ENV GEOINTEL_BUILD_SHA="${GEOINTEL_BUILD_SHA}" \
GEOINTEL_BUILD_TIME="${GEOINTEL_BUILD_TIME}" \ GEOINTEL_BUILD_TIME="${GEOINTEL_BUILD_TIME}" \
+1 -1
View File
@@ -5,7 +5,7 @@ Older handoff files are historical. If documents conflict, follow the precedence
## Current milestone ## Current milestone
**v1.0.0-rc.1 - Belgium/North Sea release candidate** **v1.0.0 - Belgium/North Sea release**
The implementation is in final release-candidate acceptance for Belgium and The implementation is in final release-candidate acceptance for Belgium and
the Belgian North Sea. Mol and the Kempen remain golden regression areas, not the Belgian North Sea. Mol and the Kempen remain golden regression areas, not
+3 -3
View File
@@ -55,7 +55,7 @@ Returns process liveness only. It never queries PostgreSQL.
{ {
"status": "ok", "status": "ok",
"service": "geointel-backend", "service": "geointel-backend",
"version": "1.0.0-rc.1", "version": "1.0.0",
"build_sha": null, "build_sha": null,
"build_time": null "build_time": null
} }
@@ -75,7 +75,7 @@ degraded. Docker uses `/health/ready`.
{ {
"status": "ok", "status": "ok",
"service": "geointel-backend", "service": "geointel-backend",
"version": "1.0.0-rc.1", "version": "1.0.0",
"database": "ok", "database": "ok",
"postgis": "ok:3.x", "postgis": "ok:3.x",
"migration": "ok:202607160001", "migration": "ok:202607160001",
@@ -105,7 +105,7 @@ envelope. PostGIS and configured YOLO state are derived at runtime.
"sam": false, "sam": false,
"grb": "bounded", "grb": "bounded",
"sentinel": "planned", "sentinel": "planned",
"version": "1.0.0-rc.1", "version": "1.0.0",
"build_sha": null, "build_sha": null,
"providers": [] "providers": []
} }
+1 -1
View File
@@ -21,7 +21,7 @@
"redis": "ok", "redis": "ok",
"storage": "ok" "storage": "ok"
}, },
"version": "1.0.0-rc.1" "version": "1.0.0"
} }
``` ```
+11 -10
View File
@@ -4,7 +4,7 @@ Updated: 2026-07-19
## Current state ## Current state
GeoIntel `v1.0.0-rc.1` is an accepted map-first GeoAI workbench for Belgium GeoIntel `v1.0.0` is an accepted map-first GeoAI workbench for Belgium
and the legally distinct Belgian maritime scopes. It runs as an immutable and the legally distinct Belgian maritime scopes. It runs as an immutable
all-in-one Unraid image with PostGIS, FastAPI, React/MapLibre, local Ollama all-in-one Unraid image with PostGIS, FastAPI, React/MapLibre, local Ollama
integration and optional local YOLO/PyTorch inference. integration and optional local YOLO/PyTorch inference.
@@ -15,16 +15,17 @@ Brussels, a language-boundary selection, the coast and the Belgian North Sea.
## Release status ## Release status
There are no open release blockers for the signed `v1.0.0-rc.1` evidence set. There are no open release blockers for `v1.0.0`. RC-0 through RC-11 and the
RC-0 through RC-11 are complete. Backup/restore, fresh install, upgrade, post-RC national data closeout are complete. Backup/restore, fresh install,
rollback, fail-closed readiness, one Alembic head, API contracts, supply-chain upgrade, rollback, fail-closed readiness, one Alembic head, API contracts,
policy, responsive browser journeys and live PostGIS acceptance are proven. supply-chain policy, responsive browser journeys and live PostGIS acceptance
are proven against the final release candidate image.
The active post-RC candidate extends real source coverage. Its repository gate The final repository gate passes 1,052 backend tests, 22 frontend tests,
passes 1,052 backend tests, 22 frontend tests, frontend typecheck/build, frontend typecheck/build, one Alembic head and the complete readiness script.
one Alembic head and the complete readiness script. Its remaining acceptance The live SPW bathymetry persistence and browser journey are accepted for the
step is live SPW bathymetry persistence and browser verification before a new final version: EPSG:3812 mDNG bed elevation, 2019-2022 survey period, bounded
immutable image is called releasable. coverage and no unsupported depth/volume inference.
## Operational product loop ## Operational product loop
+20
View File
@@ -1,3 +1,23 @@
## 2026-07-19 - GeoIntel 1.0.0 final release closeout
- Promoted the current clean `main` revision to semantic version `1.0.0` in
`VERSION`, backend/frontend package metadata, health/API examples and the
immutable Docker runtime identity. Historical RC entries remain unchanged.
- Re-ran the final repository release gate after the version promotion:
backend compile/tests, frontend unit tests/typecheck/build, readiness,
Alembic single-head/offline SQL and live-smoke syntax all pass.
- The final Tower image is tied to commit
`04b8373d7ece0f5eb29674507d718f0ea51ed5c4` and passed health, PostGIS
migration, proxy and browser runtime checks.
- Final live browser acceptance selected the Walloon golden area, activated
Waterbodem, analysed the full area and displayed real SPW mDNG metrics:
mean `74.55 m`, measured surface `22.69 ha`, coverage `7.07%`, and explicit
no-depth/no-volume limitations. No unrelated on-demand source acquisition
was triggered.
- Remaining boundaries are deliberate V1 limitations: MDK North Sea
analytical bathymetry remains not configured, water volume requires a
governed surface/datum/uncertainty contract, and YOLO remains human-reviewed.
## Autonomous RC program for Belgium and the Belgian North Sea (2026-07-17) ## Autonomous RC program for Belgium and the Belgian North Sea (2026-07-17)
### Post-RC national data federation (2026-07-19) ### Post-RC national data federation (2026-07-19)
+1 -1
View File
@@ -20,7 +20,7 @@ backward-compatible alias.
{ {
"status": "ok", "status": "ok",
"service": "geointel-backend", "service": "geointel-backend",
"version": "1.0.0-rc.1", "version": "1.0.0",
"database": "ok", "database": "ok",
"postgis": "ok:3.x", "postgis": "ok:3.x",
"migration": "ok:202607160001", "migration": "ok:202607160001",
+1 -1
View File
@@ -1,4 +1,4 @@
# GeoIntel v1.0.0-rc.1 Known Limitations # GeoIntel v1.0.0 Known Limitations
## Release position ## Release position
@@ -2,9 +2,9 @@
## Status and purpose ## Status and purpose
This is the active autonomous implementation board after `v1.0.0-rc.1`. This is the completed autonomous implementation board after `v1.0.0-rc.1`.
It is not an RC-12 phase. The signed RC remains immutable release evidence; It is not an RC-12 phase. The signed `v1.0.0` release remains immutable
all work below targets the next version and must preserve the frozen API, evidence; any future work must preserve the frozen API,
persistence, provenance and no-fake-data rules. persistence, provenance and no-fake-data rules.
The goal is to make the national workbench useful with real data: The goal is to make the national workbench useful with real data:
@@ -214,8 +214,8 @@ capabilities probe before implementation is marked operational.
## P4 - Maritime and bathymetry hardening ## P4 - Maritime and bathymetry hardening
**State: repository-complete; SPW live acceptance is the final candidate gate **State: complete; SPW live persistence and browser acceptance passed for
and MDK acquisition remains visibly blocked by strict-TLS evidence.** `v1.0.0`; MDK acquisition remains visibly blocked by strict-TLS evidence.**
### Work ### Work
@@ -270,9 +270,8 @@ and MDK acquisition remains visibly blocked by strict-TLS evidence.**
### Live evidence ### Live evidence
- Immutable AI image `301ecaccbd160fbe58daa245ba229270b6f16e09-ai` - Immutable AI image `04b8373d7ece0f5eb29674507d718f0ea51ed5c4-ai` passed live
passed live PostGIS migration and browser proxy smoke before the final PostGIS migration, browser proxy smoke and the final SPW bathymetry journey.
documentation-only closeout commit.
- The release journey reused all seven deterministic golden Areas and passed - The release journey reused all seven deterministic golden Areas and passed
Brussels, Wallonia, language-boundary, coast, Mol, Kempen and North Sea Brussels, Wallonia, language-boundary, coast, Mol, Kempen and North Sea
coverage without creating duplicates. coverage without creating duplicates.
@@ -288,7 +287,7 @@ and MDK acquisition remains visibly blocked by strict-TLS evidence.**
answer and a configured local-YOLO Job/AnalysisRun with map handoff. answer and a configured local-YOLO Job/AnalysisRun with map handoff.
- PyTorch `2.13.0+cpu` and Ultralytics `8.4.99` import in the deployed AI - PyTorch `2.13.0+cpu` and Ultralytics `8.4.99` import in the deployed AI
runtime. No model download or fabricated detection was used. runtime. No model download or fabricated detection was used.
- The final repository gate passed 1,042 backend tests, 20 frontend tests, - The final repository gate passed 1,052 backend tests, 22 frontend tests,
frontend typecheck/build, one Alembic head, the full offline migration SQL frontend typecheck/build, one Alembic head, the full offline migration SQL
chain and live-smoke syntax. chain and live-smoke syntax.
- MDK bathymetry remains `not_configured` because strict hostname validation - MDK bathymetry remains `not_configured` because strict hostname validation
+16 -16
View File
@@ -7,8 +7,8 @@ the Kempen remain regression references. A successful release never implies
that every theme is operational in every jurisdiction; the coverage API and that every theme is operational in every jurisdiction; the coverage API and
source provenance remain authoritative. source provenance remain authoritative.
The repository version is stored in `VERSION`. The current release candidate The repository version is stored in `VERSION`. The current release is
is `v1.0.0-rc.1`. `v1.0.0`.
## Mandatory preconditions ## Mandatory preconditions
@@ -65,7 +65,7 @@ large storage:
bash scripts/backup_release_state.sh \ bash scripts/backup_release_state.sh \
--container geointel \ --container geointel \
--output-root /mnt/user/appdata/geointel/backups \ --output-root /mnt/user/appdata/geointel/backups \
--release-id v1.0.0-rc.1 \ --release-id v1.0.0 \
--storage-path /mnt/user/appdata/geointel/storage \ --storage-path /mnt/user/appdata/geointel/storage \
--models-path /mnt/user/appdata/geointel/models \ --models-path /mnt/user/appdata/geointel/models \
--inventory-mode sha256 --inventory-mode sha256
@@ -75,14 +75,14 @@ Verify and restore only into an automatically generated temporary database:
```bash ```bash
bash scripts/verify_release_backup.sh \ bash scripts/verify_release_backup.sh \
--backup-dir /mnt/user/appdata/geointel/backups/v1.0.0-rc.1 \ --backup-dir /mnt/user/appdata/geointel/backups/v1.0.0 \
--container geointel --container geointel
bash scripts/restore_release_backup_smoke.sh \ bash scripts/restore_release_backup_smoke.sh \
--backup-dir /mnt/user/appdata/geointel/backups/v1.0.0-rc.1 \ --backup-dir /mnt/user/appdata/geointel/backups/v1.0.0 \
--container geointel \ --container geointel \
--confirm-isolated-restore --confirm-isolated-restore
bash scripts/verify_release_upgrade_smoke.sh \ bash scripts/verify_release_upgrade_smoke.sh \
--backup-dir /mnt/user/appdata/geointel/backups/v1.0.0-rc.1 \ --backup-dir /mnt/user/appdata/geointel/backups/v1.0.0 \
--container geointel \ --container geointel \
--confirm-isolated-upgrade --confirm-isolated-upgrade
``` ```
@@ -96,11 +96,11 @@ their generated verification database.
bash scripts/verify_release_fresh_install.sh \ bash scripts/verify_release_fresh_install.sh \
geointel-all-in-one:<release-commit>-ai geointel-all-in-one:<release-commit>-ai
bash scripts/run_rc8_release_journeys.sh \ bash scripts/run_rc8_release_journeys.sh \
http://127.0.0.1:1202 artifacts/releases/v1.0.0-rc.1/rc8 http://127.0.0.1:1202 artifacts/releases/v1.0.0/rc8
bash scripts/run_rc9_ux_audit.sh \ bash scripts/run_rc9_ux_audit.sh \
http://127.0.0.1:1202 artifacts/releases/v1.0.0-rc.1/rc9 http://127.0.0.1:1202 artifacts/releases/v1.0.0/rc9
bash scripts/run_rc10_data_operations_audit.sh \ bash scripts/run_rc10_data_operations_audit.sh \
artifacts/releases/v1.0.0-rc.1/rc10 artifacts/releases/v1.0.0/rc10
``` ```
The RC10 command is read-only and runs cleanup in dry-run mode only. The RC10 command is read-only and runs cleanup in dry-run mode only.
@@ -113,10 +113,10 @@ cd frontend && npm audit --audit-level=high
cd .. cd ..
bash scripts/generate_container_sbom.sh \ bash scripts/generate_container_sbom.sh \
geointel-all-in-one:<release-commit>-ai \ geointel-all-in-one:<release-commit>-ai \
artifacts/releases/v1.0.0-rc.1/geointel-sbom.spdx.json artifacts/releases/v1.0.0/geointel-sbom.spdx.json
bash scripts/scan_container_image.sh \ bash scripts/scan_container_image.sh \
geointel-all-in-one:<release-commit>-ai \ geointel-all-in-one:<release-commit>-ai \
artifacts/releases/v1.0.0-rc.1/container-vulnerabilities.json artifacts/releases/v1.0.0/container-vulnerabilities.json
``` ```
The complete vulnerability report remains evidence. The executable policy The complete vulnerability report remains evidence. The executable policy
@@ -144,8 +144,8 @@ release key; never add the private key to the repository:
```bash ```bash
git -c gpg.format=ssh \ git -c gpg.format=ssh \
-c user.signingkey=/secure/path/release-key \ -c user.signingkey=/secure/path/release-key \
tag -s v1.0.0-rc.1 -m "GeoIntel v1.0.0-rc.1" tag -s v1.0.0 -m "GeoIntel v1.0.0"
git push origin v1.0.0-rc.1 git push origin v1.0.0
``` ```
Place the collected evidence files in an ignored package directory and create Place the collected evidence files in an ignored package directory and create
@@ -153,14 +153,14 @@ the detached SSH signature plus complete checksum inventory:
```bash ```bash
python scripts/build_release_package.py build \ python scripts/build_release_package.py build \
--output-dir artifacts/releases/v1.0.0-rc.1 \ --output-dir artifacts/releases/v1.0.0 \
--release-id v1.0.0-rc.1 \ --release-id v1.0.0 \
--image-name geointel-all-in-one:<release-commit>-ai \ --image-name geointel-all-in-one:<release-commit>-ai \
--image-id sha256:<image-id> \ --image-id sha256:<image-id> \
--image-revision <release-commit> \ --image-revision <release-commit> \
--signing-key /secure/path/release-key --signing-key /secure/path/release-key
python scripts/build_release_package.py verify \ python scripts/build_release_package.py verify \
--package-dir artifacts/releases/v1.0.0-rc.1 --package-dir artifacts/releases/v1.0.0
``` ```
The builder refuses a dirty worktree, a tag not pointing at `HEAD`, a mismatched The builder refuses a dirty worktree, a tag not pointing at `HEAD`, a mismatched
+4 -4
View File
@@ -2,10 +2,10 @@
## Actieve post-RC datadekkingsfase ## Actieve post-RC datadekkingsfase
`docs/POST_RC_DATA_COVERAGE_ROADMAP_BELGIUM_NORTH_SEA.md` is het actieve `docs/POST_RC_DATA_COVERAGE_ROADMAP_BELGIUM_NORTH_SEA.md` was het autonome
autonome uitvoeringsbord na `v1.0.0-rc.1`. Dit is geen RC-12. De ondertekende uitvoeringsbord na `v1.0.0-rc.1` en is nu afgesloten voor `v1.0.0`. Dit is geen
RC blijft immutable bewijs; deze fase maakt echte, begrensde nationale en RC-12. De definitieve release blijft immutable bewijs; verdere databronnen
maritieme databronnen bruikbaar in de volgende versie. zijn post-V1 uitbreidingen.
- [x] P0: bestaande NGI/RBINS-lagen als kaartthema en selectieanalyse ontsluiten. - [x] P0: bestaande NGI/RBINS-lagen als kaartthema en selectieanalyse ontsluiten.
- [x] P0: readiness baseren op bruikbare analysethema's, niet alleen datasetaantal. - [x] P0: readiness baseren op bruikbare analysethema's, niet alleen datasetaantal.
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "geointel-frontend", "name": "geointel-frontend",
"version": "1.0.0-rc.1", "version": "1.0.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "geointel-frontend", "name": "geointel-frontend",
"version": "1.0.0-rc.1", "version": "1.0.0",
"dependencies": { "dependencies": {
"maplibre-gl": "^4.7.1", "maplibre-gl": "^4.7.1",
"react": "^18.2.0", "react": "^18.2.0",
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "geointel-frontend", "name": "geointel-frontend",
"private": true, "private": true,
"version": "1.0.0-rc.1", "version": "1.0.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"start": "vite", "start": "vite",
+1 -1
View File
@@ -40,7 +40,7 @@ if 'prompts/codex/m14/CODEX_FIRST_DAY_MASTER_PROMPT.md' not in start:
readme = (ROOT / 'README.md').read_text(encoding='utf-8') readme = (ROOT / 'README.md').read_text(encoding='utf-8')
active_terms = [ active_terms = [
'v1.0.0-rc.1', 'v1.0.0',
'docs/RC_SCOPE_FREEZE_BELGIUM_NORTH_SEA.md', 'docs/RC_SCOPE_FREEZE_BELGIUM_NORTH_SEA.md',
'docs/RC_ROADMAP_BELGIUM_NORTH_SEA.md', 'docs/RC_ROADMAP_BELGIUM_NORTH_SEA.md',
] ]