Marketplace generate-sparkle-appcast
Generate Mos Sparkle appcast.xml from the latest build zip and recent git changes (since a given commit), then sync to docs/ for publishing.
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/caldis/generate-sparkle-appcast" ~/.claude/skills/aiskillstore-marketplace-generate-sparkle-appcast && rm -rf "$T"
manifest:
skills/caldis/generate-sparkle-appcast/SKILL.mdsource content
Use this skill when the user wants to publish a new Mos release (stable or beta) and needs:
- Sparkle
generated from the notarizedappcast.xml
in.zipbuild/ - Two hosted release notes pages (Chinese + English)
- Sparkle to show Chinese for all
locales (Simplified/Traditional/HK/TW), and English for everything elsezh*
Inputs
: the previous release commit (exclusive). Used to generate release notes from changes since that commit.--since <commit>- A notarized+zipped app in
named:build/
(stable)Mos.Versions.<version>-<YYYYMMDD>.<num>.zip
(beta)Mos.Versions.<version>-beta-<YYYYMMDD>.<num>.zip
- Sparkle Ed25519 private key at
(gitignored).sparkle_private_key.txt - Optional env:
(defaultRELEASE_NOTES_BASE_URL
)https://mos.caldis.me/release-notes
/RELEASE_NOTES_ZH_FILE
to point to pre-written HTML files (otherwise the script writes toRELEASE_NOTES_EN_FILE
)build/release-notes/<tag>.*.html
What to do
- Run the skill script:
bash .codex/skills/generate-sparkle-appcast/scripts/generate_appcast.sh --since <commit>
- Confirm outputs:
(generated)build/appcast.xml
(copied fordocs/appcast.xml
)mos.caldis.me/appcast.xml
+build/release-notes/<tag>.zh.html
(generated)build/release-notes/<tag>.en.html
+docs/release-notes/<tag>.zh.html
(copied for hosting)docs/release-notes/<tag>.en.html
- Ensure the GitHub Release tag and asset name match the URL inside the generated appcast.
Notes
- The script emits two
entries:<sparkle:releaseNotesLink>
points to the Chinese page, and the default link points to the English page.xml:lang="zh" - You can pre-create/edit
andbuild/release-notes/<tag>.zh.html
before running the script; the script will reuse them if present, otherwise it generates a default template from git history.build/release-notes/<tag>.en.html - If the zip changes in any way (repacked/re-signed), you must re-run the script to regenerate
.sparkle:edSignature