← Back to team overview

opencog-dev team mailing list archive

Re: staging and main

 

Hi,

On Mon, 2008-10-27 at 14:21 -0500, Linas Vepstas wrote:

> Over-write?  I've been doing 100% of my development in main,
> based on the assumption that was the easiest, most sensible
> thing to do. I certainly would not want to see my (several months)
> worth of work over-written!
> 
> Surely the words "merge" and "over-write" have very different
> meanings, I dislike the way they just got used as if they're interchangable.

I'm not that stupid, Linas. Of course I'd push the 'main' branch with
another name before overwriting anything that you've committed. But yes,
you should rebase your latest changes from 'main' into 'staging', as
I'll have to do a "push --overwrite" when Dave wants me to push
'staging' as 'main'.

> >> However, on talking to Joel, I get the impression that
> >> some of these changes are quite large, and thus,
> >> I suspect that the merge will destabilize the main branch
> >> (which I would dearly like to perceive as stable, since
> >> I actually use it).
> >
> > Right. That's why Joel's changes, mine and hopefully your's too will
> > land in 'staging' first.
> 
> 100% of my changes go into the "main branch", since
> that is the "main" branch. Right?   Given what I am working
> on, it doesn't make sense for me to use any other branch
> than main.

Well, I'm sorry if you don't like the names -- I don't either -- but
it's been stated over and over that people should be branching their
work off of 'staging'.

> Yes, but the work on PLN doesn't/shouldn't require any
> changes to other, existing, code in main and so, therefore,
> I see no reason why PLN could not have been done in
> the main branch.

Sigh. Because everyone should be working from 'staging'. Joel has just
followed the policy. So have I.

> Well, sorry, I was unaware of any policy; or of any
> conversations about policy. Apparnetly, those occurred
> on a different mailing list, of which I wasn't aware of
> until recently.

Right. And it would have been nice if you had bothered to subscribe to
it and read the archives.

> But you imply that its bad to merge into the main branch?
> You're comments, above and below, imply that "main" is not
> "main" any more, and that there is a new "main", which
> is called "staging".

Yay. You seem to have understood it now. :-)

> Yes, exactly!  And that is *exactly* why the staging branch
> should be rebased on main *daily*!

Yes, sure. I'll spend 90% of my time resolving conflicts of code I don't
fully understand. That should be very productive.

> > First, because I couldn't possibly ever keep up with the amount of
> > work if we ever have more than a couple of people commiting to 'main';
> > and second, because invariably I'll make mistakes when merging the new
> > code,
> 
> And this is exactly why there is a staging branch!

And if nobody else ever bothers to look at the staging branch, how do
you expect the bugs I introduce to be fixed?

> > On Mon, 2008-10-27 at 11:15 -0700, David Hart wrote:
> >
> >> Effectively today main should be under a checkin freeze; small patches
> >> should go directly into staging, making a main -> staging regular
> >> update unecessary.
> 
> I am actually using opencog in a production environment;
> and Gama implies that the staging area is unstable.
> Therefore, this means that I cannot use the unstable branch.

Why not? Nobody is saying that code committed to the staging branch may
not build or erase your hard-drive or eat kittens. All we're saying is
that not all unit tests might pass at some point, or something might
break on amd64, or that a particular file might break if a particular
library is not found, etc, etc.

In essence, the kind of code you've been commiting to 'main' -- thinking
it is stable -- should have gone to 'staging' -- because the truth is it
isn't. For example, the current 'main' tree doesn't build if no odbc
provider is found (it breaks when building MihalceaEdge.cc) because
apparently you didn't bother to test how things would work if the
(optional) dependency to iodbc was not found.

> But if I can't use the unstable branch, and I can't check code
> into main, then where am I supposed to do development?

'staging'. Once again: I don't like the names either, but I don't find
it so hard to understand the current policies just because of this.
Others seem to be on the same boat.

> I strongly urge that this other mailing list be abolished.  I see
> no reason for two different mailing lists for opencog -- it
> just makes everything cloudy and obscure. For example,
> it allows some developers to make "policy" while other
> developers are completely unaware of that "policy".

IIRC, you've suggested it before and most people agreed that things are
fine the way they are.

--
Gustavo




Follow ups

References