Releases galore!

Over the past week and a half, I have made releases for all of my projects. Most of them were pretty minor, and just amounted to updating the translations (and fixing an issue where the Qt-supplied translations were not being properly loaded). Packagers will now need to depend on lrelease, because I no longer include the precompiled binary .qm files.

The projects with actual feature releases were CuteMaze, Hexalate, Tanglet, and Tetzle. For the most part, the features added will not be obvious unless you have a 4K monitor, because the biggest thing I added was support for high-DPI displays. I did also finish moving my projects to be Qt 5 only, and to use C++11.

As usual, report any issues you have. Enjoy!

Some minor releases

Kapow

I have released a minor update to Kapow, version 1.4.4. This release is mostly to add an automatic backup system for the time data that I have been working on. A few users have experienced data loss, and this will hopefully prevent anybody else suffering that. Kapow now makes logarithmic backups (one backup a day for a week, then one backup a week for a month, then one backup a month for a year, and finally one backup a year after that) as well as a temporary backup that gets overwritten with each save. This release also adds support for building with Qt 5, although it is still released with Qt 4 as that is the primary development platform for now.

Longer term I am planning on making it easier for users to store the data file and backups in a location of their choosing, which will default to their documents folder. I have not settled on how I want to expose it in the interface (although you can already do this by using passing an XML file to the program).

Hexalate, Peg-E, and Simsu

I have also made a few other minor releases (Hexalate 1.0.2, Peg-E 1.1.2, and Simsu 1.2.3) over the past two weeks that I have not felt justify a blog post on their own. These releases mainly just add translations and support for building with Qt 5. I plan on making minor releases of the rest of my programs over the next few weeks to also update their translations, and to add support for building with Qt 5.

Minor Peg-E release

I just made a new release of Peg-E, version 1.1.1. This is the first release in a little over three years, which is a remarkable statement about how much FocusWriter has steamrolled my smaller projects. 😛 This release is mostly just to fix a couple of minor bugs and add Dutch and Hebrew translations, but it also signals my intention to resume work on Peg-E. Enjoy!

Development version numbers

Now that I am switching to release branches I am finally going to also tackle something that has always bothered me but I’ve never taken the time to solve: the development source code has the same version number as the most recent release. I have always wanted it to be some sort of automated number, but I wasn’t sure what I wanted it to be. And I didn’t want to have to update it myself with every single commit.

At first I had wondered about a number that gets incremented every time you compile the project, but I quickly realized that was a pointless thing to track. I may build a project 5,000 times and have a huge build number, but someone else might download the source and compile it only twice. Same source code, different version number. That’s frankly pretty silly.

Instead, I got inspired by the idea of using the git revision ID. It is obviously unique for each commit, and it identifies the specific source code for everyone. Of course, you can’t embed the revision ID because it is a hash that is created of the source code that you’re trying to embed it in. A hash that contains itself? Impossible! Of course, all you have to do instead is simply ask git for the revision ID, and pass that as a definition to the compiler:

VERSION = $$system(git rev-parse --short HEAD)
DEFINES += VERSIONSTR=\\\"git.$${VERSION}\\\"

The source code also needs to make use of the new compiler definition:

QCoreApplication::setApplicationVersion(VERSIONSTR);

This means that I finally have an automated version number for the development source code. I’ve only updated Kapow so far, but I am going to make this change to all of my projects.

The end of PowerPC support

I should have announced this sooner, but better late than never I suppose. I will no longer be creating new PowerPC builds of my programs. There are many reasons, but the biggest two are that my iBook G3 finally gave up the ghost, and that Qt has dropped support for PowerPC. I know that this is an inconvenience for some of my users, and I am sorry about that. Still, I hung in there as long as I could, but Apple has moved on.

A new Peg-E release

Despite my earlier exuberance, I have decided that KDE is not a good fit for me. Because of this, I have copied the changes unrelated to KDE that I made to Peg-E back into the Qt 4 version. The two largest additions in this release are the addition of two more algorithms for creating puzzles, and the ability to change the color of the pegs. Enjoy!

Peg-E has a new home!

Yesterday I moved Peg-E into KDE’s playground in preparation to (hopefully) become part of KDE games! All future development will be done in KDE’s subversion repository, but I will be leaving the current version online for archival purposes. Here’s a screenshot of the current build:

Peg-E

Another fun diversion

I had so much fun writing Simsu that I decided to write another quick game. I have to be careful, though, otherwise all of my free time is going to be eaten up writing fun little diversions and I won’t get anything done on larger projects. This program is called Peg-E, and it is a version of peg solitaire. The boards are randomly generated instead of the traditional plus layout. If you want more details, you can visit my site. I happen to think it is quite addicting!