Saturday, March 6, 2010

Updater Progress

The Update component is close to finish. How close? Is finished in the idea that all steps on my machine works. This can be tricky to be evaluated as it works.

As was presented earlier that update system worked, why did not work as expected and how it was fixed.
Any (good) update system should be able first of all to update itself. That was done previously by using the starter process of Naro that launches Updater. This Updater, did more or less (with associated bugs) the same thing as did a repository manager on Linux: it take a file list, it checks the versions over files and did update the version of files if are changes or updates. This was hard to maintain and was really buggy.
The second alternative was to not reinvent the updater and around two months in the past the idea was to use a stable and external updater, namely SVN. But SVN in my experience on sourceforge can get speeds as low as 2k/s which will mean that users that wanna try to get the nightly build, will mean both for maintainer (like me) and for user a really hard thing to get. This makes me to think that SVN may not be that a good idea and after wasting a lot of time trying to fix the issues.
The latest alternative (will need bug fixing) is just as follows: I've created a tool that define from mantainer point of view the version update, also presenting a reason for user to get the update, as an update may announce also broken things (mostly on nightly). This tool creates a description file that describe the update and where to get it (as seen in the picture).
The second part is that the Updater is not out of process with NaroCAD (like was either integrated with NaroStarter or as an SVN component) but is in-process with NaroCAD. This gives in short the following advantage: when an update appears, it can ask to user to save it's work, so user can do it's work as usually. Also, there is an Options dialog to setup it (see the second picture).
I will test it more to work as expected and this will make for most users to take the new update of Naro in a much easier fashion that was used before. For the maintainer tool I will make to not only create this description file, but also to upload it, it in the same moment with creation of the build. And squash all bugs just before adding and enabling it for nightly builds.

No comments: