Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-28 Thread Robert Watson


On Wed, 27 Feb 2002, George V. Neville-Neil wrote:

 I think we need to avoid the concept of imposing some modicum of
 structure.  If we create structure it is because we need it.  Just like
 software.  There was a good comment recently about software gets
 created to scratch an itch.  I'd say that structure gets created
 because you're tired of losing fingers and toes to the person next to
 you wielding the axe.  It's great that your friends are helping you
 clear the forest but you'd all like to be able to walk and pick up your
 cup of coffee at the end of the day as well.

What I mean by imposing structure is:

- Identify patterns of development and structure that seem to have evolved
  naturally as part of the maturing of the FreeBSD Project
- Determine which patterns tend to result in the most productive and
  parallel development efforts, not to mention which are the most popular
- Selectively reinforce those patterns to improve the ability of
  developers to rely on the patterns

An example of this might be investment of time in a rote API change: such
changes are time-consuming requiring a lot of brute force source code
modification.  There's a strong motiviation to avoid redundant work here,
but frequently the work is necessary, so it's also desirable to know that
it's going to happen.  A normal model here might be to look for a
developer who's willing to do it, and wait for them to come back in a week
or two when it's done.  An unproductive tendancy is for four developers to
go off, and do the work over two weeks, and all discover they've done it
at the end.  This can be avoided by making an attempt to coordinate.  On a
small scale and for individual cases, the problem here can be lived
with.  When it's in the context of a larger piece of work, it can be
highly counter-productive.  One reinforcement that could be made is to
encourage developers to indicate what works in progress they have going,
and to encourage other developers interested in a change to give that list
a skim to see if someone else has already started on it, and if someone
has but appears to be timing out, to encourage them to talk to the
developer who has claimed it (in some sense) to find out what is going on.

 We are always going to have first past the post problems.  If someone
 comes along and has rewritten a whole subsystem, and testing and
 performance measurement show that it's an order of magnitude better
 (faster, smaller, etc.) than what we have we'd be idiots not to take it,
 right? 

Obviously.  But the contentious cases often aren't the ones where that's
the case.

 The question is What processes do we need to put in place to make a
 project of this size and dynamisticity work?  I put forward a few of
 them.  I suggest we start somewhere (including airing gripes people have
 with the current system) and write down (i.e. build a web page, use
 TWiki)  what we're going to do about it. 
 
 I hate to make this analogy but we need a constitution or something like
 it.  Not so grandiose of course, but a written set of rules and are easy
 to interpret that can take care of the 80% case.  The 20% we'll always
 get to argue over but I'd rather not argue over the 100%. 

I think we're in the same boat here.  You believe that process can help
streamline the development process, and be used to help avoid the
disagreements we've run into recently (assuming I read you correctly :-).
I think so too.  I agree we can't bring too much process--that won't work
for a large number of reasons.  But a little bit of process can go a long
way.  In particular, I'm looking for a little bit of process that will
help address the perceived problems of the current situation.

Robert N M Watson FreeBSD Core Team, TrustedBSD Project
[EMAIL PROTECTED]  NAI Labs, Safeport Network Services



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-28 Thread George V. Neville-Neil

 What I mean by imposing structure is:
 
 - Identify patterns of development and structure that seem to have evolved
   naturally as part of the maturing of the FreeBSD Project
 - Determine which patterns tend to result in the most productive and
   parallel development efforts, not to mention which are the most popular
 - Selectively reinforce those patterns to improve the ability of
   developers to rely on the patterns

This sounds fine to me but we're going to have to write it down somewhere
and then discuss it.  This tossing ideas in the ether is not going to work
because to refer back to earlier points we have to either have huge emails
with everyone's comments in them, or constantly be reading the
archives.

So, please, if you think this is important write down your findings/current 
beliefs
somewhere (I think TWiki or something like it is perfect for this) and let 
everyone
comment and modify them until we have an understanding.  Then lets figure
out what structure we need and write that down as well.   Think of it as a 
FreeBSD
constitution if you must, only much more lightweight.

You're obviously taking the lead here and that's fine, every project 
(and this discussion is really a project) needs a leader.

 I think we're in the same boat here.  You believe that process can help
 streamline the development process, and be used to help avoid the
 disagreements we've run into recently (assuming I read you correctly :-).
 I think so too.  I agree we can't bring too much process--that won't work
 for a large number of reasons.  But a little bit of process can go a long
 way.  In particular, I'm looking for a little bit of process that will
 help address the perceived problems of the current situation.
 

Yes, you read me correctly.   My mantra is, Write it down.

:-)

Later,
George

-- 
George V. Neville-Neil  [EMAIL PROTECTED]
NIC:GN82 

Those who would trade liberty for temporary security deserve neither 
- Benjamin Franklin



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-28 Thread Robert Watson


On Thu, 28 Feb 2002, George V. Neville-Neil wrote:

  What I mean by imposing structure is:
  
  - Identify patterns of development and structure that seem to have evolved
naturally as part of the maturing of the FreeBSD Project
  - Determine which patterns tend to result in the most productive and
parallel development efforts, not to mention which are the most popular
  - Selectively reinforce those patterns to improve the ability of
developers to rely on the patterns
 
 This sounds fine to me but we're going to have to write it down
 somewhere and then discuss it.  This tossing ideas in the ether is not
 going to work because to refer back to earlier points we have to either
 have huge emails with everyone's comments in them, or constantly be
 reading the archives. 
 
 So, please, if you think this is important write down your
 findings/current beliefs somewhere (I think TWiki or something like it
 is perfect for this) and let everyone comment and modify them until we
 have an understanding.  Then lets figure out what structure we need and
 write that down as well.  Think of it as a FreeBSD constitution if you
 must, only much more lightweight. 
 
 You're obviously taking the lead here and that's fine, every project
 (and this discussion is really a project) needs a leader. 

Certainly -- the intent that I expressed in my original e-mail was to fish
for people's thoughts on the issue, which would then be codified in some
form.  I'm interested in hearing a little more back on how people feel
about the notion of how larger projects should coordinate work given the
assumption that locks are advisory, but plan to write up a strawman
sometime in the next week or so.  Probably the process forward there will
be to run the first pass by the core team for some immediate feedback
regarding the strength of the recommendations, and whether it meets our
goals concerning addressing the problems that have been discussed.  Then
I'll spit a copy out for more general comments.

 Yes, you read me correctly.  My mantra is, Write it down. 

Something I've had in mind all along.  BTW, your writings are much
appreciated -- I hope to make the developer summit notes available in the
next couple of days (I'm currently at an Apple-hosted security conference
through Friday, when I'll get a chance to sit down with it over the
weekend). 

Robert N M Watson FreeBSD Core Team, TrustedBSD Project
[EMAIL PROTECTED]  NAI Labs, Safeport Network Services



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-28 Thread George V. Neville-Neil

 Certainly -- the intent that I expressed in my original e-mail was to fish
 for people's thoughts on the issue, which would then be codified in some
 form.  I'm interested in hearing a little more back on how people feel
 about the notion of how larger projects should coordinate work given the
 assumption that locks are advisory, but plan to write up a strawman
 sometime in the next week or so.  Probably the process forward there will
 be to run the first pass by the core team for some immediate feedback
 regarding the strength of the recommendations, and whether it meets our
 goals concerning addressing the problems that have been discussed.  Then
 I'll spit a copy out for more general comments.

Sounds like a great plan to me.  Alas I think you'll get more feedback once
you have the strawman proposal, people just seem to work that way.

Later,
George

-- 
George V. Neville-Neil  [EMAIL PROTECTED]
NIC:GN82 

Those who would trade liberty for temporary security deserve neither 
- Benjamin Franklin



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-27 Thread Poul-Henning Kamp

In message [EMAIL PROTECTED], M. Warner Losh writes:
In message: [EMAIL PROTECTED]
George V. Neville-Neil [EMAIL PROTECTED] writes:
: The problem here is process.  The FreeBSD project now has more than
: 12 core members and more than 12 committers.  With any number larger
: than 12 it is VERY HARD to reach consensus on anything.  Without a
: process by which we agree to reach consensus it is impossible.

There are only only 8 core team members, unless you mean something
different by core here than [EMAIL PROTECTED]

Otherwise, I tend to agree with your basic premise that it is process
and not tools at the heart of this problem.

In addition to process it might be attitude.

Core@ was not elected to be ornamental.

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
[EMAIL PROTECTED] | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-27 Thread Robert Watson


One of the disagreements that seems to be evolving is whether or not the
project formally supports a task-oriented structure.  A couple of people
have asserted that people might claim tasks (such as myself) and by virtue
of claiming the task, be provided with some notion of ownership that is
supported in a more formal sense.  Others have pointed out that in a
volunteer environment, people simply do what they want to regardless of
any task ownership, and would prefer a first-past-the-post model to a task
ownership model.  My assumption had been that disagreement existed to some
extent based on the nature and strength of ownership, but it seems that
I've made a fundamental assumption there that not everyone agrees with.

My feeling has always been that imposing some modicrum of structure is
important: to avoid people stepping on toes, people can announce what
they're working on, and expect that others might avoid replicating the
work, or at least be communicated with before it happens.  The rationale
for this lies both in efficiency (non-replication of work), and to avoid
toe-stepping, since there's a natural notion of ownership over work done,
and a desire to not see it discarded.  Perhaps this can't be supported in
our environment.

Robert N M Watson FreeBSD Core Team, TrustedBSD Project
[EMAIL PROTECTED]  NAI Labs, Safeport Network Services


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-27 Thread M. Warner Losh

: My feeling has always been that imposing some modicrum of structure is
: important: to avoid people stepping on toes, people can announce what
: they're working on, and expect that others might avoid replicating the
: work, or at least be communicated with before it happens.  The rationale
: for this lies both in efficiency (non-replication of work), and to avoid
: toe-stepping, since there's a natural notion of ownership over work done,
: and a desire to not see it discarded.  Perhaps this can't be supported in
: our environment.

In the past, we haven't been strictly a first one past the post
project.  We have rejected things as not being ready for inclusion in
FreeBSD all the time.  Jon Chen's Cardbus work was the second or third
effort that was presented to FreeBSD.  It was the first one
acceptable to those folks that took a look at it.  Sure, it had its
problems, but it was something that could be worked with and people
generally agreed that it was the direction we wanted to go.  The first
one that was presented worked as well, but there were some issues with
the direction that it took, so we didn't integrate it.  We had the
first CardBus implementation almost 9 months or a year before the
second one.

Of course, looking at the past to get precedent can be dicy, since
we've done many things right as a project and many things wrong. :-)

Warner

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-27 Thread George V. Neville-Neil

 In addition to process it might be attitude.
 
It might be a stretch but they are kind of the same.

Good processes come from good attitude.  It is extraordinarily
hard for most people (especially smart people) to be introspective
on such questions when they think they already have the answer.

Sometimes people think that because something works for them
it will work in a group.  But we know that's not always the case.

So, how do we get our attitudes adjusted before hitting a wall,
as many companies I've worked for did?  It comes back to agreeing
on a process by which we work.  We have one now, it may not all
be written down, but we do have it.

Later,
George


-- 
George V. Neville-Neil  [EMAIL PROTECTED]
NIC:GN82 

Those who would trade liberty for temporary security deserve neither 
- Benjamin Franklin



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-27 Thread Andrew Kenneth Milton

+---[ George V. Neville-Neil ]--
|  In addition to process it might be attitude.
|  
|
| So, how do we get our attitudes adjusted before hitting a wall,
| as many companies I've worked for did?

Alcohol and a cam-corder d8)

-- 
Totally Holistic Enterprises Internet|  | Andrew Milton
The Internet (Aust) Pty Ltd  |  |
ACN: 082 081 472 ABN: 83 082 081 472 |  M:+61 416 022 411   | Carpe Daemon
PO Box 837 Indooroopilly QLD 4068|[EMAIL PROTECTED]| 

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-27 Thread George V. Neville-Neil

 One of the disagreements that seems to be evolving is whether or not the
 project formally supports a task-oriented structure.  A couple of people
 have asserted that people might claim tasks (such as myself) and by virtue
 of claiming the task, be provided with some notion of ownership that is
 supported in a more formal sense.  Others have pointed out that in a
 volunteer environment, people simply do what they want to regardless of
 any task ownership, and would prefer a first-past-the-post model to a task
 ownership model.  My assumption had been that disagreement existed to some
 extent based on the nature and strength of ownership, but it seems that
 I've made a fundamental assumption there that not everyone agrees with.
 
 My feeling has always been that imposing some modicrum of structure is
 important: to avoid people stepping on toes, people can announce what
 they're working on, and expect that others might avoid replicating the
 work, or at least be communicated with before it happens.  The rationale
 for this lies both in efficiency (non-replication of work), and to avoid
 toe-stepping, since there's a natural notion of ownership over work done,
 and a desire to not see it discarded.  Perhaps this can't be supported in
 our environment.

I think we need to avoid the concept of imposing some modicum of structure.
If we create structure it is because we need it.  Just like software.  There 
was
a good comment recently about software gets created to scratch an itch.
I'd say that structure gets created because you're tired of losing fingers
and toes to the person next to you wielding the axe.  It's great that your
friends are helping you clear the forest but you'd all like to be able to walk
and pick up your cup of coffee at the end of the day as well.

We are always going to have first past the post problems.  If someone comes
along and has rewritten a whole subsystem, and testing and performance 
measurement
show that it's an order of magnitude better (faster, smaller, etc.) than what 
we have we'd be idiots not to take it, right?

The question is What processes do we need to put in place to make a
project of this size and dynamisticity work?  I put forward a few of them.
I suggest we start somewhere (including airing gripes people have with
the current system) and write down (i.e. build a web page, use TWiki)
what we're going to do about it.

I hate to make this analogy but we need a constitution or something like it.
Not so grandiose of course, but a written set of rules and are easy to 
interpret
that can take care of the 80% case.  The 20% we'll always get to argue over
but I'd rather not argue over the 100%.

Later,
George


-- 
George V. Neville-Neil  [EMAIL PROTECTED]
NIC:GN82 

Those who would trade liberty for temporary security deserve neither 
- Benjamin Franklin



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-26 Thread Robert Watson


On Tue, 26 Feb 2002, Garance A Drosihn wrote:

 I think the main issue here is how long the real repository can be
 locked while waiting for some change to show up.  If work can keep
 going into the main repository, then what does anyone care if someone is
 tracking their own personal work using CVS, or perforce, or a bunch of
 home-grown shell scripts? 

I think the answer varies a great deal by the work that's being done. 
Suppose it's an implementation of mandatory access control on FreeBSD. 
Would it be reasonable for me to request that anyone who is interested in
doing MAC on FreeBSD talk to me first before starting, so we can sync up
and make sure we're coordinating, even if it's going to take 16 months to
implement?  Probably.  Especially given that we'll probably end up
investing at least four man years (probably more) developing it, meaning
that people are unlikely to want to replicate that work when they could
just wait :-).

On the other hand, you could easily argue that the expectations might be
much lower for smaller pieces of work.  For example, the move to td_ucred
required a substantial amount of infrastructure, but the patches
themselves are relatively sane and small.  Once the pieces are all in
place (which they mostly are), knowing that someone has a lock on it is
probably worth a are you still working on this followed by a wait of a
week or two to see if it turns up before forging ahead.

Imagine it's an initial port to IA64.  If someone has announced they're
working on it, you might expect people who would like to assist to
checkpoint, and even wait a couple of months if substantial work has been
done, before cutting it from scratch.

Imagine it's an announced set of patches to clean up some #define's in a
single C file.  That's probably worth a couple of days wait to see if
they're serious about doing it, since it's unlikely to stand in the way of
much, but probably not much more.

This suggests three rules of thumb that might make sense:

(1) The timeout begins when contention occurs, of the lock has been
declared.  This means that if you seriously intend to do some work,
you can say I'm going to do the work, but you don't risk losing the
lock until someone comes to you and says Hey did you ever

(2) The strength (timeout) of the lock depends on the level of investment
by the person holding the lock.  That means if it's a trivial patch,
the time to break the lock is short, perhaps nil, but if it's a large
piece of work, there's the opportunity to say Yes, it's a work in
progress, is that OK?, Give me a week to finish it up, or It's
going to take me a long time, why don't you take over, or in the
worst case I'm doing it followed by a timeout.

(3) Common sense applies.

It also suggests that there be a way to register intent and interest
relating to a topic.  For example, I maintain a web page expressing intent
and on-going work regarding the TrustedBSD Project.  It's linked from the
FreeBSD projects page.  I've posted about it on lists.  That suggests that
I have a relatively strong lock, for some definition of lock.  It doesn't
preclude me from accepting contributions, soliciting contributions, etc. 
It just means that if someone says Ok, that's it, enough waiting, where
is it I probably get a little more patience because people are aware the
work is on-going, before I get timed out and blown off.

Robert N M Watson FreeBSD Core Team, TrustedBSD Project
[EMAIL PROTECTED]  NAI Labs, Safeport Network Services



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-26 Thread David Greenman

In the past week, a number of comments have been made both for and against
additional version control mechanisms being used to supplement the FreeBSD
Project official CVS server.  Proponents of additional mechanisms, such as

   It's my view that work that happens outside of our official CVS repo is
private work no matter what source control system is used (or if one is used
at all). It is always a problem for one developer to say I've got changes to
whatever, so don't touch that part of the system. This might be justified
for a very short period (measured in a few days at most), but anything longer
term will almost certainly put off other developers that may wish to work
in the same or related area.
   This isn't a new problem, either. We've had similar turf conflicts before
that very much resembled the one at hand. So...What's that phrase? - Either
take a dump or get off the pot. Something like that. Developers need to
develop in ways that their work gets out as soon as possible so that 1) Other
developers can review the work as it happens, make comments - perhaps
influencing the design at an early stage when it really needs to be, and
2) So that you don't end up with some buggy mega-commit that has so much
stuff wound up in it that it's nearly impossible to isolate the bugs.
   Anyway, my point is that the Perforce repo itself isn't the problem. The
problem is that people are maintaining private patch sets for long periods
and making claims to the areas that their patches cover. Step-wise evolution
is the only way to go in this distributed development model and in order to
acheive this, private development trees need to be minimized as much as
possible.

-DG

David Greenman
Co-founder, The FreeBSD Project - http://www.freebsd.org
President, TeraSolutions, Inc. - http://www.terasolutions.com
President, Download Technologies, Inc. - http://www.downloadtech.com
Pave the road of life with opportunities.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms(fwd)

2002-02-26 Thread Julian Elischer



On Tue, 26 Feb 2002, Robert Watson wrote:

 
 On Tue, 26 Feb 2002, Garance A Drosihn wrote:
 
 
 On the other hand, you could easily argue that the expectations might be
 much lower for smaller pieces of work.  For example, the move to td_ucred
 required a substantial amount of infrastructure, but the patches
 themselves are relatively sane and small.  Once the pieces are all in
 place (which they mostly are), knowing that someone has a lock on it is
 probably worth a are you still working on this followed by a wait of a
 week or two to see if it turns up before forging ahead.

Bad choice..
p-p_ucred = td-td_ucred in istself requires almost no
infrastracture change, the bulk of the commit is trivial, (AND STILL NOT
COMMITTED) and waiting for weeks on such a trivial thing before being able
to proceed on some interlocking piece is foolish.

Further more as td_ucred can be used almost everywhere p_ucred is used,
and p_ucred is not going away, it could have been done piecemeal
without any danger.. I could change one occurance of p_ucred
to be td-ucred pehour over a 2 month period whenever I had a few spare
cycles and the tree would be none the worse for it.

 
 (1) The timeout begins when contention occurs, of the lock has been
 declared.  This means that if you seriously intend to do some work,
 you can say I'm going to do the work, but you don't risk losing the
 lock until someone comes to you and says Hey did you ever

Locks shouldn't be unilateral and they shouldn't last more that the amount
of time that it takes to import a change and get it stable. i.e. maybe a
week or so at most.  Someone used KSE-II as an example.. They said I had a
2 month lock (??) I don't know where they got that idea from.. I had a
vague concensus that maybe things may be broken for a DAY OR TWO. while
the commit was happenning. I the end it was about right.

 
 (2) The strength (timeout) of the lock depends on the level of investment
 by the person holding the lock.  That means if it's a trivial patch,
 the time to break the lock is short, perhaps nil, but if it's a large
 piece of work, there's the opportunity to say Yes, it's a work in
 progress, is that OK?, Give me a week to finish it up, or It's
 going to take me a long time, why don't you take over, or in the
 worst case I'm doing it followed by a timeout.
 
 (3) Common sense applies.
 
 It also suggests that there be a way to register intent and interest
 relating to a topic.  For example, I maintain a web page expressing intent
 and on-going work regarding the TrustedBSD Project.  It's linked from the
 FreeBSD projects page.  I've posted about it on lists.  That suggests that
 I have a relatively strong lock, for some definition of lock.  It doesn't
 preclude me from accepting contributions, soliciting contributions, etc. 
 It just means that if someone says Ok, that's it, enough waiting, where
 is it I probably get a little more patience because people are aware the
 work is on-going, before I get timed out and blown off.
 
 Robert N M Watson FreeBSD Core Team, TrustedBSD Project
 [EMAIL PROTECTED]  NAI Labs, Safeport Network Services
 
 
 
 To Unsubscribe: send mail to [EMAIL PROTECTED]
 with unsubscribe freebsd-current in the body of the message
 


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-26 Thread Peter Wemm

David Greenman wrote:
 In the past week, a number of comments have been made both for and against
 additional version control mechanisms being used to supplement the FreeBSD
 Project official CVS server.  Proponents of additional mechanisms, such as
 
It's my view that work that happens outside of our official CVS repo is
 private work no matter what source control system is used (or if one is used
 at all). It is always a problem for one developer to say I've got changes to
 whatever, so don't touch that part of the system. This might be justified
 for a very short period (measured in a few days at most), but anything longer
 term will almost certainly put off other developers that may wish to work
 in the same or related area.
This isn't a new problem, either. We've had similar turf conflicts before
 that very much resembled the one at hand. So...What's that phrase? - Either
 take a dump or get off the pot. Something like that. Developers need to
 develop in ways that their work gets out as soon as possible so that 1) Other
 developers can review the work as it happens, make comments - perhaps
 influencing the design at an early stage when it really needs to be, and
 2) So that you don't end up with some buggy mega-commit that has so much
 stuff wound up in it that it's nearly impossible to isolate the bugs.
Anyway, my point is that the Perforce repo itself isn't the problem. The
 problem is that people are maintaining private patch sets for long periods
 and making claims to the areas that their patches cover. Step-wise evolution
 is the only way to go in this distributed development model and in order to
 acheive this, private development trees need to be minimized as much as
 possible.

Some things are too impractically large to do incrementally and are an
all-or-nothing thing.  I recall seeing your early VM commits which were huge,
you had been working on for months, and were not incremental things.

I'm not taking sides on what has been done offline in the current fights
with this statement, but I do take issue with statements that everything
can and should be done incrementally.

Take the sparc64 stuff. For quite some time, they had hacks in the generic
PCI code that was deemed unacceptable to the rest of the platforms.

The trick to things working smoothly is to not overuse stuff out of the cvs
tree.

Cheers,
-Peter
--
Peter Wemm - [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
All of this is for nothing if we don't go to the stars - JMS/B5


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-26 Thread Robert Watson


On Tue, 26 Feb 2002, Julian Elischer wrote:

  On the other hand, you could easily argue that the expectations might be
  much lower for smaller pieces of work.  For example, the move to td_ucred
  required a substantial amount of infrastructure, but the patches
  themselves are relatively sane and small.  Once the pieces are all in
  place (which they mostly are), knowing that someone has a lock on it is
  probably worth a are you still working on this followed by a wait of a
  week or two to see if it turns up before forging ahead.
 
 Bad choice..
 p-p_ucred = td-td_ucred in istself requires almost no
 infrastracture change, the bulk of the commit is trivial, (AND STILL NOT
 COMMITTED) and waiting for weeks on such a trivial thing before being able
 to proceed on some interlocking piece is foolish.

I was referring to its dependency on KSE.

  (1) The timeout begins when contention occurs, of the lock has been
  declared.  This means that if you seriously intend to do some work,
  you can say I'm going to do the work, but you don't risk losing the
  lock until someone comes to you and says Hey did you ever
 
 Locks shouldn't be unilateral and they shouldn't last more that the
 amount of time that it takes to import a change and get it stable. i.e.
 maybe a week or so at most.  Someone used KSE-II as an example.. They
 said I had a 2 month lock (??) I don't know where they got that idea
 from.. I had a vague concensus that maybe things may be broken for a DAY
 OR TWO. while the commit was happenning. I the end it was about right. 

So it sounds like we disagree on what a lock is.  My interpretation of the
word lock was that it refered to ownership of a task.  For example, we
gave you ownership of the general task of pushing KSE forwards.  This
means that if someone turns up and says I have SAs, I did it entirely
differently, I'm going to commit it now we might say Hold just a second
there.  We'd probably say that even if they said I have SAs, I did them
entirely the same way, I'm going to commit it now.

The model I'm thinking of is really about someone saying I'm going to go
work on foo.  Please don't work on foo without talking to me first,
because it would be a shame to waste all my time, or all your time, by not
coordinating.   I consider this to be more of a lock based on intention
than a hard lock.  It's about avoiding duplicate work, trodden on toes,
etc.  It might be akin to claiming a task from a public task list.

The lock you're describing appears to be more of a source tree lock: no
one touch this section of the source tree, because someone is doing work
relating to it in another tree.  For example, someone might ask that no
one touch the USB code for a few days while a change is phased in.  Or
that people expect the tree to break for a few days as a large API change
is phased in and the final integration tested.  This is not the kind of
lock I'm talking about.

Robert N M Watson FreeBSD Core Team, TrustedBSD Project
[EMAIL PROTECTED]  NAI Labs, Safeport Network Services



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-26 Thread David Greenman

Anyway, my point is that the Perforce repo itself isn't the problem. The
 problem is that people are maintaining private patch sets for long periods
 and making claims to the areas that their patches cover. Step-wise evolution
 is the only way to go in this distributed development model and in order to
 acheive this, private development trees need to be minimized as much as
 possible.

Some things are too impractically large to do incrementally and are an
all-or-nothing thing.  I recall seeing your early VM commits which were huge,
you had been working on for months, and were not incremental things.

   Actually, most VM system work that was done was developed over a period of
a few weeks at most, and in most cases were developed and tested in less than
a week. John Dyson had some stuff that brewed for a month or so and in fact
that caused some problems when I wanted to work in a similar area. In those
cases, John D and I collaborated very closely on the VM work, and often
emailed each other patches to integrate into each other's trees. ...but the
important point is that I don't believe that we ever told people not to work
on the VM system because it might conflict with our work. We told people not
to work on it because it was too delicate and too easily broken. :-)

-DG

David Greenman
Co-founder, The FreeBSD Project - http://www.freebsd.org
President, TeraSolutions, Inc. - http://www.terasolutions.com
President, Download Technologies, Inc. - http://www.downloadtech.com
Pave the road of life with opportunities.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-26 Thread David Greenman

Some things are too impractically large to do incrementally and are an
all-or-nothing thing.  I recall seeing your early VM commits which were huge,
you had been working on for months, and were not incremental things.

   Actually, most VM system work that was done was developed over a period of
a few weeks at most, and in most cases were developed and tested in less than
a week. John Dyson had some stuff that brewed for a month or so and in fact
that caused some problems when I wanted to work in a similar area. In those
cases, John D and I collaborated very closely on the VM work, and often
emailed each other patches to integrate into each other's trees. ...but the
important point is that I don't believe that we ever told people not to work
on the VM system because it might conflict with our work. We told people not
to work on it because it was too delicate and too easily broken. :-)

   Oh, and one more thing... It was ALWAYS forefront in our minds to get any
work that we had done committed as soon as possible, specifically to avoid
having to deal with conflicts that other people may make, to avoid bit-rot
in our working kernel trees, and to get the changes out to the masses for
maximal testing. I continue to feel strongly that this is the only way to
be successful in developing for FreeBSD.
   Now, I'm talking about changes to existing files in FreeBSD of course.
People that bring whole new arch ports to the kernel have a different
problem, but in those cases the overlap with existing files in FreeBSD is
very minimal, so longer delays to commit would not normally affect anyone
else.

-DG

David Greenman
Co-founder, The FreeBSD Project - http://www.freebsd.org
President, TeraSolutions, Inc. - http://www.terasolutions.com
President, Download Technologies, Inc. - http://www.downloadtech.com
Pave the road of life with opportunities.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms (fwd)

2002-02-26 Thread Robert Watson


On Tue, 26 Feb 2002, Garance A Drosihn wrote:

 That would be me...
 
 I meant lock in the sense of expecting no one to make any major
 changes in the same area of code.  I seem to remember you asking for
 such a lock (to use the term loosely) in July, and the KSE work going
 in around August or so.  My memory is admittedly vague.  My point was
 you explicitly asked for permission to go ahead with that work, even
 though (at the time) we were shooting for a release date in November. 
 
 I don't mean the period of time that -current was actually unstable, but
 the amount of time that other developers were asked to stay away from a
 major section of code. 

So it seems to me we have at least three types of locks now, actually:

(1) Locks protecting specific bits of code in the tree; for example,
during a merge effort that requires several commits over a few days to
a week.  This should be very short. 

(2) Locks that protect a subsystem from substantial changes, such as a
request to not change vm_mmap.c for a week or two during a rewrite:
small changes might be fine, but larger ones would substantially
hamper the work.  These should also be short. 

(3) Locks that protect a particular task on a particular piece of code.
These simply assert Don't do this particular activity, becasue I'm
doing it.  My feeling is that these should be permitted to be long,
and are in fact desirable.  They wouldn't protect against changes in
the subsystem, just identical changes in the subsystem, subject to
common sense.

Robert N M Watson FreeBSD Core Team, TrustedBSD Project
[EMAIL PROTECTED]  NAI Labs, Safeport Network Services




To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Discussion of guidelines for additional version control mechanisms(fwd)

2002-02-26 Thread Julian Elischer



On Tue, 26 Feb 2002, Robert Watson wrote:

 
 On Tue, 26 Feb 2002, Julian Elischer wrote:
 
   On the other hand, you could easily argue that the expectations might be
   much lower for smaller pieces of work.  For example, the move to td_ucred
   required a substantial amount of infrastructure, but the patches
   themselves are relatively sane and small.  Once the pieces are all in
   place (which they mostly are), knowing that someone has a lock on it is
   probably worth a are you still working on this followed by a wait of a
   week or two to see if it turns up before forging ahead.
  
  Bad choice..
  p-p_ucred = td-td_ucred in istself requires almost no
  infrastracture change, the bulk of the commit is trivial, (AND STILL NOT
  COMMITTED) and waiting for weeks on such a trivial thing before being able
  to proceed on some interlocking piece is foolish.
 
 I was referring to its dependency on KSE.
 
   (1) The timeout begins when contention occurs, of the lock has been
   declared.  This means that if you seriously intend to do some work,
   you can say I'm going to do the work, but you don't risk losing the
   lock until someone comes to you and says Hey did you ever
  
  Locks shouldn't be unilateral and they shouldn't last more that the
  amount of time that it takes to import a change and get it stable. i.e.
  maybe a week or so at most.  Someone used KSE-II as an example.. They
  said I had a 2 month lock (??) I don't know where they got that idea
  from.. I had a vague concensus that maybe things may be broken for a DAY
  OR TWO. while the commit was happenning. I the end it was about right. 
 
 So it sounds like we disagree on what a lock is.  My interpretation of the
 word lock was that it refered to ownership of a task.  For example, we
 gave you ownership of the general task of pushing KSE forwards.  This
 means that if someone turns up and says I have SAs, I did it entirely
 differently, I'm going to commit it now we might say Hold just a second
 there.  We'd probably say that even if they said I have SAs, I did them
 entirely the same way, I'm going to commit it now.
]

Sore point:
phk: I've got DEVFS, I did it differently it's much better than tho
old fully working one. I'm going to check it in now
core: OK 
phk: Ok I deleted parts of the old devfs so that it's now totally uselss.
[2 years pass, system has no useable devfs..]
phk: ok here's my devfs.. of course it doesn't work as well as the old one
but it's much better. [checks in non working code]
oops: spends 3 months getting bugs ironed out. Completed devfs
still doesn't do (by design) as much as the old one..

 
 The model I'm thinking of is really about someone saying I'm going to go
 work on foo.  Please don't work on foo without talking to me first,
 because it would be a shame to waste all my time, or all your time, by not
 coordinating.   I consider this to be more of a lock based on intention
 than a hard lock.  It's about avoiding duplicate work, trodden on toes,
 etc.  It might be akin to claiming a task from a public task list.
 
 The lock you're describing appears to be more of a source tree lock: no
 one touch this section of the source tree, because someone is doing work
 relating to it in another tree.  For example, someone might ask that no
 one touch the USB code for a few days while a change is phased in.  Or
 that people expect the tree to break for a few days as a large API change
 is phased in and the final integration tested.  This is not the kind of
 lock I'm talking about.

But you see I am doing KSE despite the fact that other people are changing 
and improving code that is central to KSE all the time.
When it happens I integrate the change, modify it to handle threads and
move on. Even John does this but it's OTHER PEOPLE who keep leaping up 
and demanding that things not be committed becasue it may give john a
headache.. well, his lock is to long
(and anyhow it's not a lock. It's just what he's working on.
it can't be allowed to screw over everybody.


 
 Robert N M Watson FreeBSD Core Team, TrustedBSD Project
 [EMAIL PROTECTED]  NAI Labs, Safeport Network Services
 
 
 


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message