Inbox cleaning

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
51 messages Options
123
Reply | Threaded
Open this post in threaded view
|

Re: Inbox and Communication

Chris Muller-3
A GUI tool rendering something like this:

MyPackage-cmm.104
  ancestors:  (MyPackage-cmm.102  (aVersionInfo))
     ancestors:  (MyPackage-cmm.100 (a VersionInfo))
        ancestors:  (MyPackage-cmm.99 (a VersionInfo))
            ancestors:  (MyPackage-cmm.98 (a VersionInfo))
               etc.


MyPackage-cmm.103
  ancestors:  (MyPackage-cmm.101 (aVersionInfo))
    ancestors:  (MyPackage-cmm.100 (a VersionInfo))
        ancestors:  (MyPackage-cmm.99 (a VersionInfo))
            ancestors:  (MyPackage-cmm.98 (a VersionInfo))
               etc.


Irregardless of their version-names, 101 and 103 are part of one
branch, 102--104 are part of the other branch.

>> a branch is based on the ancestry, regardless of how they're
>> grouped in the UI.

The discussion seems to be centered around using a special
naming-scheme that embeds a branch-name into the version-name so the
legacy tools can benefit from the side-effect of simple name-string
sorting to co-locate the versions of a branch in the UI.

But the developers are in control of the version name, they could
rename the branch-portion to something "incorrect", which would cause
the wrongly-named version to be displayed in the wrong place in the
list in terms of its branch-colocation.  I know, the name is
defaulted, etc. so that probably wouldn't happen on accident.  But the
larger point is that you can't really see the _hierarchy_ of branches
in a single sorted list.

I'm not opposed to naming versions, but what if the tools could
already render the actual ancestry model above graphically, which
represents the actual branching that took place; perhaps with
hover-over to see the version-comments and annotations which indicated
the branch-name..

I didn't mean to sound so strongly-opinionated; this is just IMHO;
which is often changed by learning from the folks in this list..

 - Chris



On Mon, Apr 18, 2011 at 11:50 AM, Colin Putney <[hidden email]> wrote:

> Chris Muller wrote (among other things):
>
>> it's a tool shortfall that can't display the _real_ branches
>
> and:
>
>> No, a branch is based on the ancestry, regardless of how they're
>> grouped in the UI.
>
> You seem to have some pretty strong opinions about branches. Would you
> care to expand on this a little bit? Maybe we can learn something.
>
> Colin
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Inbox and Communication

Colin Putney-3
On Mon, Apr 18, 2011 at 10:39 AM, Chris Muller <[hidden email]> wrote:

> A GUI tool rendering something like this:
>
> MyPackage-cmm.104
>  ancestors:  (MyPackage-cmm.102  (aVersionInfo))
>     ancestors:  (MyPackage-cmm.100 (a VersionInfo))
>        ancestors:  (MyPackage-cmm.99 (a VersionInfo))
>            ancestors:  (MyPackage-cmm.98 (a VersionInfo))
>               etc.
>
>
> MyPackage-cmm.103
>  ancestors:  (MyPackage-cmm.101 (aVersionInfo))
>    ancestors:  (MyPackage-cmm.100 (a VersionInfo))
>        ancestors:  (MyPackage-cmm.99 (a VersionInfo))
>            ancestors:  (MyPackage-cmm.98 (a VersionInfo))
>               etc.
>
>
> Irregardless of their version-names, 101 and 103 are part of one
> branch, 102--104 are part of the other branch.
Well, if you click on the History button, you get something like this.
It doesn't do the indenting, but it lists all the ancestors of the
selected version.

>>> a branch is based on the ancestry, regardless of how they're
>>> grouped in the UI.
>
> The discussion seems to be centered around using a special
> naming-scheme that embeds a branch-name into the version-name so the
> legacy tools can benefit from the side-effect of simple name-string
> sorting to co-locate the versions of a branch in the UI.

It's a little more than string sorting. A repository browser will
create a separate entry in the left pane for each branch of a package,
letting you browse the versions in that branch separately from other
branches. The attached screen shot shows a couple of branches of
OmniBrowser in my ob repository. Ok, it's a simple little hack, but it
makes a big difference in terms of user experience.

> I'm not opposed to naming versions, but what if the tools could
> already render the actual ancestry model above graphically, which
> represents the actual branching that took place; perhaps with
> hover-over to see the version-comments and annotations which indicated
> the branch-name..
>
> I didn't mean to sound so strongly-opinionated; this is just IMHO;
> which is often changed by learning from the folks in this list..

Ok, let me define a few terms here:

head: a head is a version that has no descendants.

fork: a fork is when there is more than one head for a given package.

Forks happen all the time in concurrent development. I load the latest
head, then you save a new head, and when I save my work, we've got a
fork. (Not to be confused with project forks like XEmacs or Pharo.)
It's no big deal, we just merge, and we're back to the happy
single-head state for the package.

But sometimes we don't actually want to merge. Sometimes we want to
stay forked for a while, because the changes made on one fork are
experimental, or unfinished or whatever. I think that's the definition
of a branch - a fork that's not the result of happenstance in
concurrent development, but a deliberate decision to create a separate
context for development of a package. Branches are forks that remain
unmerged as a matter of policy. It's also worth noting that forks can
and do happen within a branch because of concurrent development; they
just tend to get merged back into a single branch head.

I think what all this means is that branches are purely a social
phenomenon. It's convenient for us to think about "the oscog branch"
as a distinct thing, but as far as MC's ancestry records are concerned
it's no different than if Eliot had a particularly productive hacking
session on a flight to Singapore.

Now, I agree, an undocumented naming convention that exploits MC's
display algorithm isn't the best way to support branches. But it's not
too far off; "proper" support for branches is basically a usability
issue.

Colin



ob-branches.png (30K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Inbox and Communication

Chris Muller-3
Thanks for the great clarification about branches, it makes total
sense.  And, I can understand how a naming-convention would be plenty
good enough for that situation.

If we do choose to adopt / document this convention, we should capture
it in MCVersionName.  :-)



On Mon, Apr 18, 2011 at 2:21 PM, Colin Putney <[hidden email]> wrote:

> On Mon, Apr 18, 2011 at 10:39 AM, Chris Muller <[hidden email]> wrote:
>> A GUI tool rendering something like this:
>>
>> MyPackage-cmm.104
>>  ancestors:  (MyPackage-cmm.102  (aVersionInfo))
>>     ancestors:  (MyPackage-cmm.100 (a VersionInfo))
>>        ancestors:  (MyPackage-cmm.99 (a VersionInfo))
>>            ancestors:  (MyPackage-cmm.98 (a VersionInfo))
>>               etc.
>>
>>
>> MyPackage-cmm.103
>>  ancestors:  (MyPackage-cmm.101 (aVersionInfo))
>>    ancestors:  (MyPackage-cmm.100 (a VersionInfo))
>>        ancestors:  (MyPackage-cmm.99 (a VersionInfo))
>>            ancestors:  (MyPackage-cmm.98 (a VersionInfo))
>>               etc.
>>
>>
>> Irregardless of their version-names, 101 and 103 are part of one
>> branch, 102--104 are part of the other branch.
>
> Well, if you click on the History button, you get something like this.
> It doesn't do the indenting, but it lists all the ancestors of the
> selected version.
>
>>>> a branch is based on the ancestry, regardless of how they're
>>>> grouped in the UI.
>>
>> The discussion seems to be centered around using a special
>> naming-scheme that embeds a branch-name into the version-name so the
>> legacy tools can benefit from the side-effect of simple name-string
>> sorting to co-locate the versions of a branch in the UI.
>
> It's a little more than string sorting. A repository browser will
> create a separate entry in the left pane for each branch of a package,
> letting you browse the versions in that branch separately from other
> branches. The attached screen shot shows a couple of branches of
> OmniBrowser in my ob repository. Ok, it's a simple little hack, but it
> makes a big difference in terms of user experience.
>
>> I'm not opposed to naming versions, but what if the tools could
>> already render the actual ancestry model above graphically, which
>> represents the actual branching that took place; perhaps with
>> hover-over to see the version-comments and annotations which indicated
>> the branch-name..
>>
>> I didn't mean to sound so strongly-opinionated; this is just IMHO;
>> which is often changed by learning from the folks in this list..
>
> Ok, let me define a few terms here:
>
> head: a head is a version that has no descendants.
>
> fork: a fork is when there is more than one head for a given package.
>
> Forks happen all the time in concurrent development. I load the latest
> head, then you save a new head, and when I save my work, we've got a
> fork. (Not to be confused with project forks like XEmacs or Pharo.)
> It's no big deal, we just merge, and we're back to the happy
> single-head state for the package.
>
> But sometimes we don't actually want to merge. Sometimes we want to
> stay forked for a while, because the changes made on one fork are
> experimental, or unfinished or whatever. I think that's the definition
> of a branch - a fork that's not the result of happenstance in
> concurrent development, but a deliberate decision to create a separate
> context for development of a package. Branches are forks that remain
> unmerged as a matter of policy. It's also worth noting that forks can
> and do happen within a branch because of concurrent development; they
> just tend to get merged back into a single branch head.
>
> I think what all this means is that branches are purely a social
> phenomenon. It's convenient for us to think about "the oscog branch"
> as a distinct thing, but as far as MC's ancestry records are concerned
> it's no different than if Eliot had a particularly productive hacking
> session on a flight to Singapore.
>
> Now, I agree, an undocumented naming convention that exploits MC's
> display algorithm isn't the best way to support branches. But it's not
> too far off; "proper" support for branches is basically a usability
> issue.
>
> Colin
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Inbox and Communication

Hannes Hirzel
On 4/19/11, Chris Muller <[hidden email]> wrote:
> Thanks for the great clarification about branches, it makes total
> sense.  And, I can understand how a naming-convention would be plenty
> good enough for that situation.
>
> If we do choose to adopt / document this convention, we should capture
> it in MCVersionName.  :-)

Please do so, for people who did not follow this discussion closely
and after a few weeks it willl be forgotten. However looking at the
class coment of MCVersionName might not be the most obvious thing to
do but still it is a likely place where people will stumble upon....

--Hannes

Reply | Threaded
Open this post in threaded view
|

Re: Inbox and Communication

Chris Muller-3
I was actually referring to documenting it as _methods_ in
MCVersionName; not the class-comment (but there's no harm in putting
it there too).

But before I would do that, I would want to make sure there was
consensus and then code, tests, inbox, testing, etc..


On Tue, Apr 19, 2011 at 4:31 AM, Hannes Hirzel <[hidden email]> wrote:

> On 4/19/11, Chris Muller <[hidden email]> wrote:
>> Thanks for the great clarification about branches, it makes total
>> sense.  And, I can understand how a naming-convention would be plenty
>> good enough for that situation.
>>
>> If we do choose to adopt / document this convention, we should capture
>> it in MCVersionName.  :-)
>
> Please do so, for people who did not follow this discussion closely
> and after a few weeks it willl be forgotten. However looking at the
> class coment of MCVersionName might not be the most obvious thing to
> do but still it is a likely place where people will stumble upon....
>
> --Hannes
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Inbox and Communication

Hannes Hirzel
OK, how do we reach consensus on this?

--Hannes

On 4/19/11, Chris Muller <[hidden email]> wrote:

> I was actually referring to documenting it as _methods_ in
> MCVersionName; not the class-comment (but there's no harm in putting
> it there too).
>
> But before I would do that, I would want to make sure there was
> consensus and then code, tests, inbox, testing, etc..
>
>
> On Tue, Apr 19, 2011 at 4:31 AM, Hannes Hirzel <[hidden email]>
> wrote:
>> On 4/19/11, Chris Muller <[hidden email]> wrote:
>>> Thanks for the great clarification about branches, it makes total
>>> sense.  And, I can understand how a naming-convention would be plenty
>>> good enough for that situation.
>>>
>>> If we do choose to adopt / document this convention, we should capture
>>> it in MCVersionName.  :-)
>>
>> Please do so, for people who did not follow this discussion closely
>> and after a few weeks it willl be forgotten. However looking at the
>> class coment of MCVersionName might not be the most obvious thing to
>> do but still it is a likely place where people will stumble upon....
>>
>> --Hannes
>>
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Inbox and Communication

Colin Putney-3
On Wed, Apr 20, 2011 at 1:40 AM, Hannes Hirzel <[hidden email]> wrote:
> OK, how do we reach consensus on this?

Well, if we're going to have MCVersionName at all, it should
definitely have a #branch method. I don't think there's any real
disagreement here; it's just that different people care more about
different things. :-)

Reply | Threaded
Open this post in threaded view
|

Re: Inbox and Communication

Hannes Hirzel
Fine, it is a matter of priorities. How is going to add the #branch
method to MCVersionName?

--Hannes

On 4/20/11, Colin Putney <[hidden email]> wrote:

> On Wed, Apr 20, 2011 at 1:40 AM, Hannes Hirzel <[hidden email]>
> wrote:
>> OK, how do we reach consensus on this?
>
> Well, if we're going to have MCVersionName at all, it should
> definitely have a #branch method. I don't think there's any real
> disagreement here; it's just that different people care more about
> different things. :-)
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Inbox and Communication

Colin Putney-3
On Thu, Apr 21, 2011 at 4:48 AM, Hannes Hirzel <[hidden email]> wrote:
> Fine, it is a matter of priorities. How is going to add the #branch
> method to MCVersionName?
>

I'll see if I can do it sometime during the long weekend.

Colin

Reply | Threaded
Open this post in threaded view
|

Inbox and branching (was Re: [squeak-dev] Inbox and Communication)

Casey Ransberger-2
In reply to this post by Hannes Hirzel
Looks like this one veered along to a new topic. Updating subject since it was my instigation.

On Apr 21, 2011, at 4:48 AM, Hannes Hirzel <[hidden email]> wrote:

> Fine, it is a matter of priorities. How is going to add the #branch
> method to MCVersionName?
>
> --Hannes
>
> On 4/20/11, Colin Putney <[hidden email]> wrote:
>> On Wed, Apr 20, 2011 at 1:40 AM, Hannes Hirzel <[hidden email]>
>> wrote:
>>> OK, how do we reach consensus on this?
>>
>> Well, if we're going to have MCVersionName at all, it should
>> definitely have a #branch method. I don't think there's any real
>> disagreement here; it's just that different people care more about
>> different things. :-)
>>
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: Inbox and Communication

Chris Muller-3
In reply to this post by Colin Putney-3
Cool thanks; and I think that will allay any concerns about potential
parsing ambiguities emerging from this naming scheme related to
accessing the other embedded fields; author, version, etc.



On Thu, Apr 21, 2011 at 10:31 AM, Colin Putney <[hidden email]> wrote:

> On Thu, Apr 21, 2011 at 4:48 AM, Hannes Hirzel <[hidden email]> wrote:
>> Fine, it is a matter of priorities. How is going to add the #branch
>> method to MCVersionName?
>>
>
> I'll see if I can do it sometime during the long weekend.
>
> Colin
>
>

123