Skip to content

Add Windows installer support - #32

Open
Shashankgowda2003 wants to merge 2 commits into
mrvigneshvt:mainfrom
Shashankgowda2003:feature/windows-installer
Open

Add Windows installer support #32
Shashankgowda2003 wants to merge 2 commits into
mrvigneshvt:mainfrom
Shashankgowda2003:feature/windows-installer

Conversation

@Shashankgowda2003

Copy link
Copy Markdown

Summary

  • Added Windows installer support.
  • Verified the installer installs successfully.
  • Tested that the application launches and works correctly.

Testing

  • Installer installation
  • Application launch
  • Basic functionality verified

@mrvigneshvt

Copy link
Copy Markdown
Owner

Thanks for getting the Windows build working, Shashank! 🪟 The .exe installs and launches, so the hard part is done. A couple of notes to get this PR landed cleanly and to make Windows releases repeatable going forward.

On this PR

✅ Keep: src-tauri/gen/schemas/windows-schema.json — this is consistent with how we already track the other generated schemas (desktop-schema.json, linux-schema.json, android-schema.json, …), so it belongs.

⚠️ Please revert: package-lock.json. The only change there strips the "libc": ["glibc"] / ["musl"] fields off the @rollup/rollup-linux-* optional deps. That's not an installer change — it's churn from running npm install with an older npm version. It weakens npm's platform targeting for the Linux native binaries and is unrelated to Windows, so let's not ship it.

git checkout main -- package-lock.json
git commit -m "Revert unintended package-lock libc churn"
git push

After that, this PR is a clean one-file add and ready to merge. 👍

How to contribute Windows releases going forward

Good news: no installer config changes are neededtauri.conf.json already has "bundle": { "targets": "all" }, so building on Windows produces the NSIS installer automatically. The workflow is:

  1. Build on a Windows machine (or Windows CI runner):

    npm ci
    npm run tauri build

    The installer lands at src-tauri/target/release/bundle/nsis/Cryptainer_<version>_x64-setup.exe.

  2. Don't commit the .exe or any target/ output — binaries go to a GitHub Release, not the repo. The only source artifact a Windows build legitimately adds is gen/schemas/windows-schema.json.

  3. Code-sign the installer before publishing. An unsigned .exe triggers Windows SmartScreen ("unknown publisher") and scares users off. If we don't have a signing cert yet, let's at least note it in the release.

  4. Publish to the main repo's Releases (tagged off main), so all platform binaries live in one place rather than on a fork.

If you want, the cleanest long-term fix is a GitHub Actions release workflow that builds Windows/Linux/macOS on tag push and attaches the binaries automatically — happy to pair on that next.

🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants