From 416a2d64d9461395f689ca3ccd5e7f6aac615913 Mon Sep 17 00:00:00 2001 From: pat-s Date: Fri, 11 Sep 2026 07:27:03 +0000 Subject: [PATCH] chore(alpine): drop the deprecated Alpine 3.22 slot (#213) ## Why Alpine 3.22 is deprecated and should be dropped. It was never a published slot to begin with. `local.rpkgs_slots` in `cdn.tf` enumerates eight distros and alpine322 is not one of them, so `UNION_SLOTS` never gated per-minor rewriting for it. The website's `DistroId` union lists the same eight. Every request to the slot therefore fell through to the flat index, which holds R 4.5 builds. ## Evidence The fleet-wide routing verification (pipeline 12591, `verify_routing=all`) measured this end to end. Across all 16 published slots, both architectures, three R minors and both contractual URL forms: **1056 of 1056 install-and-load checks passed.** Every failure in the run was alpine322, identical on amd64 and arm64: ``` amd64/alpine322 R 4.4 via arch|generic|flat: 8 of 11 amd64/alpine322 R 4.6 via arch|generic|flat: 10 of 11 arm64/alpine322 R 4.4 via arch|generic|flat: 8 of 11 arm64/alpine322 R 4.6 via arch|generic|flat: 10 of 11 ``` The tell is that all three forms agree. On a routed slot `arch` and `generic` diverge from `flat`, because that divergence *is* the routing. On alpine322 there is nothing to diverge from. R 4.5 clients were 11 of 11 on every form, because flat happens to be what they need. The data itself is not broken, only unreachable. `alpine322/contrib/4.4/data.table_1.18.6.1.tar.gz` is genuinely `Built: R 4.4.3` and the 4.6 object is `Built: R 4.6.0`. Correct objects, correct per-minor indexes, never served. ## What changed - alpine-322 matrix rows and dropdown options removed from the 12 pipelines that carried them, so `=all` no longer fans out to a slot nobody can reach. - `3.22` removed from the `OS_VERSION` dropdowns in `build-all-versions.yaml` and `repair-built-stamp.yaml`; the latter's default moves to `3.23`. - Stale `3.22` examples updated in `local/packages-to-build.R`. `crow lint .crow/` reports all 18 configs valid. ## Also done outside this diff The six alpine-322 cron jobs are deleted from the Crow server, since a cron whose matrix row is gone keeps firing against nothing: ``` 5 process-cran-updates-alpine-322-amd64 0 5/8 * * * 6 process-cran-updates-alpine-322-arm64 30 5/8 * * * 68 weekly-audit-missing-alpine-322-amd64 20 0 * * 0 69 weekly-audit-missing-alpine-322-arm64 30 0 * * 0 82 weekly-rebuild-missing-alpine-322-amd64 0 4 * * 0 83 weekly-rebuild-missing-alpine-322-arm64 10 4 * * 0 ``` They are listed here so they can be recreated if this is ever reversed. ## Not done The published objects and indexes under `amd64/alpine322` and `arm64/alpine322` are left in the bucket. Deleting them is a separate decision, and nothing routes to them in the meantime. Reviewed-on: https://git.devxy.io/devxy/build-cran-binaries/pulls/213 --- .crow/archive-missed-packages.yaml | 4 --- .crow/backfill-flat-safety.yaml | 10 ------- .crow/build-all-versions.yaml | 1 - .crow/process-updates.yaml | 14 ---------- .crow/prune-stale-flat-binaries.yaml | 10 ------- .crow/rebuild-abi-gap.yaml | 10 ------- .crow/reindex.yaml | 10 ------- .crow/repair-built-stamp.yaml | 7 +++-- .crow/repair-unsafe-flat-objects.yaml | 10 ------- .crow/trial-build-registry.yaml | 8 ------ .crow/verify-repo-routing.yaml | 10 ------- .crow/weekly-audit-missing.yaml | 10 ------- .crow/weekly-rebuild-missing.yaml | 38 --------------------------- .crow/weekly-rebuild-reindex.yaml | 10 ------- local/packages-to-build.R | 4 +-- 15 files changed, 5 insertions(+), 151 deletions(-) diff --git a/.crow/archive-missed-packages.yaml b/.crow/archive-missed-packages.yaml index bd127d6..71e263e 100644 --- a/.crow/archive-missed-packages.yaml +++ b/.crow/archive-missed-packages.yaml @@ -28,10 +28,6 @@ matrix: ARCH: amd64 - CODENAME: redhat-10 ARCH: arm64 - - CODENAME: alpine322 - ARCH: amd64 - - CODENAME: alpine322 - ARCH: arm64 - CODENAME: alpine323 ARCH: amd64 - CODENAME: alpine323 diff --git a/.crow/backfill-flat-safety.yaml b/.crow/backfill-flat-safety.yaml index e5c9b68..0db0735 100644 --- a/.crow/backfill-flat-safety.yaml +++ b/.crow/backfill-flat-safety.yaml @@ -25,8 +25,6 @@ variables: options: - none - all - - alpine-322-amd64 - - alpine-322-arm64 - alpine-323-amd64 - alpine-323-arm64 - alpine-324-amd64 @@ -59,14 +57,6 @@ labels: matrix: include: - - OS: alpine-322 - ARCH: amd64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - - OS: alpine-322 - ARCH: arm64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - OS: alpine-323 ARCH: amd64 R_VERSION: 4.5.3 diff --git a/.crow/build-all-versions.yaml b/.crow/build-all-versions.yaml index 4306d6d..91b7bcd 100644 --- a/.crow/build-all-versions.yaml +++ b/.crow/build-all-versions.yaml @@ -24,7 +24,6 @@ variables: OS_VERSION: description: 'OS image tag. Must match OS (alpine: 3.24; redhat: 8/9/10; ubuntu: jammy/noble).' options: - - '3.22' - '3.23' - '3.24' - '8' diff --git a/.crow/process-updates.yaml b/.crow/process-updates.yaml index 73bfff7..4cd95a7 100644 --- a/.crow/process-updates.yaml +++ b/.crow/process-updates.yaml @@ -15,8 +15,6 @@ variables: options: - none - all - - alpine-322-amd64 - - alpine-322-arm64 - alpine-323-amd64 - alpine-323-arm64 - alpine-324-amd64 @@ -48,18 +46,6 @@ labels: matrix: include: - - OS: alpine-322 - ARCH: amd64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - OS_ID: alpine322 - PROCESS_NEW: 'FALSE' - - OS: alpine-322 - ARCH: arm64 - R_VERSION: 4.5.3 - IMG: alpine:3.23 - OS_ID: alpine322 - PROCESS_NEW: 'FALSE' - OS: alpine-323 ARCH: amd64 R_VERSION: 4.5.3 diff --git a/.crow/prune-stale-flat-binaries.yaml b/.crow/prune-stale-flat-binaries.yaml index 500f008..79ca003 100644 --- a/.crow/prune-stale-flat-binaries.yaml +++ b/.crow/prune-stale-flat-binaries.yaml @@ -36,8 +36,6 @@ variables: options: - none - all - - alpine-322-amd64 - - alpine-322-arm64 - alpine-323-amd64 - alpine-323-arm64 - alpine-324-amd64 @@ -76,14 +74,6 @@ labels: matrix: include: - - OS: alpine-322 - ARCH: amd64 - CODENAME: alpine322 - IMG: alpine:3.22 - - OS: alpine-322 - ARCH: arm64 - CODENAME: alpine322 - IMG: alpine:3.22 - OS: alpine-323 ARCH: amd64 CODENAME: alpine323 diff --git a/.crow/rebuild-abi-gap.yaml b/.crow/rebuild-abi-gap.yaml index 289781d..71ade22 100644 --- a/.crow/rebuild-abi-gap.yaml +++ b/.crow/rebuild-abi-gap.yaml @@ -39,8 +39,6 @@ variables: options: - none - all - - alpine-322-amd64 - - alpine-322-arm64 - alpine-323-amd64 - alpine-323-arm64 - alpine-324-amd64 @@ -80,14 +78,6 @@ labels: matrix: include: - - OS: alpine-322 - ARCH: amd64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - - OS: alpine-322 - ARCH: arm64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - OS: alpine-323 ARCH: amd64 R_VERSION: 4.5.3 diff --git a/.crow/reindex.yaml b/.crow/reindex.yaml index 71bca2c..803d9a5 100644 --- a/.crow/reindex.yaml +++ b/.crow/reindex.yaml @@ -24,8 +24,6 @@ variables: options: - none - all - - alpine-322-amd64 - - alpine-322-arm64 - alpine-323-amd64 - alpine-323-arm64 - alpine-324-amd64 @@ -55,14 +53,6 @@ labels: matrix: include: - - OS: alpine-322 - ARCH: amd64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - - OS: alpine-322 - ARCH: arm64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - OS: alpine-323 ARCH: amd64 R_VERSION: 4.5.3 diff --git a/.crow/repair-built-stamp.yaml b/.crow/repair-built-stamp.yaml index e56e1e9..cc09586 100644 --- a/.crow/repair-built-stamp.yaml +++ b/.crow/repair-built-stamp.yaml @@ -16,7 +16,7 @@ # pipeline here gates on a variable named after itself for exactly that reason. # # crow pipeline create --branch main \ -# --var repair_built_stamp=arm64 --var OS=alpine --var OS_VERSION=3.22 \ +# --var repair_built_stamp=arm64 --var OS=alpine --var OS_VERSION=3.23 \ # --var R_VERSION=4.5.3 --var dry_run=true devxy/build-cran-binaries variables: # Gates this pipeline. A manual pipeline creation instantiates every file in @@ -37,9 +37,8 @@ variables: - ubuntu default: alpine OS_VERSION: - description: 'OS image tag. Must match OS (alpine: 3.22/3.23/3.24; redhat: 8/9/10; ubuntu: jammy/noble/resolute).' + description: 'OS image tag. Must match OS (alpine: 3.23/3.24; redhat: 8/9/10; ubuntu: jammy/noble/resolute).' options: - - '3.22' - '3.23' - '3.24' - '8' @@ -48,7 +47,7 @@ variables: - 'jammy' - 'noble' - 'resolute' - default: '3.22' + default: '3.23' R_VERSION: description: 'R version whose stamp the slot should advertise.' options: diff --git a/.crow/repair-unsafe-flat-objects.yaml b/.crow/repair-unsafe-flat-objects.yaml index 9a57107..e0625c0 100644 --- a/.crow/repair-unsafe-flat-objects.yaml +++ b/.crow/repair-unsafe-flat-objects.yaml @@ -22,8 +22,6 @@ variables: options: - none - all - - alpine-322-amd64 - - alpine-322-arm64 - alpine-323-amd64 - alpine-323-arm64 - alpine-324-amd64 @@ -53,14 +51,6 @@ labels: matrix: include: - - OS: alpine-322 - ARCH: amd64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - - OS: alpine-322 - ARCH: arm64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - OS: alpine-323 ARCH: amd64 R_VERSION: 4.5.3 diff --git a/.crow/trial-build-registry.yaml b/.crow/trial-build-registry.yaml index 2195423..7826d3e 100644 --- a/.crow/trial-build-registry.yaml +++ b/.crow/trial-build-registry.yaml @@ -38,14 +38,6 @@ labels: matrix: include: - - OS: alpine-322 - ARCH: amd64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - - OS: alpine-322 - ARCH: arm64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - OS: alpine-323 ARCH: amd64 R_VERSION: 4.5.3 diff --git a/.crow/verify-repo-routing.yaml b/.crow/verify-repo-routing.yaml index 07e67ec..b20c993 100644 --- a/.crow/verify-repo-routing.yaml +++ b/.crow/verify-repo-routing.yaml @@ -18,8 +18,6 @@ variables: options: - none - all - - alpine-322-amd64 - - alpine-322-arm64 - alpine-323-amd64 - alpine-323-arm64 - alpine-324-amd64 @@ -49,14 +47,6 @@ labels: matrix: include: - - OS: alpine-322 - ARCH: amd64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - - OS: alpine-322 - ARCH: arm64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - OS: alpine-323 ARCH: amd64 R_VERSION: 4.5.3 diff --git a/.crow/weekly-audit-missing.yaml b/.crow/weekly-audit-missing.yaml index 25875da..2796a47 100644 --- a/.crow/weekly-audit-missing.yaml +++ b/.crow/weekly-audit-missing.yaml @@ -15,8 +15,6 @@ variables: options: - none - all - - alpine-322-amd64 - - alpine-322-arm64 - alpine-323-amd64 - alpine-323-arm64 - alpine-324-amd64 @@ -48,14 +46,6 @@ labels: matrix: include: - - OS: alpine-322 - ARCH: amd64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - - OS: alpine-322 - ARCH: arm64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - OS: alpine-323 ARCH: amd64 R_VERSION: 4.5.3 diff --git a/.crow/weekly-rebuild-missing.yaml b/.crow/weekly-rebuild-missing.yaml index 9639792..955476e 100644 --- a/.crow/weekly-rebuild-missing.yaml +++ b/.crow/weekly-rebuild-missing.yaml @@ -25,8 +25,6 @@ variables: options: - none - all - - alpine-322-amd64 - - alpine-322-arm64 - alpine-323-amd64 - alpine-323-arm64 - alpine-324-amd64 @@ -58,42 +56,6 @@ labels: matrix: include: - - OS: alpine-322 - ARCH: amd64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - SPLIT_INTO: 3 - SPLIT_INDEX: 1 - - OS: alpine-322 - ARCH: amd64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - SPLIT_INTO: 3 - SPLIT_INDEX: 2 - - OS: alpine-322 - ARCH: amd64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - SPLIT_INTO: 3 - SPLIT_INDEX: 3 - - OS: alpine-322 - ARCH: arm64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - SPLIT_INTO: 3 - SPLIT_INDEX: 1 - - OS: alpine-322 - ARCH: arm64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - SPLIT_INTO: 3 - SPLIT_INDEX: 2 - - OS: alpine-322 - ARCH: arm64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - SPLIT_INTO: 3 - SPLIT_INDEX: 3 - OS: alpine-323 ARCH: amd64 R_VERSION: 4.5.3 diff --git a/.crow/weekly-rebuild-reindex.yaml b/.crow/weekly-rebuild-reindex.yaml index 66603e3..698f503 100644 --- a/.crow/weekly-rebuild-reindex.yaml +++ b/.crow/weekly-rebuild-reindex.yaml @@ -20,8 +20,6 @@ variables: options: - none - all - - alpine-322-amd64 - - alpine-322-arm64 - alpine-323-amd64 - alpine-323-arm64 - alpine-324-amd64 @@ -58,14 +56,6 @@ labels: matrix: include: - - OS: alpine-322 - ARCH: amd64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - - OS: alpine-322 - ARCH: arm64 - R_VERSION: 4.5.3 - IMG: alpine:3.22 - OS: alpine-323 ARCH: amd64 R_VERSION: 4.5.3 diff --git a/local/packages-to-build.R b/local/packages-to-build.R index ead73b8..31b667f 100644 --- a/local/packages-to-build.R +++ b/local/packages-to-build.R @@ -12,11 +12,11 @@ library(progressr, quietly = TRUE) suppressPackageStartupMessages(library(data.table)) # Sys.setenv("OS" = "alpine") -# Sys.setenv("OS_VERSION" = "3.22") +# Sys.setenv("OS_VERSION" = "3.23") # Sys.setenv("ARCH" = "arm64") arch <- Sys.getenv("ARCH") -# target: alpine-322, ubuntu-2404, redhat-9, etc. +# target: alpine-323, ubuntu-2404, redhat-9, etc. platform <- paste( Sys.getenv("OS"), gsub("[.]", "", Sys.getenv("OS_VERSION")),