Home Projects Jobs Clientele Contact


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

Re: Versioning

OK. More confusion about versioning apparently ;-)

Specifically: Versions != Copies

Here are some thoughts (not all of this is in spec yet, I'll update it),
that came about after my discussion with Sergey on Sunday:

1. Each object has ACL entries that specify which people are allowed
to create new versions (i.e. edit the object)
2. Each version has info on who specifically created it
(It is possible to have ids in there that are not in ACL - i.e. if
someone got their edit access revoked)
3. Anyone can create a Copy of any object. Copy is different from
version in that
  a. It has different object ID
  b. It's initial ACL is reset to be ID of a person who created it
  c. It retains information on what exact object which exact version it
      is derived from.
  d. Its version number is reset to 1

I know, above message is not the most coherent of my writings,
so, ask your questions ;-)

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?
> The question is - who is defining what to do, when the object the
> version is made from is updated? If I understand Ilya correctly, the
> object, the version was made from, defines that policy. I think, that
> the new version defines that policy.. My understanding is - if the
> version is made, then it can be edited by any way possible including
> change the connections.
> 2006/10/22, Anatoly Volynets <av@total-knowledge.com
> <mailto:av@total-knowledge.com>>:
>     Folks, it is the same post as the previous one, slightly edited.
>     Ilya A. Volynets-Evenbakh wrote:
>     > Alexey Parshin wrote:
>     >
>     >> 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 author.
>     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
>     total-knowledge.com <http://total-knowledge.com>
>     culturedialogue.org <http://culturedialogue.org>
> -- 
> Alexey Parshin,
> http://www.sptk.net 

Ilya A. Volynets-Evenbakh
Total Knowledge. CTO

Authoright © Total Knowledge: 2001-2008