From 55a8474c3d11ce0bd851a631233f16790cfdbf16 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 4 Nov 2026 08:26:06 +0000 Subject: [PATCH 1/2] Put the Bun of packageManager into the Bun group, read once Renovate's bun manager already reads "packageManager": "bun@x.y.z" of app/package.json as the npm package `bun`. The Bun group matched only oven-sh/bun (the regex managers), so `bun` went into the monthly, self-merging minor-patch group without the Flatpak's Bun binaries, and the regex manager for the same line edited it a second time. Drop that regex manager and add `bun` to the group, as in firsttris/fernsicht#18 and firsttris/stellwerk#26. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Y3rdfbWb1xDUdPRng7TX9Z --- .github/renovate.json5 | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 6bf3a82..5162fdc 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -46,16 +46,6 @@ datasourceTemplate: "github-tags", versioningTemplate: "loose", }, - { - // "packageManager": "bun@x.y.z": the Bun of every workflow (bun-version-file, and the - // npm-installed Bun of the Playwright jobs) - customType: "regex", - managerFilePatterns: ["/^app/package\\.json$/"], - matchStrings: ['"packageManager": "bun@(?\\d+\\.\\d+\\.\\d+)"'], - depNameTemplate: "oven-sh/bun", - datasourceTemplate: "github-releases", - extractVersionTemplate: "^bun-v(?.+)$", - }, { // The Flatpak's Bun binaries (their sha256 comes from renovate-flatpak.yml) customType: "regex", @@ -104,8 +94,10 @@ }, { // Bun: app/package.json's packageManager and the Flatpak's Bun binaries in one PR: the - // Flatpak builds offline with the Bun of its manifest. - matchPackageNames: ["oven-sh/bun"], + // Flatpak builds offline with the Bun of its manifest. Renovate's bun manager reads + // "packageManager": "bun@x.y.z" itself, as the npm package `bun` (no regex manager needed); + // without it here that one would go into the monthly group without the Flatpak's Bun. + matchPackageNames: ["bun", "oven-sh/bun"], enabled: true, groupName: "Bun", sourceUrl: "https://github.com/oven-sh/bun", From ac9ad0f7c756adc3567341f95074257fee464e37 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 4 Nov 2026 08:26:06 +0000 Subject: [PATCH 2/2] Toolbox: install the Bun of packageManager even when another Bun is there packaging/toolbox.sh skipped the install whenever any Bun was on PATH, so a toolbox kept an older Bun than CI (setup-bun with bun-version-file) and the Renovate Bun PR, and with "packageManager" written without a space it handed the installer an empty tag (`bun-v`), i.e. the newest Bun. Compare the installed version with packageManager, read it with an optional space and stop when none is found. The installer's $1 is the release tag (src/runtime/cli/install.sh in oven-sh/bun). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Y3rdfbWb1xDUdPRng7TX9Z --- packaging/toolbox.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packaging/toolbox.sh b/packaging/toolbox.sh index 22fdebc..82587cf 100755 --- a/packaging/toolbox.sh +++ b/packaging/toolbox.sh @@ -8,7 +8,12 @@ toolbox run -c "$name" sudo dnf install -y \ webkit2gtk4.1-devel openssl-devel curl wget file libayatana-appindicator-gtk3-devel librsvg2-devel \ gcc gcc-c++ make patchelf unzip git just pipewire-utils rpm-build toolbox run -c "$name" bash -c 'command -v cargo || curl --proto "=https" --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y' -# Bun, the version in app/package.json's packageManager (its installer needs unzip) -bun_version=$(sed -n 's/.*"packageManager": "bun@\([0-9.]*\)".*/\1/p' "$(dirname "$0")/../app/package.json") -toolbox run -c "$name" bash -c "command -v bun || curl -fsSL https://bun.sh/install | bash -s bun-v$bun_version" +# Bun, the version in app/package.json's packageManager (what CI runs), read without jq or node; +# installed unless that version is there already (the official installer takes the release tag +# and needs unzip) +bun_version=$(sed -n 's/.*"packageManager": *"bun@\([0-9][^"]*\)".*/\1/p' "$(dirname "$0")/../app/package.json") +[[ -n "$bun_version" ]] || { echo "No Bun version in app/package.json (packageManager)." >&2; exit 1; } +printf -v install_bun '[ "$(PATH="$HOME/.bun/bin:$PATH" bun --version 2>/dev/null)" = %q ] || curl -fsSL https://bun.sh/install | bash -s %q' \ + "$bun_version" "bun-v$bun_version" +toolbox run -c "$name" bash -c "$install_bun" echo "Done. Enter it with 'toolbox enter $name', then 'just setup && just'."