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!
I have just finished to integrate the generation of license keys to the VGC website! Now, whenever I add a new eligible sponsor, license keys are automatically generated and available in the sponsor's dashboard:
Note that if you were already a Silver Sponsor (or higher) at the time of this writing, your existing license keys are NO LONGER VALID. Indeed, I regenerated all the existing license keys due to both a bug in my code, and a design flaw. You should have received an automatic email, and your new license keys can be found in your dashboard.
The bug was subtle: it only had a 1 out of 256 chance to occur each time I generated a license key, reason why it went undetected for so long. To be precise, it occurred whenever the first 8 bits of some cryptographic signature were all zeros, in which case OpenSSL (the cryptographic library I use) did some optimization by not including the first byte in the signature, and my code parsing this signature failed to handle correctly this scenario. It is now fixed and seems to have affected only one of you (a sponsor had an '=' sign in one of his license key), but I regenerated all license keys anyway due to the design flaw explained below.
The design flaw was that the keys were tied to an email address: VGC 2020 would have asked you both your address email and your license key, and verify that the pair "license key + email address" was valid. But it turns out that some of you have already changed their email address! So an email address isn't an identifier as stable as I thought. Therefore, I decided to change my mind: keys are now self-contained and don't need any other information to validate.
Next step: automate the compilation of VGC on Windows, macOS, and Linux, with automatic upload to the website so that sponsors can download it! This will not be trivial, and should take a few weeks. Notably, I have to change which tool I use to generate Windows installers (the tool I was using so far doesn't allow for automation), and implement the upload/download system.
Thanks again for your support!
The new VGC account system is finally live at https://www.vgc.io !
If you are already a sponsor, you should have received an email in the past couple of hours to ask you to activate your VGC account. In fact, you may have received two of them... sorry about that, it was a bug which is now fixed.
Please let me know if you haven't received this email, or if the sponsorship level indicated in your dashboard (Bronze, Silver, etc.) doesn't match your actual sponsorship level. More generally, let me know if you experience any problem with the activation process or if you see any bugs or area for improvements.