refactor(slots): cut the comments down to the essentials

Addresses review on #214.

This change will:

- Trim the header comments of `local/check-slots.R`, `local/retire-slot.R` and
  `.crow/retire-slot.yaml` to what a reader needs, dropping the narrative about
  how Alpine 3.22 got into that state.
- Reduce the README section to the ordered steps and the two constraints that
  matter.

Behaviour is unchanged: against the tree at 523424b the script still reproduces
#213's structural changes, differing only in the same prose-only file, and both
guards still fire.
This commit is contained in:
Patrick Schratz 2026-09-11 08:21:23 +00:00
commit cc9d7b6046
No known key found for this signature in database
GPG key ID: 62050D5BC68AB6DC

View file

@ -1,27 +1,16 @@
# Delete a retired slot's objects from the bucket.
#
# The config half of a retirement (`.crow/*.yaml` matrices) is a commit, so it
# happens on a workstation:
# The config half is a commit, so it runs on a workstation:
# just retire-slot <codename> --apply
#
# Rscript local/retire-slot.R <codename> --config-only --apply
# This half needs the B2 credentials, which only exist in CI.
# `local/retire-slot.R` refuses any slot still listed in `local.rpkgs_slots`,
# so this cannot delete a live slot. Both architectures go together.
#
# The asset half needs the B2 credentials, which only exist in CI, so it
# happens here. `local/retire-slot.R` refuses any slot still listed in
# `local.rpkgs_slots` in cdn.tf, so this pipeline cannot delete a live slot
# however it is invoked.
#
# Dry run unless RETIRE_APPLY is 'yes'. The dry run reports the object count,
# which is the number worth looking at before deleting a five-figure prefix.
# Dry run unless RETIRE_APPLY is 'yes':
#
# crow pipeline create devxy/build-cran-binaries --branch main \
# --var retire_slot=alpine322 --var RETIRE_APPLY=yes
#
# Retiring a distro retires both architectures: `local.rpkgs_slots` is a
# setproduct over both, so there is no way to publish one without the other,
# and the script deletes `amd64/<codename>/` and `arm64/<codename>/` together.
#
# The slot's cron jobs are not in this repository and are not removed here. The
# script prints them by name, with the API call, at the end of the run.
variables:
# A manual pipeline creation instantiates every file in .crow/, so the