October 19, 2019

Cross-Platform Support Added with version 0.16.0

Dorian Pula @dorianp

I released version 0.16.0, that added cross-platform support for Linux, macOS (OS X), FreeBSD and Windows Subsystem for Linux (WSL) 2.0. Also I added stability fixes as a part of the work, and adding tests to be able to test if everything works between platforms.

Most of the effort went into setting up a cross-compilation toolchain, figuring out what common functionality I could rely on between platforms, and finding a simple way to package the system. Ideally I would of created separate installable packages for each OS, but that would be not practical for a sole developer. Maybe in the future, I might employ someone to work with the fiddly bits of packaging. Instead I developed a cross-platform installer (in bash no less), and avoided distributing more than a single binary to the user.

I learned that developing packaging a desktop/CLI utility is still a finky, annoying thing, and I had to compromise to get something shipped in a reasonable amount of time. Also there are always a bunch of fiddly work needed between releases. Thankfully coming up with a consistent setup for building, testing and releasing on multiple platforms is a worthwhile investment if you are developing something with a downloadable component.