Originally created by: Akarsh-Hegde
Staging's windows-release job has never succeeded - three failures, zero passes:
29734394528 failure
29727265408 failure
29698684026 failure
[#490] fixed the tray build, which let run 29734394528 reach a second, older bug for the first time. This is not a regression from the parallel-build restructure (#494); that work only made the failure reachable.
merge-windows-updater.py prints a ✓, and Python on windows-latest defaults stdout to the cp1252 console codepage, which cannot encode it:
UnicodeEncodeError: 'charmap' codec can't encode character '✓' in position 0
The timing is what made it costly. The exception landed after the merged manifest was written but before the caller could gh release upload it - so the merge accomplished nothing, latest.json shipped with no windows-x86_64 key, and Windows could not auto-update. A success message failed the step it was reporting success from.
The error paths were worse. ✗ in die() plus em-dashes in three of its messages meant any of this script's safety checks - the ones guarding against a Windows-side bug corrupting macOS auto-update - would surface as a traceback instead of the explanation it was trying to give, at exactly the moment someone needed to read it.
All output is ASCII now. The workflow also sets PYTHONIOENCODING: "utf-8" so the class cannot return via some future character.
Fixed in the script, not just the caller: production's windows-release runs this same script and would have hit the identical failure the moment its own build started passing. That is now pre-empted rather than waiting to be discovered on the customer branch.
v1.72.0-staging.5 produced Meridian_1.71.0_x64-setup.exe.
The job checks out the release tag, and on staging that tag points at a tree where the version was never committed: .releaserc.staging.json has no @semantic-release/git plugin, so the stamped manifests exist only in the macOS runner's working tree and die with it.
The consequence is a loop, not just a cosmetic mismatch: the manifest advertises 1.72.0-staging.5, a Windows app updates, the installed app reports 1.71.0, the updater sees the same update still pending, and it goes round again.
The job now runs set-version.sh before building. Production is unaffected - its config does carry the git plugin, so its tag points at the version-bump commit and the tree is already stamped. Verified:
v1.72.0-staging.5 -> tauri.conf.json says 1.71.0 (unstamped)
v1.73.0 -> tauri.conf.json says 1.73.0 (stamped)
windows-x86_64, darwin entries byte-identical afterwardsStamp the version is ordered before the buildThis is the third distinct Windows fault found in one day (the cfg-gating in [#490], then these two). Every one was invisible until the fault ahead of it was cleared. Worth treating the next green Windows run as the first real signal, not a formality - and it is the gate on [#499], the production port.
🤖 Generated with Claude Code
Originally posted by: coderabbitai[bot]
✨ Finishing Touches
🧪 Generate unit tests (beta)
- [ ] Create PR with unit tests - [ ] Commit unit tests in branch `fix/staging-windows-installer`Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
❤️ Share
- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)Comment
@coderabbitai helpto get the list of available commands.Ticket changed by: Akarsh-Hegde