haimgel / display-switch

Turn a $30 USB switch into a full-featured multi-monitor KVM switch
https://haim.dev/posts/2020-07-28-dual-monitor-kvm/
MIT License
2.83k stars 110 forks source link

Provide pre-built binaries/installers #75

Closed MrPointer closed 2 years ago

MrPointer commented 2 years ago

Hi, first of all, great project! Thanks a lot for creating it, really makes lives easier 😀

I have just "installed" the app on one of my Windows machines, and I was very surprised to see that it's actually required to build it from source to make it work. OK then, so shall be done. However, it seems that getting rust to work, at least on Windows, is not such a trivial task...
I failed on my first try to build the app because supposedly I was missing MSVC build tools. I had Visual Studio installed already, so I went to install the 2019 C++ build tools for x86/64 from the VS Installer, just to find out that I was still failing the build, even after a restart to Windows. Further exploration on the internet has discovered that there's no other option but to install both the build tools and the entire Win SDK, as well as some additional components. All of that sums up closely to ~5GB of packages, which I surely don't need, only to be able to build this app from source. Ah, and did I mention that it took an entire hour? ☹

One characteristic of good software is that it's easily deployable. Unfortunately, I can't say that about this one.
I think it'd be really nice to upload pre-built binaries for all platforms (although I guess Windows users would benefit the most) as part of a release, possibly automated entirely by a CI/CD pipeline.
I don't know how Rust works regarding runtime, i.e. whether it matters what toolchain the app has been built with, but if that's a problem, an array of all possible binaries seems like an option to me.
With that being said, running the app might not be possible without an already-installed VC runtime, and that's where an installer/bundler comes in.

I'm no expert in this field myself so I can't promise anything about implementing it, I'm just opening this issue as a feature request for now, open for discussion before anything is actually done.

jrr commented 2 years ago

They're not linked from the releases page, but there are artifacts available under the "Actions" tab up there ☝️ . (probably want the latest from the main branch)

It's been a while, but the Windows build worked last time I tried!

MrPointer commented 2 years ago

@jrr Awsome!!!
How about changing the topic of this issue to be "Link CI/CD artifacts to Releases"? Seems like the only missing step here 🙂

haimgel commented 2 years ago

This is a good point. I did link to the artifacts in the release notes, will just attach the binaries next time.

MrPointer commented 2 years ago

@haimgel Only seen that now, it got lost somewhere in the pile of text, definitely didn't expect it to be there 😅.
It's a rather annoying request on my side, but I believe it will surely be worth it, for many other users as well! Thanks again

isrbaral commented 2 years ago

Hi

It appears the binaries for build 1.1.0 expired, later builds either don't run at all or I'm doing something wrong. I really appreciate the work that's gone into this and I hope you continue to work on it. Can you confirm that the display_switch.exe should show up in task manager?

Specifically, I'm trying to get this to work on windows 10. I've tried on two different computers and I tried running the latest build from two months ago and the oldest non-expired build (from 3 months ago) neither appears to run, though I might just be doing something wrong.

Thanks