Tuesday, January 28, 2014

Status update: rewritten core, automated tests, and build script

Hi, all!

As you may have noticed, it has been quiet from me for a while now. There are several reasons for this. First of all I've been busy finishing up my master's thesis and starting my new job. My daughter has also started kindergarten which means she gets sick a lot more often now.

But another reason why I've been quiet is because I've been busy restructuring the development cycle of Stoffi. Starting with the next release I will finally have a more streamlined process which means that Stoffi can be updated and improved at a quicker rate.

In the new release cycle I will have a completely finished beta version where all the new and shine features are done, all that's left is to test it and make sure it's stable. While the testing is being done, I will be working exclusively on the alpha version where new stuff gets released early and often. From time to time I will collect all bug reports from the alpha, fix them, and release the fixes on both beta and alpha. Finally, when the beta is really stable, I will push that into the stable channel, the alpha will go into the beta channel, and a new alpha will be started.

That's the plan. But before I can get there I need to move everything into sync. So now I have actually been working on two new versions at the same time, so to speak. The beta has some new features, which have mostly been tested and are very close to being deemed stable enough, while I have also worked on the alpha which has even more features, and is almost ready to be moved into beta when the beta is released into stable. Still following me?

So right now everything is aligned and almost ready. I have a few more tests to make before I am completely confident that the beta code is ready to be moved into the stable channel.

But this is not all. I have also been busy streamlining the release process around Stoffi. I have created a build script which automates a lot of the tasks that had to be done manually before whenever Stoffi was to be released. Such as updating the version number, compiling the two installers in Visual Studio, creating an upgrade package, and so on. My goal is to have a build server in the future and have this script run every night, pushing out all changes to alpha testers. But for this to work I need to both have a dedicated Windows machine with Visual Studio installed, and learn the script to build the tool for settings migration whenever the way settings are stored is changed. So there's some work left. But the current build script will at least save me from all the manual work involved in releasing Stoffi.

I have also started to write tests, both unit tests and integration tests, for Stoffi Core and the Stoffi website. This will help me keep Stoffi stable now when Stoffi is growing into becoming a full ecosystem with a cloud service, music player, and hopefully a smartphone app in the future.

So while you may not have heard much from me lately, I can guarantee you that you'll have a lot to look forward to. Two new versions of Stoffi (one almost fully tested and ready to be released soon), a faster bug hunt, and a more streamlined release process.

Also, now when I have finished school and started work, I have no labs or exams. When I get home, I'm free.

So that's it for now. I still have a few more tests to run before I can release a new version: playlist sync, file associations, and integration with Facebook, Twitter, and Last.fm. But when all that is tested and no bugs are found, I will officially start this new era of Stoffi.

Have a great day!