57 lines
2.7 KiB
Markdown
57 lines
2.7 KiB
Markdown
# REPORT — `catalog_since` backfill (2026-09-02)
|
|
|
|
*Overwritten each run. This records the most recent implementation only.*
|
|
|
|
## What was done
|
|
|
|
One new optional key, `catalog_since`, in all **53** `.felhom.yml` files, plus the rule that keeps it
|
|
true in `CLAUDE.md`. **No `docker-compose.yml` was touched and no image pin moved.**
|
|
|
|
This is slice 2 of the update arc opened by
|
|
`felhom.eu/documentation/audits/SPIKE-app-update-2026-09-01.md`. The consumer is felhom-controller
|
|
**v0.233.0**, which renders one Hungarian badge from it — *"Naprakész"* or
|
|
*"Frissítés elérhető — N napja"*. **No version number reaches the customer**, by operator ruling.
|
|
|
|
## Baseline
|
|
|
|
| | |
|
|
|---|---|
|
|
| repo at start | `5d8f25f61189` — matched the task's stated baseline, had not moved |
|
|
| commit pushed | `69761cf91bfc` |
|
|
|
|
## How the dates were derived
|
|
|
|
A throwaway script walked each app's `templates/<app>/docker-compose.yml` history newest→oldest and
|
|
took the newest commit whose **set of `image:` values differs from its parent's**. A YAML parse, not a
|
|
line scan.
|
|
|
|
**Two commits excluded by hash:** `214d448` and `30bd892` — the bentopdf pin move and its same-hour
|
|
revert. This repo's own CHANGELOG records them as a spike measurement, not a release; counting them
|
|
would date bentopdf 2026-09-02 for a pin that has not moved since `71828a8` (2026-07-12).
|
|
|
|
**Verification.** The four multi-major anchors from the spike all reproduced exactly — nextcloud
|
|
`5e2c1ae`, grafana `b789acc`, calcom `147cee7`, vikunja `3fa63cd`, all **2026-07-18**. Six further
|
|
apps were re-checked against `git log` **by hand**: bentopdf, plex, crafty-controller, homebox,
|
|
bookstack, wanderer. All six correct.
|
|
|
|
Range: **2026-02-15** (plex, still on the pin it was added with) to **2026-07-21**. Thirty-eight of 53
|
|
sit on 2026-07-18, the catalog-wide bump.
|
|
|
|
Every file was re-parsed with `yaml.safe_load` after the edit and the key read back — 53/53 clean.
|
|
|
|
## Gates
|
|
|
|
| gate | result |
|
|
|---|---|
|
|
| `image-pins` | **OK** (exit 0) |
|
|
| `image-resolvable` | INCONCLUSIVE — Docker Hub throttled 6 of 65 unauthenticated manifest lookups. 59 verified, none dead. **Not caused by this change.** |
|
|
| `volume-persistence` | INCONCLUSIVE — the prober refused to report because its own canary came back UNDETERMINED on this host. **Not caused by this change** (it needs a scratch Docker host). |
|
|
|
|
Entry point: `python3 scripts/catalog_gates.py`, overall exit **0**.
|
|
|
|
## Known gap, filed rather than left implicit
|
|
|
|
There is **no gate** asserting that a commit which changes an `image:` line also moves that app's
|
|
`catalog_since`. The gates runner fetches at `--depth 1` and has no parent commit to diff against, so
|
|
the gate needs a deeper fetch. Filed as a row in `felhom.eu/documentation/backlog/OPEN-ITEMS.md`.
|