SuperCuber / dotter

A dotfile manager and templater written in rust 🦀
The Unlicense
900 stars 48 forks source link

[FEATURE] Add a release target for `x86_64-pc-windows-gnu` #157

Closed FlippingBinary closed 11 months ago

FlippingBinary commented 11 months ago

Is your feature request related to a problem? Please describe. It does not seem to be possible to create a winget manifest to install Dotter automatically on Windows computers (rather ironically) because of the Microsoft Visual C++ runtime requirement. It isn't included in Windows Sandbox environments, so the manifest tests fail.

Describe the solution you'd like Please add x86_64-pc-windows-gnu as a built target. The executable will be larger because it includes everything it needs to run, but it will be truly portable on Windows computers. The filename could follow the existing pattern for the msvc version, using gnu instead of msvc.

Describe alternatives you've considered I've considered creating an installer for Windows that first installs the Microsoft Visual C++ runtime if it's missing.

Additional context I'm not sure how the scoop version handles installation on computers without the runtime, but a dependency-free version of the executable might be useful for that package manager as well. I would just prefer not to install another package manager when Windows already has one that works better (I've had weird corruption issues with scoop, so I'm a bit biased against it). Additionally, the winget package publishing workflow goes through virus testing and installation validation by Microsoft to ensure it actually works and is likely safe to install.

Also, there is a GitHub Action for publishing new versions to winget if you want to include it in a CI/CD pipeline.

FlippingBinary commented 11 months ago

Whelp, I just learned that winget manifests actually can specify dependencies and it works just fine when MSVC is listed as one. Sorry about the noise.