installer-smoke went red on main the moment the canary started carrying punktfunk-icons (#475): the smoke switches a canary box to stable, the pacman switch path reinstalls every installed punktfunk package by name on the target channel (switch_pkgs), and stable 0.34.0 predates the split —
error: target not found: punktfunk-icons
— which aborts the whole transaction and the installer with it. The packages themselves are fine; the switch logic was the gap, and it is generic: any package introduced on one channel breaks every switch toward the channel that does not have it yet, until the next release closes the gap.
The apt path has had the right contract all along — "a package the target channel does not carry keeps what it has", resolved per package via madison. The pacman path now mirrors it: after the repo swap and -Sy, each candidate is checked with pacman -Si (read-only, and by then the target channel is the only punktfunk source), kept-back packages get a printed warning, and the transaction names only what the channel can deliver. --dry-run keeps the unfiltered set — no repo is configured there, and gate 7's textual expectations stay as they were.
In the smoke scenario the three packages downgrade cleanly and the orphaned punktfunk-icons sits harmlessly at its canary version until the next stable ships it. One corner is deliberately left open, not hidden: a canary box with the client installed switching down to a pre-split stable still collides on the brand SVG (the orphan owns the path, the 0.34 client ships it). That case self-heals at the 0.35.0 stable release; forcing it now would take -Rdd ordering games that are worse than the transient corner.
dnf is untouched: no rpm split package exists (rpm shares identical files by digest), so distro-sync has nothing to trip on.
Gates: bash -n, sh -n, and scripts/ci/check-docs-drift.sh pass.
installer-smoke went red on main the moment the canary started carrying `punktfunk-icons` (#475): the smoke switches a canary box to stable, the pacman switch path reinstalls **every installed punktfunk package by name** on the target channel (`switch_pkgs`), and stable 0.34.0 predates the split —
```
error: target not found: punktfunk-icons
```
— which aborts the whole transaction and the installer with it. The packages themselves are fine; the switch logic was the gap, and it is generic: any package introduced on one channel breaks every switch toward the channel that does not have it yet, until the next release closes the gap.
The apt path has had the right contract all along — *"a package the target channel does not carry keeps what it has"*, resolved per package via madison. The pacman path now mirrors it: after the repo swap and `-Sy`, each candidate is checked with `pacman -Si` (read-only, and by then the target channel is the only punktfunk source), kept-back packages get a printed warning, and the transaction names only what the channel can deliver. `--dry-run` keeps the unfiltered set — no repo is configured there, and gate 7's textual expectations stay as they were.
In the smoke scenario the three packages downgrade cleanly and the orphaned `punktfunk-icons` sits harmlessly at its canary version until the next stable ships it. One corner is deliberately left open, not hidden: a canary box **with the client installed** switching down to a pre-split stable still collides on the brand SVG (the orphan owns the path, the 0.34 client ships it). That case self-heals at the 0.35.0 stable release; forcing it now would take `-Rdd` ordering games that are worse than the transient corner.
dnf is untouched: no rpm split package exists (rpm shares identical files by digest), so `distro-sync` has nothing to trip on.
Gates: `bash -n`, `sh -n`, and `scripts/ci/check-docs-drift.sh` pass.
The pacman channel switch reinstalls every installed punktfunk
package on the target channel, verbatim — and punktfunk-icons exists
only where the icon split has shipped, so every canary→stable switch
died whole ("target not found", installer-smoke red). Filter the set
the way the apt path always has: a package the target channel does
not carry keeps what it has, with a warning. Self-heals at the next
stable release, which ships the package.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
installer-smoke went red on main the moment the canary started carrying
punktfunk-icons(#475): the smoke switches a canary box to stable, the pacman switch path reinstalls every installed punktfunk package by name on the target channel (switch_pkgs), and stable 0.34.0 predates the split —— which aborts the whole transaction and the installer with it. The packages themselves are fine; the switch logic was the gap, and it is generic: any package introduced on one channel breaks every switch toward the channel that does not have it yet, until the next release closes the gap.
The apt path has had the right contract all along — "a package the target channel does not carry keeps what it has", resolved per package via madison. The pacman path now mirrors it: after the repo swap and
-Sy, each candidate is checked withpacman -Si(read-only, and by then the target channel is the only punktfunk source), kept-back packages get a printed warning, and the transaction names only what the channel can deliver.--dry-runkeeps the unfiltered set — no repo is configured there, and gate 7's textual expectations stay as they were.In the smoke scenario the three packages downgrade cleanly and the orphaned
punktfunk-iconssits harmlessly at its canary version until the next stable ships it. One corner is deliberately left open, not hidden: a canary box with the client installed switching down to a pre-split stable still collides on the brand SVG (the orphan owns the path, the 0.34 client ships it). That case self-heals at the 0.35.0 stable release; forcing it now would take-Rddordering games that are worse than the transient corner.dnf is untouched: no rpm split package exists (rpm shares identical files by digest), so
distro-synchas nothing to trip on.Gates:
bash -n,sh -n, andscripts/ci/check-docs-drift.shpass.The pacman channel switch reinstalls every installed punktfunk package on the target channel, verbatim — and punktfunk-icons exists only where the icon split has shipped, so every canary→stable switch died whole ("target not found", installer-smoke red). Filter the set the way the apt path always has: a package the target channel does not carry keeps what it has, with a warning. Self-heals at the next stable release, which ships the package.