[clam-devel] Changes to NetworkEditor
David García Garzón
david.garcia at barcelonamedia.org
Thu Jul 1 09:01:02 PDT 2010
On Thursday 01 July 2010 00:17:56 Xavier Serra wrote:
> On Jun 30, 2010, at 11:18 PM, Natanael Olaiz wrote:
>
> Hi,
>
> El 06/30/2010 09:13 PM, Xavier Serra escribió:
>
> On Jun 30, 2010, at 5:01 PM, David García Garzón wrote:
>
>
> On Monday 21 June 2010 17:14:57 Xavier Serra wrote:
>
>
> Hi guys,
> I'm Xavi Serra, an student at UPF doing his final project for CLAM with
> David.
>
> We intend to extend the funcionality of the NetworkEditor. The first
> thing we are doing is to detect when a network file is outdated and
> automatically throw clamRefactor (asking permission to the user to do
> so).
>
> [snip]
>
> Xavier Serra
>
>
> Committed after some refactorings we did yesterday together. Now a dialog
> is shown on version mismatch and in the case of a network of an older
> version it gives you the option to upgrade the network by using
> clamrefactor before loading it. The upgrade is still dummy, but Xavi is
> already working on it.
>
> Xavi, some screenshots would be helpful so that other developers can do
> comments on usability aspects. Could you put them on the wiki?
>
>
>
> Done.
>
> It would be great too if you guys could give some feedback about usability
> issues. I think the messages are now, after David's modification, more
> clear but I'd prefer more opinions.
>
>
>
> The messages are clear to me.
>
> But I have some questions:
>
> 1- The clamVersion attribute did always existed on the clam network files?
> (I cannot found it in the CHANGES log) If not, there are probably no clam
> networks so much outdated being used... but what would happens if it
> doesn't exist? From
> http://doc.trolltech.com/4.5/qxmlquery.html#evaluateTo-4 : "If output is
> null behavior is undefined."
>
>
> It didn't. Files without the attribute are treated as older file and thus,
> need conversion. David told me these files are pre-1.2 or so.
Indeed first versioned version was 1.3.1 (unreleased) so unversioned versions
should be considered 1.3.0 or earlier.
> 2- What would be the behavior in case of different versions? I think that
> checking the version number is OK as a first test of possible conflict
> between releases, but the needed changes and the definitely tests should
> be done looking in a migrationScript file or something like that. How we
> would deal with the different migrationScripts that we have in the core
> and different plugins? We would include all of them in the NetworkEditor
> to make such a test?
>
>
> When NetworkEditor detects that a file is older it will throw clamRefactor.
> The idea is to have a migrationScript file with the steps needed to go
> from version to version and use that when calling clamRefactor
> 3- David: do you think that it would be difficult to put the interface to
> check the network version on the CLAM::XMLStorage class? I know that this
> improvement and interface to solve the version conflict is inherent to
> the NetworkEditor, but CLAM::XMLStorage would not be the ideal place to
> just check the version? Maybe returning diferent error codes on the
> Restore...
First approach was using XMLStorage to extract just the version in a double
parsing like now, but that led us to some hard to solve problems. It's true
that doing such a thing in the actual network loading would be more elegant it
would need more insight from Xavi on the loading process. So i would left that
for a future refactoring. Sorry for adding a new dependency but still is Qt.
Besides that, current cases are:
- Same, load as is
- Older, warn, update and load (default)
- Older, warn, load as is
- Older, warn, cancel
- Newer, warn, user cancels (default)
- Newer, warn, user load it as is
I am wondering whether, it is more usable that, in the case of older versions
updating without asking. Something like:
- Same, load as is
- Older, update and load
- Newer, warn, user cancels (default)
- Newer, warn, user load it as is
Any way, while the update is not finished, i would keep update as an option.
More information about the clam-devel
mailing list