Incremental update system

Hi there,

I’m currently working on an incremental update system (I already talked about it with Michelangelo). The idea is to get rid of the “full image release” upgrades, and set up a way to have incremental updates, so that everybody can customize its pi, install new software etc. without having to loose everything when Volumio is upgraded. It would also solve some upgrade issues in collaborative work on DB.

So, I’d be glad to have any advice or comment on this system. I’ve never coded this kind of thing so I could make conceptual mistakes!

This would work over the already existing GIT repository. You can check the code on my fork (it’s written in python) : github.com/jotak/Volumio-WebUI/ … 5158e4b5bf

Main lines are :

  • the sqlite DB file is put out of GIT (it’s binary, I consider it shouldn’t be under versionning anyway)
  • incremental update scripts (both .sh file and .sql files) will be placed under GIT as far as the development goes on
  • the GIT repo contains a “cursor” on the current code version
  • the DB/system also contains its “cursor” of its current version
  • the auto-update script checks these cursors and when they don’t match, scripts are executed to upgrade to latest version

Great Work!

I think michelangelo will implement this in the new version (we have already talked about)

Really cool and necessary feature.