It's been a month since the last bliss release, so what's going on behind the scenes?
I've been re-writing some of the fundamental building blocks of bliss, to hopefully allow for more rapid iterations over the next year. And after that, there's some big new features upcoming!
Fixing the building
Way back in 2012 we implemented in-app update. This allowed bliss to update itself without you having to download a new version and install it manually.
To do this I used a "framework" by which I structured the bliss application. It's a bit like the structure of a house - I re-wrote bliss to fit into this structure. The framework (called OSGi) allows the updating of code. That means once I had changed bliss to work within the framework, bliss got in-app update "for free".
And it worked. Just about. OSGi also derives other benefits - basically it helps to keep software more maintainable long term.
The trouble with OSGi is the tooling, i.e. the software tools that are used to build an OSGi application. Or I should say, build bliss. Whether it was the way bliss was written or not, the OSGi tooling never really worked very well, and creating each version of bliss became a chore. I used to be able to click a button and a new version of bliss would pop out. After the change to OSGi I never really knew how long it would take to produce a build!
There were also a number of intracacies introduced which increased the support burden.
I muddled through until the end of last year, when I realised it was time to update all of our tooling. That meant upgrading to the latest version of the OSGi tools. I was nervous going into it, because I'd had bad experiences before and backed out before. Unfortunately my worse expectations were realised and I lost a week or two of development time.
So that was the final straw, and the reason we've gone a month without a release is because, partly, of the attempt to update our OSGi tooling, and partly because I've now given up and we'll be using a different solution for in-app update going forward.
I'm hoping I'll have a new build available over the next month or so, and then we can achieve lift-off from there!
The good stuff
So what's actually upcoming, once I get this fundamental work out of the way?
There are a couple of simple improvements I want to make - for example the rescan button needs a "rescan for new files" option.
Perhaps the largest body of work will be a series of releases to implement tag correction and completeness. The way this will work is that each album in your collection will be automatically linked to an online record of the album. Once linked, tag completion and correctness synchronises the tags.
This basically works in the same way as the existing cover art and year/genre lookup stuff, but pushes the linking into the UI as well.
The first step is likely to be linking of an album to an online release, with existing functions using that link. Then, we'll add in the tag completion and correctness features.
Dat's the plan!
The bad stuff
Unfortunately this means in-app update will not work for existing installations, for releases released from this point. You'll be able to update to version 20161213 but no further. To get later releases you'll have to download the latest and install it manually, and then from there in-app update should start working again.
Thanks to Bratislavsky kraj for the image above.