refactor(build): unify release artifact zip names behind one source - #94
Merged
Conversation
Our zip names had drifted: the Android module was kasumi-proxy-<ver>,
the desktop portables were kasumi-proxy-<ver>-{windows,linux}-portable,
and the nightly Windows portable dropped the platform entirely
(kasumi-proxy-<ver>-portable) — variant before vs. after the version,
'v' kept in one place and stripped in another, with the format
hand-written in package-release.sh, gen-update-json.sh and both
workflows.
Add scripts/artifact-name.sh as the single source of truth: given a
variant it prints kasumi-proxy-<variant>-<version>.zip with the version
read verbatim from module.prop. Every producer now goes through it:
- package-release.sh — the module zip default (now kasumi-proxy-module-…)
- gen-update-json.sh — the Magisk updateJson zipUrl, which MUST match the
uploaded asset; the rename would otherwise 404 in-app updates
- release.yml / nightly.yml — the portable-zip steps; the release module
upload uses a glob so the workflow never re-states the name
Also brings the nightly build in line: it now publishes a Linux portable
zip (only Windows had one) and drops the dead BUILD_NAME env that
package-release.sh never read.
Resulting names:
kasumi-proxy-module-vX.Y.Z.zip
kasumi-proxy-windows-portable-vX.Y.Z.zip
kasumi-proxy-linux-portable-vX.Y.Z.zip
12 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Our release zip names had drifted apart, with the format hand-written in four places:
kasumi-proxy-vX.Y.Z.zipkasumi-proxy-X.Y.Z-windows-portable.zipkasumi-proxy-X.Y.Z-linux-portable.zipkasumi-proxy-X.Y.Z-portable.zip(no platform)Inconsistencies: variant before the version for the module but after for the portables;
vprefix kept for the module, stripped for the desktop builds; the nightly Windows portable missing its platform; and no Linux portable from the nightly at all.This adds
scripts/artifact-name.shas the single source of truth (mirroringapp-version.sh): given a variant it printskasumi-proxy-<variant>-<version>.zip, version read verbatim frommodule.prop. Every producer now goes through it:package-release.sh— the Android module zip default (nowkasumi-proxy-module-…)gen-update-json.sh— the Magisk/KernelSUupdateJsonzipUrl, which must match the uploaded asset. Renaming the module zip without this would point in-app updates at a 404 — the rename and this fix have to ship together.release.yml/nightly.yml— the portable-zip steps; the release module-upload step uses abuild/*.zipglob so the workflow never re-states the name.Also brings the nightly build in line: it now publishes a Linux portable zip (only Windows had one), and drops the dead
BUILD_NAMEenv thatpackage-release.shnever read.Resulting names — one scheme,
variantbeforeversion,vkept everywhere:Affected layer
frontend/— React Web UIcrates/·src-tauri/— Rust core / backend / Tauri desktopmodule/— Android installable zip (thin launcher over the Rust daemon)scripts/— build / release helpers.github/Verification
shellcheckclean onartifact-name.sh,package-release.sh,gen-update-json.shactionlint(v1.7.12) clean onrelease.yml+nightly.yml(incl. its shellcheck pass over the editedrun:blocks)artifact-name.sh {module,windows-portable,linux-portable}prints the expected namesgen-update-json.shregeneratesupdate.jsonwithzipUrl→kasumi-proxy-module-v0.4.1.zip(matches the uploaded asset); the version-specificupdate.jsonitself is left untouched (CI regenerates it on release)Checklist
frontend/src/generated/not touchedNotes for reviewers
The Android module rename is the user-facing change; the
gen-update-json.shedit is the non-obvious half that keeps in-app updates working.update.jsonin the repo still references the old name — that file is regenerated and committed by the release workflow, so it self-corrects on the next release rather than being hand-edited here.