Refuses to move the pointer unless the release is structurally complete, and
writes the object with Cache-Control: no-cache so the change reaches
consumers immediately rather than up to an hour later. Both behaviours exist
because their absence caused an outage on 2026-08-14 — see
check_release_complete() and read_promoted_release().
Arguments
- version
release version to promote
- bucket
GCS bucket holding
ducklake/releases/- required
passed to
check_release_complete()