From d931d8e9e9ce9db5c29d6c7fc78f3be316f5ee0d Mon Sep 17 00:00:00 2001 From: magges Date: Mon, 13 Jul 2026 21:53:59 +0000 Subject: [PATCH] release: v0.1.5 Fixes a real bug in scripts/release.sh's per-package entity matching found while cutting this release: "podman"'s own glob also matched podman-compose's file (podman is a literal prefix of podman-compose), and find | head -n1's unsorted output order let podman-compose's package silently win the "podman" entity on this run. Now explicitly skips any match that actually belongs to a different, more specific component name also in the COMPONENTS list. Co-Authored-By: Claude Sonnet 5 --- CHANGELOG.md | 2 ++ plugin/podman.plg | 28 ++++++++++++++-------------- scripts/release.sh | 26 +++++++++++++++++++++++++- 3 files changed, 41 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 13e964d..a723689 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ see [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md#52-build-strategie)). ## [Unreleased] +## [0.1.5] - 2026-07-13 + ### Added - Containers panel: folders to group containers (name + optional icon URL), purely cosmetic organizational metadata stored in the plugin's diff --git a/plugin/podman.plg b/plugin/podman.plg index 35b9315..3194db8 100644 --- a/plugin/podman.plg +++ b/plugin/podman.plg @@ -50,7 +50,7 @@ - + @@ -69,7 +69,7 @@ - + - + @@ -133,7 +133,7 @@ every Compose panel action fails outright on a clean install. --> - + - - - + + + ]> )|\1${RELEASE_BASE_URL}\2 for name in "${COMPONENTS[@]}"; do # dist/ contains files like podman-6.0.1-x86_64-1_unraidpodman.txz — find # the one for this component (there should be exactly one per release). - txz_path=$(find "$DIST_DIR" -maxdepth 1 -name "${name}-*-*-*.txz" | head -n1) + # NOT `find ... | head -n1`: "podman"'s own glob (podman-*-*-*.txz) also + # matches podman-compose's file (podman-compose-*-*-*.txz), since + # "podman" is a literal prefix of "podman-compose" — find's output order + # is filesystem-dependent, not sorted, so head -n1 silently picked + # podman-compose's package for the "podman" entity on one real run, + # publishing a release whose podman.plg pointed at the wrong .txz for + # the actual podman package entirely. Explicitly skip any match that + # actually belongs to a DIFFERENT, more specific name also in + # COMPONENTS (i.e. itself prefixed by another component's name). + txz_path="" + for candidate in "$DIST_DIR"/"${name}"-*-*-*.txz; do + [ -e "$candidate" ] || continue + base=$(basename "$candidate") + belongs_to_other=0 + for other in "${COMPONENTS[@]}"; do + if [ "$other" != "$name" ] && [ "${base#"$other"-}" != "$base" ]; then + belongs_to_other=1 + break + fi + done + if [ "$belongs_to_other" -eq 0 ]; then + txz_path="$candidate" + break + fi + done if [ -z "$txz_path" ]; then echo "!! No built .txz found for component '$name' in $DIST_DIR" >&2 echo "!! Did scripts/build-packages.sh run successfully for it?" >&2