This repo ships on winget and other channels, but has no RELEASING.md, so the release loop only exists in whoever's head last ran it. xray, xled, and xshape each have one — use those as the pattern.
It should document the actual pipeline for this repo end to end: version bump, tag and push, what CI does on its own versus what needs a manual gh workflow run dispatch, and every distribution channel the release feeds.
The winget step is the part currently undocumented everywhere. winget stores one manifest per version, so every release needs its own PR — there is no update in place:
komac update Excelano.NAME --version 0.1.1 \
--urls https://github.com/excelano/REPO/releases/download/v0.1.1/ASSET \
--submit
Check the real Windows asset name on an existing release before writing it down; it doesn't always match the command name.
Worth carrying over from xray/RELEASING.md step 6: a version update to an already-merged package usually merges without a human, while a new package waits on a volunteer moderator for days; and a pushed v* tag is spent, because the merged manifest pins InstallerSha256 and re-cutting a tag breaks every install of that version with nothing on the server side to stop you.
Recurring winget validation failures (Validation-Defender-Error, Validation-Executable-Error, the Policy-Test-2.x content flags) have recipes in ~/notes/build_release_gotchas.md.
This repo ships on winget and other channels, but has no
RELEASING.md, so the release loop only exists in whoever's head last ran it.xray,xled, andxshapeeach have one — use those as the pattern.It should document the actual pipeline for this repo end to end: version bump, tag and push, what CI does on its own versus what needs a manual
gh workflow rundispatch, and every distribution channel the release feeds.The winget step is the part currently undocumented everywhere. winget stores one manifest per version, so every release needs its own PR — there is no update in place:
Check the real Windows asset name on an existing release before writing it down; it doesn't always match the command name.
Worth carrying over from
xray/RELEASING.mdstep 6: a version update to an already-merged package usually merges without a human, while a new package waits on a volunteer moderator for days; and a pushedv*tag is spent, because the merged manifest pinsInstallerSha256and re-cutting a tag breaks every install of that version with nothing on the server side to stop you.Recurring winget validation failures (
Validation-Defender-Error,Validation-Executable-Error, thePolicy-Test-2.xcontent flags) have recipes in~/notes/build_release_gotchas.md.