Millie 0.9.6, or “installers are hard”
I’ve been terribly busy with work lately and so I haven’t really had much time for my side projects. I did however managed to get a new version of Millie out of the door.
Changes are mostly infrastructural though.
User “visible” changes:
- Add .deb installation files for Linux
- Add support for electron-builder
- New settings system
- Fix missing icon on Win64 installer
- Split generation of 32- and 64-bit installers on windows
Minor changes and fixes
- Merge branch ‘builder’ of github.com:robteix/millie
- Ignore backups
- Add missing dependency
- Ignore main.js.map
- Remove warning on unknown props
- Move background declaration to MillieView
- Stop loading old settings
- Add script to generate release files
- Remove log file left from first commit
That said, this release reminded me of how hard installers are to get right. Actually, they’re hard to do at all.
MacOS installers can basically only be made on macOS due to there not seeming to be decent implementations of DMG anywhere else. You can compile and create a ZIP file with your binaries, sure, but who wants that? To create a nice DMG, you need to be on macOS.
Windows is also hard to do in other systems. Not impossible, just annoying. You can get by with Mono in Linux or macOS but you need to get around a bug here and there. It works though.
Linux installers (meaning .dpkg and .rpm) are easy to do in macOS but barely doable on Windows.
In practice you end up having to create each installer on its own environment. Linux and Windows are easy to do with VMs, but you’ll need a macOS box eventually.
Windows has its own share of problems though. I hear they’re working on finally fixing their dumb limitations on path length but it’s definitely not there yet. This is important when working with things like npm that create paths hundreds of levels deep. Trying to something simple like deleting a node_modules directory on Windows is an exercise in frustration.
The installers for this release were all created in a Linux VM though. It was the closest thing I got to building it all in a single platform. No DMG for macOS though.