Home Projects Jobs Clientele Contact


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Versioning

Alexey Parshin wrote:
Ok, how do we call someone who created a version of the object for his own
needs? He isn't an author, is he?

He is an author of the derivative.

The question is - who is defining what to do, when the object the version is
made from is updated?
Users decide whether they want the update to use, or not.

If I understand Ilya correctly, the object, the
version was made from, defines that policy.
I think, that the new version
defines that policy..
What is the policy here, anyway?

My understanding is - if the version is made, then it
can be edited by any way possible including change the connections.

What connections? To other UMOs? I think there, where THIS UMO is used all its connections are kept and its user decides only if he wants the update. If we are talking about a derivative by another author, he is a user of the original UMO and he gets notified, but not HIS users. The latter will get notified if the author of the derivative decides to switch to the updated original.
2006/10/22, Anatoly Volynets <av@total-knowledge.com>:

Folks, it is the same post as the previous one, slightly edited.

Ilya A. Volynets-Evenbakh wrote:
> Alexey Parshin wrote:
> e
>> 2) what do we do when the new version is produced. My idea is - to
>>  switch all the object connections to that new version ( edit) or
>> to produce a new version disconnected, to be used in another parent
>>  object (clone).
> From http://www.total-knowledge.com/wiki/index.php/UU_Tech
> When a new version is created, all objects linking to this one are
> notified. Their action can be one of the following:

> * Silently use new version * Use new version and notify owner *
> Notify owner and keep old version * Silently stick with old version

First of all, there is no such term as "owner" in our specs, ideology,
understanding and so forth. This is one out of few the most important
points, which is essential for the smallest issues/decisions. We have
Author and User. Let us keep it this way.

What specs tell us about versioning thus far?

      2.1.5 Object Versioning-O

Let's say user X creates object O. The user Y uses O in his course. Now
X changes O. Will the course include edited version of O, or original
one? Ideally it should be up to Y to decide that. This leads us to the
concept of object versioning. i.e. each change to an object creates a
new version, and old one stays. When linking objects to each other (i.e.
adding problem to topic) author decides which version to use.

1. Now, suppose the Author (X - here) creates a new version (say, it
could be marked as draft or such like at the first stage, and in the end
gets marked "Final") then all users (Y - here) of the object, EXCEPT the
Author get notified that a new version of the UMO is created by its
2. Also, all users (X and Y - here), INCLUDING the author have to have
option at the moment: to put the new version in or not.
3. If a user (it can be the author) chooses to put the new version in,
he states so and:
a) the new version replaces the old one in all THIS USER's UMOs it used
in. OR, as the matter of our decision:
b) he can do it UMO by UMO. In that (preferable) variant he has to have
an option to "Select All", or "Select Marked", or something like this -
UMOs to use the new version of the upgraded UMO.

The important point here is that EACH user of the UMO decides for
himself to use new version or not.

Hopefully, it is more or less clear now, how it should work for UU
users. If there is any vagueness in this respect, let's clarify it first
and then proceed to the object and db design.


Anatoly Volynets, Co-Founder


Anatoly Volynets, Co-Founder

Authoright © Total Knowledge: 2001-2008