Making Progress on Windows Installers for "Daily Betas"
This week, I started to learn the WiX Toolset (https://wixtoolset.org) to automate the creation of installers for Windows (things like "vgc-illustration-setup.exe"). It consists in writing quite ugly XML files, then tell WiX to compile these into an installer.
As I already mentioned in the last Tipeee update, for VPaint, I was using another product, called Advanced Installer. This other product is much nicer to use than WiX, but it requires me to open the GUI each time I want to create an installer. Instead, for VGC, I want everything to be fully automatic, so that each time I implement something, there is an installer automatically generated that sponsors can download on https://www.vgc.io. (By the way, don't forget to activate your account!)
I will call these "Daily Beta" versions, since they will be rather frequent. There may be some days without new versions, and some days with more than one version, so it's not going to be exactly "daily", but close enough. These are technically called "Development Builds", but I thought it was nicer to keep "Beta" in the name since it is a term that I believe more people are familiar with. And while not as technically correct as "Development Builds", the term "Beta" is somewhat correct in this case since they are actually distributed to users for testing. Traditionally, development builds stay internal to the software company and are never tested by actual users, while the term "beta" designates the first versions sent to actual users for testing.
All of this to say that now, I have to write a few ugly XML files. But in fact, since they were a little too ugly for my taste, I decided instead to write a Python script that automatically generates them. It's not finished yet but it's already working reasonably well, I'm quite happy with this method.
When will these daily betas be available?? What still needs to be done?
Unfortunately, there are a lot of things to take care of. I already took care of specifying all the VGC files that need to be installed and where, and created a nice icon file optimized for Windows.
I also started to figure out all the dependencies that should be installed alongside VGC, such as the Qt library, Python, and Visual Studio redistributables, but this is not fully automated yet. What's tricky is that on my own computer, all these dependencies are already installed (since I need them for compiling VGC), so things tend to naturally work... but it doesn't mean that it would work on other people's computers!
A good test is to try on a fresh install of Windows. However, I don't want to keep around an actual version of Windows with nothing installed on it just for this purpose... so instead I'm planning to use virtual machines. This is like running an operating system (e.g., Windows 10) inside another operating system (e.g., Linux). It has the advantage of not requiring a brand new computer, but it does require quite a bit of RAM and disk space, so I upgraded a little bit my workstation for that.
Though, I quickly ran into one issue: VGC requires OpenGL 3.2, but the software I use to create and run virtual machines, called VirtualBox, only supports OpenGL 1.1. So I can't really test VGC on these virtual machines. At least I can use them to compile VGC, or test that VGC gets installed where it should, but I can't run VGC itself, at least not the user interface part of VGC. An alternative to VirtualBox would be to use VMware, another virtualization tool that has better OpenGL support, but it costs almost $300 and I have no experience using it, so I'm not sure I want to go that route. Maybe.
Finally, something else that needs to be done is to create an installation wizard to let users choose where they want to install VGC, and specify a few options. Currently, the installer runs completely without user interaction, which is nice for performing upgrades, but not that nice for first-time installs.
More frequent news on Facebook and Twitter!
While I don't post very often on Tipeee, I decided to try to post more frequently tiny updates on Facebook and Twitter.
Initially, I didn't want to do that to keep the latest news reserved for sponsors, but now that the bigger incentive to become a sponsor will be "you can download the beta if you're a sponsor", it doesn't really matter. So I'll make the most frequent updates on Facebook and Twitter, and Tipeee posts will now basically be a recap of all the tiny news with more details.
In conclusion, if you want more frequent news, make sure to follow VGC Software on Facebook or Twitter!
Thanks again for your support!