From f442797a86e845853c28dc22432a530560434488 Mon Sep 17 00:00:00 2001 From: asepharyana Date: Sun, 6 Sep 2026 00:54:33 +0700 Subject: [PATCH] fix(ci): bump only TeleUploader flake version, not Bun overlay prepare.mjs previously replaced the FIRST version="X" string in flake.nix, which is the Bun overlay override (line ~17), not the TeleUploader package version (pname = "teleuploader", line ~30). Store path derives from the TeleUploader version, so the Bun override got clobbered to the app version while the store path stayed at 1.1.1 -> deploy reused the old derivation and the VPS profile never advanced. Now prepare.mjs anchors on pname = "teleuploader" and bumps that block only, leaving the Bun 1.3.14 override intact. Verified: flake.nix keeps bun version=1.3.14, teleuploader version becomes the semver-version. Also restores bun overlay version=1.3.14 (was overwritten to 1.2.0). --- .semrel/prepare.mjs | 22 ++++++++++++++++++++-- flake.nix | 4 ++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/.semrel/prepare.mjs b/.semrel/prepare.mjs index 5681689..00c9e87 100644 --- a/.semrel/prepare.mjs +++ b/.semrel/prepare.mjs @@ -12,6 +12,11 @@ * while the VPS profile stayed on the old build. By bumping flake.nix's * `version` on every release, the Nix derivation always changes and the * store path is always fresh. + * + * IMPORTANT: only bump the TeleUploader package version (the block whose + * `pname = "teleuploader"` precedes it), never the Bun overlay version that + * appears earlier in the file. Store path is derived from the + * teleuploader package's `version`. */ import { readFileSync, writeFileSync } from 'node:fs'; @@ -27,9 +32,22 @@ writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`); const flakePath = 'flake.nix'; let flake = readFileSync(flakePath, 'utf8'); const target = nextVersion ?? pkg.version; -const replaced = flake.replace(/version = "\d+\.\d+\.\d+";/, `version = "${target}";`); + +const anchor = 'pname = "teleuploader";'; +const anchorIdx = flake.indexOf(anchor); +if (anchorIdx === -1) { + throw new Error(`prepare.mjs: TeleUploader pname anchor not found in ${flakePath}`); +} +const rest = flake.slice(anchorIdx); +const verMatch = rest.match(/(\s*)version = "\d+\.\d+\.\d+";/); +if (!verMatch) { + throw new Error(`prepare.mjs: could not locate TeleUploader version block in ${flakePath}`); +} +const replaced = + flake.slice(0, anchorIdx) + + rest.replace(/(\s*)version = "\d+\.\d+\.\d+";/, `$1version = "${target}";`); if (!replaced.includes(`version = "${target}";`)) { - throw new Error(`prepare.mjs: could not update version in ${flakePath} (pattern not found)`); + throw new Error(`prepare.mjs: replacement did not land in ${flakePath}`); } writeFileSync(flakePath, replaced); diff --git a/flake.nix b/flake.nix index 7600f8b..774b91f 100644 --- a/flake.nix +++ b/flake.nix @@ -14,7 +14,7 @@ overlays = [ (self: super: { bun = super.bun.overrideAttrs (old: rec { - version = "1.2.0"; + version = "1.3.14"; src = super.fetchzip { url = "https://github.com/oven-sh/bun/releases/download/bun-v1.3.14/bun-linux-x64.zip"; sha256 = "sha256:189kasncnfpq6q37q3w80dv2a92w79w20x2x6hf1fbkir5gyvzlb"; @@ -27,7 +27,7 @@ # TeleUploader package teleuploader = pkgs.stdenvNoCC.mkDerivation rec { pname = "teleuploader"; - version = "1.1.1"; + version = "1.2.0"; src = ./.;