OpenSolaris

Discussions Communities Projects Download Source Browser

Home » OpenSolaris Forums » cab » discuss

Thread: SCM and its effect on governance

Welcome, Guest Help
Login Login
Guest Settings Guest Settings
Reply to this Thread Reply to this Thread Search Forum Search Forum Back to Thread List Back to Thread List

Permlink Replies: 14 - Last Post: Oct 17, 2005 10:19 AM by: Karyn Ritter
fielding

Posts: 142
From: Newport Beach, California

Registered: 4/27/05
SCM and its effect on governance
Posted: Oct 11, 2005 2:36 PM

  Click to reply to this thread Reply

> Subversion isn't a distributed SCM, so it's not a contender for that
> portion. (The simplest way to identify a distributed SCM is that one
> repository can pull from or push to any other as a natural operation.)

I think we have been given this as a requirement from Sun engineering
without any consideration for its effect on governance.

The model of development using a distributed SCM is for each
individual or team to maintain its own branches and occasionally
submit complete change sets to a higher-level individual managing
a gateway for release. In general, there is no independent review
of such changes until a merge/put-over is requested, at which time
the benevolent dictator/gateway for the destination branch
determines, possibly after consulting with others, whether or not
the merge takes place.

That model fits the development process at Sun today because
there is a known hierarchy of Sun employees whose role is to act
as a gateway manager according to the procedures set out by Sun.

Coincidentally (or not), it is also the model that Linux uses
for inclusion of code in the kernel, and what most of the Linux
distros use for the rest of their operating systems as well
(i.e., package maintainers as gateways).

It is important to note, however, that this is not collaborative
development in the Apache sense of development. It is open source
by virtue of the resulting products, but not collaborative because
there is no notion of peers in the decision-making process. It is
truly hierarchical in both authority and life cycle -- each
individual gateway controls its own destiny until the maintainer
fails, at which point a new maintainer is assigned or the software
replaced by an entirely separate line of development with its
own maintainer. In fact, even with an active maintainer, the
normal result of a change request is that the benevolent dictator
takes the patch and changes it arbitrarily to fit what they
personally feel is worth committing to their own code base.

Hierarchy has the advantage of there not being a need to vote on
decisions, but has the disadvantages of there being almost no peer
review of independently delivered parts until very late in the
development process (typically, long after the original developer
has any interest in making changes to correspond to reviewer input)
and an extreme vulnerability to benevolent dictator overload.

This is in contrast to the collaborative model used by FreeBSD,
Apache, PHP, etc., wherein almost all development takes place
on branches within a single centralized repository viewable
by everyone interested in the project and changes are reviewed
as soon as they are made. This model removes barriers to entry
from the community, allowing them to participate in development
during the stages when their participation has the greatest
impact (i.e., design and early prototyping). It also gives the
public an easy way to start contributing, simply by reviewing
commit messages as they occur and pointing out mistakes when
they are inserted in the code.

When I got involved in OpenSolaris, folks assured me that Sun
wanted to see a governance model that reflected the collaborative
method of open source, not the benevolent dictatorship of Linux.
However, every time we talk to Sun engineering it seems clear that
they assume their current model of development cannot be changed
and thus nothing other than distributed SCM is possible. Such a
model assumes that key Sun engineers will be the gateways and
Sun ARCs will define the minimal criteria for gateway acceptance.

I think hell will freeze over before Sun will allow any outsiders
to be a benevolent dictator for any portion of OpenSolaris
considered essential to Solaris. The collaborative model is safe
for Sun because it has the effect of protecting everyone's most
important interests (veto power on changes based on technical
rationale) while treating everyone as peers. In contrast, the
hierarchical model places an individual in that position and
everyone must trust that individual to be even-handed.
Nevertheless, it is still a valid model for OpenSolaris, since
there is no effective difference between having a closed group
at Sun determine who the dictators shall be versus the Linux
method of having Linus Torvalds do the same. I should note,
however, that Linux would have failed miserably if Linus were
not such a nice guy that is respected by the entire community.

So, I have to ask again: what is it that Sun wants in a governance
model for OpenSolaris? Do you want a collaborative model in which
outsiders are peers in the development process, or do you want
a hierarchical model in which outsiders merely contribute and hope
to obtain benefits from the process? Do you want this project to
be more like Linux or more like FreeBSD?

I can write a governance process that works one way or the
other, but I will not write one that attempts to do both.
Dictators and collaborative development do not mix.

....Roy

_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



gman

Posts: 1,901
From: NZ

Registered: 6/16/05
Re: SCM and its effect on governance
Posted: Oct 11, 2005 3:41 PM   in response to: fielding

  Click to reply to this thread Reply

Hey,

On Tue, 2005-10-11 at 14:36 -0700, Roy T. Fielding wrote:
> > Subversion isn't a distributed SCM, so it's not a contender for that
> > portion. (The simplest way to identify a distributed SCM is that one
> > repository can pull from or push to any other as a natural operation.)
>
> I think we have been given this as a requirement from Sun engineering
> without any consideration for its effect on governance.

Not to be too negative, but have we? I've seen zero requirements being
published out on the public lists, which I find personally quite
disappointing on such a wide reaching decision.


Glynn



_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



alhopper

Posts: 803
From: Plano, TX

Registered: 4/27/05
Re: SCM and its effect on governance
Posted: Oct 12, 2005 7:16 AM   in response to: gman

  Click to reply to this thread Reply

On Wed, 12 Oct 2005, Glynn Foster wrote:

> Hey,
>
> On Tue, 2005-10-11 at 14:36 -0700, Roy T. Fielding wrote:
> > > Subversion isn't a distributed SCM, so it's not a contender for that
> > > portion. (The simplest way to identify a distributed SCM is that one
> > > repository can pull from or push to any other as a natural operation.)
> >
> > I think we have been given this as a requirement from Sun engineering
> > without any consideration for its effect on governance.
>
> Not to be too negative, but have we? I've seen zero requirements being
> published out on the public lists, which I find personally quite
> disappointing on such a wide reaching decision.

Agreed. The analysis that was done was not shared with the community or
done with community input or participation. The result of the analysis,
which took several weeks, was shared in a 5 line (or so) paragraph. In
fact, I don't even know who worked on the analysis!

I'll persue this up as a CAB action item. We can, and must, do better than
this type of "black op" behavior if the OpenSolaris project is to be
successful.

Regards,

Al Hopper Logical Approach Inc, Plano, TX. al@logical-approach.com
Voice: 972.379.2133 Fax: 972.379.2134 Timezone: US CDT
OpenSolaris.Org Community Advisory Board (CAB) Member - Apr 2005
_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



kupfer

Posts: 824
From: US

Registered: 3/9/05
Re: SCM and its effect on governance
Posted: Oct 12, 2005 9:37 AM   in response to: gman

  Click to reply to this thread Reply

>>>>> "Glynn" == Glynn Foster <Glynn dot Foster at sun dot com> writes:

Roy> I think we have been given this as a requirement from Sun engineering
Roy> without any consideration for its effect on governance.

Glynn> Not to be too negative, but have we? I've seen zero requirements
Glynn> being published out on the public lists, which I find personally
Glynn> quite disappointing on such a wide reaching decision.

Hmm, for some reason I was under the impression that a draft
requirements list was yet to be sent out for comments.

But anyway, I agree that the SCM requirements need discussion, including
the question of centralized-vs-distributed.

mike
_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



alhopper

Posts: 803
From: Plano, TX

Registered: 4/27/05
Re: SCM and its effect on governance
Posted: Oct 12, 2005 7:18 AM   in response to: fielding

  Click to reply to this thread Reply

On Tue, 11 Oct 2005, Roy T. Fielding wrote:

> > Subversion isn't a distributed SCM, so it's not a contender for that
> > portion. (The simplest way to identify a distributed SCM is that one
> > repository can pull from or push to any other as a natural operation.)
>
> I think we have been given this as a requirement from Sun engineering
> without any consideration for its effect on governance.
>
> The model of development using a distributed SCM is for each
> individual or team to maintain its own branches and occasionally
> submit complete change sets to a higher-level individual managing
> a gateway for release. In general, there is no independent review
> of such changes until a merge/put-over is requested, at which time
> the benevolent dictator/gateway for the destination branch
> determines, possibly after consulting with others, whether or not
> the merge takes place.
>
> That model fits the development process at Sun today because
> there is a known hierarchy of Sun employees whose role is to act
> as a gateway manager according to the procedures set out by Sun.
>
> Coincidentally (or not), it is also the model that Linux uses
> for inclusion of code in the kernel, and what most of the Linux
> distros use for the rest of their operating systems as well
> (i.e., package maintainers as gateways).
>
> It is important to note, however, that this is not collaborative
> development in the Apache sense of development. It is open source
> by virtue of the resulting products, but not collaborative because
> there is no notion of peers in the decision-making process. It is
> truly hierarchical in both authority and life cycle -- each
> individual gateway controls its own destiny until the maintainer
> fails, at which point a new maintainer is assigned or the software
> replaced by an entirely separate line of development with its
> own maintainer. In fact, even with an active maintainer, the
> normal result of a change request is that the benevolent dictator
> takes the patch and changes it arbitrarily to fit what they
> personally feel is worth committing to their own code base.
>
> Hierarchy has the advantage of there not being a need to vote on
> decisions, but has the disadvantages of there being almost no peer
> review of independently delivered parts until very late in the
> development process (typically, long after the original developer
> has any interest in making changes to correspond to reviewer input)
> and an extreme vulnerability to benevolent dictator overload.
>
> This is in contrast to the collaborative model used by FreeBSD,
> Apache, PHP, etc., wherein almost all development takes place
> on branches within a single centralized repository viewable
> by everyone interested in the project and changes are reviewed
> as soon as they are made. This model removes barriers to entry
> from the community, allowing them to participate in development
> during the stages when their participation has the greatest
> impact (i.e., design and early prototyping). It also gives the
> public an easy way to start contributing, simply by reviewing
> commit messages as they occur and pointing out mistakes when
> they are inserted in the code.
>
> When I got involved in OpenSolaris, folks assured me that Sun
> wanted to see a governance model that reflected the collaborative
> method of open source, not the benevolent dictatorship of Linux.
> However, every time we talk to Sun engineering it seems clear that
> they assume their current model of development cannot be changed
> and thus nothing other than distributed SCM is possible. Such a
> model assumes that key Sun engineers will be the gateways and
> Sun ARCs will define the minimal criteria for gateway acceptance.
>
> I think hell will freeze over before Sun will allow any outsiders
> to be a benevolent dictator for any portion of OpenSolaris
> considered essential to Solaris. The collaborative model is safe
> for Sun because it has the effect of protecting everyone's most
> important interests (veto power on changes based on technical
> rationale) while treating everyone as peers. In contrast, the
> hierarchical model places an individual in that position and
> everyone must trust that individual to be even-handed.
> Nevertheless, it is still a valid model for OpenSolaris, since
> there is no effective difference between having a closed group
> at Sun determine who the dictators shall be versus the Linux
> method of having Linus Torvalds do the same. I should note,
> however, that Linux would have failed miserably if Linus were
> not such a nice guy that is respected by the entire community.
>
> So, I have to ask again: what is it that Sun wants in a governance
> model for OpenSolaris? Do you want a collaborative model in which
> outsiders are peers in the development process, or do you want
> a hierarchical model in which outsiders merely contribute and hope
> to obtain benefits from the process? Do you want this project to
> be more like Linux or more like FreeBSD?
>
> I can write a governance process that works one way or the
> other, but I will not write one that attempts to do both.
> Dictators and collaborative development do not mix.

Agreed on all points.
Lets put this on the agenda for todays CAB call.

Regards,

Al Hopper Logical Approach Inc, Plano, TX. al@logical-approach.com
Voice: 972.379.2133 Fax: 972.379.2134 Timezone: US CDT
OpenSolaris.Org Community Advisory Board (CAB) Member - Apr 2005
_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



plocher

Posts: 1,495
From:

Registered: 5/18/05
Re: SCM and its effect on governance
Posted: Oct 12, 2005 9:44 AM   in response to: alhopper

  Click to reply to this thread Reply

>>The model of development using a distributed SCM is for each
>>individual or team to maintain its own branches and occasionally
>>submit complete change sets to a higher-level individual managing
>>a gateway for release. In general, there is no independent review
>>of such changes until a merge/put-over is requested, at which time
>>the benevolent dictator/gateway for the destination branch
>>determines, possibly after consulting with others, whether or not
>>the merge takes place.
>>
>>That model fits the development process at Sun today because
>>there is a known hierarchy of Sun employees whose role is to act
>>as a gateway manager according to the procedures set out by Sun.
>>
>>Coincidentally (or not), it is also the model that Linux uses
>>for inclusion of code in the kernel, and what most of the Linux
>>distros use for the rest of their operating systems as well
>>(i.e., package maintainers as gateways).


This is a flawed view of Sun's development model for Solaris.
I agree, that if that *were* the proposed model, I would be
uncomfortable with it as well - "gatekeeper as dictator" is
an unacceptable state.

Fortunately, this is not the case. The difference - as I wrote
here on Aug 23
http://www.opensolaris.org/jive/thread.jspa?messageID=8058ὺ
is that the "sun-style-gatekeeper" is not the hierarchical dictator
as you might find in Linux et al.

Instead, the role of decision maker is formalized into community
based behaviors:
1) a general "do we want it?", managed entirely by
the community and expressed as intent, policy or
guidelines as needed. The suggested "three +1's
and no -1's" is one such expression.
2) a specific "is this change architecturally acceptable?",
managed by the architectural review committee(s) which
are "staffed" entirely by community members, who perform
peer review of the proposal.

The role of the "sun-style-gatekeeper" is simply to ensure that
all requested putbacks/commits have these two "approvals".


The expected work flow follows this course time line:

1. An idea for <something> germinates into
something that a part of the community
wishes to work on.
2. A proposal is generated that addresses the
architectural/technical intent of the <something>
3. The community determines whether or not the
proposed <something> fits within the norms of
their community.
4. The ARC(s?) determine whether the proposal
is acceptable; if not, it suggests/requires
changes, or it denies the proposal completely.
5. Armed with the above "approvals", the project
team goes off, creates a SCM branch to work
with, does its development however it desires,
tests it and does whatever is needed to complete
the job it signed up to do.
6. When complete, the team selects a release branch
to integrate into, and requests that its
gatekeeper integrate their changes. If the
team has obtained the above "approvals" and
the release is in a state to accept the change
(i.e., not in a formal release end-game...)
the gatekeeper is obligated to integrate the
change.
7. The team's branch is merged with the release
branch, tested, and a new release is published.
The team branch can be deleted, as it has no
more function.

The core difference, which I see as a "terminology" rather than
"practice" disconnect, is the impact of where a branch is maintained.
You seem to equate "distributed SCM" with pushing branch development
out of the public view, with the only alternative of forcing all
branch development to take place in a single centralized repository.
I don't think that this matters much, as long as all the sub-
communities that are working on O.S. things have a branch that
is available in a place where they can all work on it together.

> Such a
> model assumes that key Sun engineers will be the gateways and
> Sun ARCs will define the minimal criteria for gateway acceptance.

I'd rewrite this:

Such a model assumes that key _community_ engineers will be the
gateways and _community staffed_ ARCs will define the minimal
criteria for gateway acceptance.

(of course, as we transition from "current status quo" to this
future state, there will be a time at the beginning where the
gatekeepers will be Sun engineers (Hi Danek!) and the ARCs will
be staffed by Sun engineers (Hi PSARC!), but this *will* change)

Your points about Apache (et al) are exactly my target as well:

The collaborative model is safe for Sun because it
has the effect of protecting everyone's most important
interests (veto power on changes based on technical
rationale) while treating everyone as peers.

A hierarchical model in which outsiders merely contribute and hope
to obtain benefits from the process is flawed and can not work.

-John
_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



imp

Posts: 1,174
From: IL

Registered: 4/27/05
Re: SCM and its effect on governance
Posted: Oct 12, 2005 10:14 AM   in response to: plocher

  Click to reply to this thread Reply

On 10/12/05, John Plocher <John dot Plocher at sun dot com> wrote:
John,

I understand that the flow below is your view of how tings suppose
to work in OpenSolaris, right ? If so I quite disagree with you.
See below:

>
> The expected work flow follows this course time line:
>
> 1. An idea for <something> germinates into
> something that a part of the community
> wishes to work on.

Naturally.

> 2. A proposal is generated that addresses the
> architectural/technical intent of the <something>

This may or may not be the case... Sometimes people just
want to experiment in order to _get_ to proposals.
They still however are part of the community and have a right
for existance.

> 3. The community determines whether or not the
> proposed <something> fits within the norms of
> their community.

That step is unneeded, IMHO. Community can come and go
as needed. It should not be something with hard walls and
boundaries. In any case the whole [special] community
existance should have nothing to do with the development.
And indeed it so today - look at UG community.

> 4. The ARC(s?) determine whether the proposal
> is acceptable; if not, it suggests/requires
> changes, or it denies the proposal completely.

That seems to be WAY to wrong to me. Do you really suggest
that in order to develop something for OpenSolaris I need
ARC (or whatever other comitee) approval ??? That may be
the case for the Sun corporate environment, where engineering
resources need to be quantified (since they are finite) and used
wisely. However, in the open world no ARC can tell me what to
do. Insisting on that role for ARC will only provocate forks and serve
little good to the community at large.

> 5. Armed with the above "approvals", the project
> team goes off, creates a SCM branch to work
> with, does its development however it desires,
> tests it and does whatever is needed to complete
> the job it signed up to do.

Once again, what prevents me from doing it even today ?
Without any ARC approval ? Heck, Polaris community did
it already. So what's the point ?

> 6. When complete, the team selects a release branch
> to integrate into, and requests that its
> gatekeeper integrate their changes. If the
> team has obtained the above "approvals" and
> the release is in a state to accept the change
> (i.e., not in a formal release end-game...)
> the gatekeeper is obligated to integrate the
> change.

That has to be different, since at this point intervention of
ARC (or any other relevant comitee) may (should?) be required
in order to determine the eligibility of the project integration into the
main release.


> 7. The team's branch is merged with the release
> branch, tested, and a new release is published.
> The team branch can be deleted, as it has no
> more function.

Right, no problems here :)


I have overall impression that the whole model is an adaptation
of the Sun' current scheme to a wider audience. I believe that
it cannot go that way. You just cannot manage the community
as a group of Sun employees. And if you'll create a a tough
rules, people will leave. That should no happen.


Regards,
Cyril
_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



alhopper

Posts: 803
From: Plano, TX

Registered: 4/27/05
Re: SCM and its effect on governance
Posted: Oct 12, 2005 11:23 AM   in response to: imp

  Click to reply to this thread Reply

On Wed, 12 Oct 2005, Cyril Plisko wrote:

> On 10/12/05, John Plocher <John dot Plocher at sun dot com> wrote:
> John,
>
> I understand that the flow below is your view of how tings suppose
> to work in OpenSolaris, right ? If so I quite disagree with you.
> See below:
>
> >
> > The expected work flow follows this course time line:
> >
> > 1. An idea for <something> germinates into
> > something that a part of the community
> > wishes to work on.
>
> Naturally.
>
> > 2. A proposal is generated that addresses the
> > architectural/technical intent of the <something>
>
> This may or may not be the case... Sometimes people just
> want to experiment in order to _get_ to proposals.
> They still however are part of the community and have a right
> for existance.
>
> > 3. The community determines whether or not the
> > proposed <something> fits within the norms of
> > their community.
>
> That step is unneeded, IMHO. Community can come and go
> as needed. It should not be something with hard walls and
> boundaries. In any case the whole [special] community
> existance should have nothing to do with the development.
> And indeed it so today - look at UG community.
>
> > 4. The ARC(s?) determine whether the proposal
> > is acceptable; if not, it suggests/requires
> > changes, or it denies the proposal completely.
>
> That seems to be WAY to wrong to me. Do you really suggest
> that in order to develop something for OpenSolaris I need
> ARC (or whatever other comitee) approval ??? That may be
> the case for the Sun corporate environment, where engineering
> resources need to be quantified (since they are finite) and used
> wisely. However, in the open world no ARC can tell me what to
> do. Insisting on that role for ARC will only provocate forks and serve
> little good to the community at large.

There are a couple of points to be made here.

a) This review is necessary only for someone who wants to see their work
ultimately integrated into Solaris - the commercial project. If your
intent is not to have the work integrated - then you don't need to bother
with this. But ... see more below.

b) If you do intend to see your work integrated into Solaris, the
commercial distribution of OpenSolaris, then early review is intended to
catch "silly" things like:

- someone else is already 80% done with what you're proposing

- someone else tried your (technical) approach before and found it not to
work. So the ARC will tell you why it did'nt work and what was flawed with
it. And possibly make available the associated email threads - or at least
a sanitized version of them.

- there is a design/architecture decision you've made that violates one of
the Solaris core values, like, for example, backward compatibility etc.

- there is a design decision you've made that is not compatible with the
future direction of OpenSolaris

- you've missed some key functionality that is necessary to integrate it
successfully. For example, to support truss, or zones or DTrace or blah,
blah.

- you're suggesting a software architecture that might be fine in a
userland application, but could cause not deterministic behavior in an OS
kernel; or cause unexpected and objectionable response time hiccups to
other applications etc.

The early ARC review may also help you sharpen your development skills -
becuase it'll allow you to tap into a bunch of engineering talent with a
proven track record of success. Or prevent you from making a silly error
by omission etc.

--- topic change ---

Three members of the CAB have been closely involved with the Development
Process re-engineering efforts that have been a work in progress for
several months now. That work is close to initial/draft publication, and I
think, that when you see the entire process, and not a simplified summary
of it that John P provided, it'll make more sense and be acceptable to the
majority of serious OpenSolaris developers IMHO.

I can understand your initial reaction to Johns email ... but please
reserve judgement until you see the entire process. I think that you'll
find that most of what that process describes is already being done by most
serious developers. But many developers probably have not seen it written
down, or formalized before.

The intent is to help and not hinder the development process and to insure
a painless integration of your work into Solaris - while maintaining the
level of reliability, correctness and stability that Solaris is well known
for.

Don't forget that OpenSolaris members will be able to particpate at every
point in the process.

So .... please hang in there for a little longer until you see the entire
development process published. I think it'll be a easy "sell" for most
serious developers.


> > 5. Armed with the above "approvals", the project
> > team goes off, creates a SCM branch to work
> > with, does its development however it desires,
> > tests it and does whatever is needed to complete
> > the job it signed up to do.
>
> Once again, what prevents me from doing it even today ?
> Without any ARC approval ? Heck, Polaris community did
> it already. So what's the point ?
>
> > 6. When complete, the team selects a release branch
> > to integrate into, and requests that its
> > gatekeeper integrate their changes. If the
> > team has obtained the above "approvals" and
> > the release is in a state to accept the change
> > (i.e., not in a formal release end-game...)
> > the gatekeeper is obligated to integrate the
> > change.
>
> That has to be different, since at this point intervention of
> ARC (or any other relevant comitee) may (should?) be required
> in order to determine the eligibility of the project integration into the
> main release.
>
>
> > 7. The team's branch is merged with the release
> > branch, tested, and a new release is published.
> > The team branch can be deleted, as it has no
> > more function.
>
> Right, no problems here :)
>
>
> I have overall impression that the whole model is an adaptation
> of the Sun' current scheme to a wider audience. I believe that
> it cannot go that way. You just cannot manage the community
> as a group of Sun employees. And if you'll create a a tough
> rules, people will leave. That should no happen.
>
>
> Regards,
> Cyril
>

Al Hopper Logical Approach Inc, Plano, TX. al@logical-approach.com
Voice: 972.379.2133 Fax: 972.379.2134 Timezone: US CDT
OpenSolaris.Org Community Advisory Board (CAB) Member - Apr 2005
_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



imp

Posts: 1,174
From: IL

Registered: 4/27/05
Re: SCM and its effect on governance
Posted: Oct 12, 2005 12:38 PM   in response to: alhopper

  Click to reply to this thread Reply

On 10/12/05, Al Hopper <al@logical-approach.com> wrote:
> On Wed, 12 Oct 2005, Cyril Plisko wrote:

Al,

I can see your point, however, I do have a couple of thoughts,
See below:

>
> There are a couple of points to be made here.
>
> a) This review is necessary only for someone who wants to see their work
> ultimately integrated into Solaris - the commercial project. If your
> intent is not to have the work integrated - then you don't need to bother
> with this. But ... see more below.
>
> b) If you do intend to see your work integrated into Solaris, the
> commercial distribution of OpenSolaris, then early review is intended to
> catch "silly" things like:

That's quite a dangerous choice of wording, 'cause it sounds like Solaris
as an OpenSolaris-based distribution is special compared to others.
I am sure that was not your intention.

>
> - someone else is already 80% done with what you're proposing

That shouldn't be ARC responsibility - for open source project that
information should be available anyway. If Sun wants to brew some
secret project without any community involvement (that's their right,
of course) I wouldn't consider that case in the scope of OpenSolaris.
Moreover, in such a case how can ARC or some other _community_
based committee be aware of such a project at all ?

> - someone else tried your (technical) approach before and found it not to
> work. So the ARC will tell you why it did'nt work and what was flawed with
> it. And possibly make available the associated email threads - or at least
> a sanitized version of them.
>

That's a valid point, however I'd (again) expect that info to be available
anyway, right ?

> - there is a design/architecture decision you've made that violates one of
> the Solaris core values, like, for example, backward compatibility etc.
>
> - there is a design decision you've made that is not compatible with the
> future direction of OpenSolaris
>
> - you've missed some key functionality that is necessary to integrate it
> successfully. For example, to support truss, or zones or DTrace or blah,
> blah.
>
> - you're suggesting a software architecture that might be fine in a
> userland application, but could cause not deterministic behavior in an OS
> kernel; or cause unexpected and objectionable response time hiccups to
> other applications etc.

All these should prevent the integration, not the work itself.

>
> The early ARC review may also help you sharpen your development skills -
> becuase it'll allow you to tap into a bunch of engineering talent with a
> proven track record of success. Or prevent you from making a silly error
> by omission etc.

That's why we have mailing lists/forums/etc, right ? Why do we need another
committee to do this ?

>
> --- topic change ---
>
> Three members of the CAB have been closely involved with the Development
> Process re-engineering efforts that have been a work in progress for
> several months now. That work is close to initial/draft publication, and I
> think, that when you see the entire process, and not a simplified summary
> of it that John P provided, it'll make more sense and be acceptable to the
> majority of serious OpenSolaris developers IMHO.

Cool !

>
> I can understand your initial reaction to Johns email ... but please
> reserve judgement until you see the entire process. I think that you'll
> find that most of what that process describes is already being done by most
> serious developers. But many developers probably have not seen it written
> down, or formalized before.
>
>
> The intent is to help and not hinder the development process and to insure
> a painless integration of your work into Solaris - while maintaining the
> level of reliability, correctness and stability that Solaris is well known
> for.
>
> Don't forget that OpenSolaris members will be able to particpate at every
> point in the process.
>
> So .... please hang in there for a little longer until you see the entire
> development process published. I think it'll be a easy "sell" for most
> serious developers.
>

I will. Looking forward to see the doc.

Regards,
Cyril
_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



plocher

Posts: 1,495
From:

Registered: 5/18/05
Re: SCM and its effect on governance
Posted: Oct 12, 2005 2:36 PM   in response to: imp

  Click to reply to this thread Reply

[I want to amplify Al's comment that the intent of all this
is to help and not hinder the development process and to
insure a painless integration of your work into [Open]Solaris
- John]


Cyril Plisko wrote:
>> John Plocher wrote:
>> 2. A proposal is generated that addresses the
>> architectural/technical intent of the <something>
>
>
> This may or may not be the case... Sometimes people just
> want to experiment in order to _get_ to proposals.


I probably should have prefaced this all with a few assumptions:
"This is for projects that wish to integrate back into OpenSolaris,
and does not affect any private tinkering or investigation done
without that intent" - and - "at some point, with zero or more
tinkering and prototyping, an idea will germinate into a proposal.
How exactly that happens is out of scope for this discussion."

> They still however are part of the community and have a right
> for existence.

Right, but. :-)

The "but" is they don't have a right to be integrated back into
the community's source tree until and unless the community wants
it. This is not anarchy.

One of the benefits of a distributed SCM environment is that
anyone can create their own branch, play with it however they
wish, and relatively effortlessly keep it in sync and up to
date with the community.

>> 3. The community determines whether or not the
>> proposed <something> fits within the norms of
>> their community.
>
>
> That step is unneeded, IMHO. Community can come and go
> as needed. It should not be something with hard walls and
> boundaries. In any case the whole [special] community
> existance should have nothing to do with the development.
> And indeed it so today - look at UG community.

Glossary overload. Does Community := OpenSolaris or does
community := "some discussion forum" or ...?

In the governance proposal, there is postulated a community that
is self-responsible for its work-product. The above is simply
restating that point for things that intend to go back into the
official source tree. It obviously does not apply for things
that don't so intend.

>> 4. The ARC(s?) determine whether the proposal
>> is acceptable; if not, it suggests/requires
>> changes, or it denies the proposal completely.
>
> That seems to be WAY to wrong to me. Do you really suggest
> that in order to develop something for OpenSolaris I need
> ARC (or whatever other comitee) approval???


No, not at all - for development. Rather, if you intend to
incorporate the result INTO OpenSolaris, the community needs
to understand and approve the impact - if any. Things that
don't impact the architecture of the system obviously don't
need architectural review.

This means that for 80+% of things, this step turns into a NOOP.
For the other 20%, it is much better to do this interaction
early (when there is still a chance to influence the effort),
rather than at the point of integration when there isn't.

> That may be
> the case for the Sun corporate environment, where engineering
> resources need to be quantified (since they are finite) and used

This isn't a resource allocation issue at all - it is a
"develop software by intent rather than by accident" one.

> wisely. However, in the open world no ARC can tell me what to
> do. Insisting on that role for ARC will only provocate forks and serve
> little good to the community at large.

Right - the ARCs don't exist to tell you what you can or can't
work on, but rather they exist to help you figure out what
architectural constraints or challenges your efforts will face
if/when they integrate back into the main source tree.

For example:

Suppose you want to gratuitously change the open()
call in libc in such a way that would break all
existing programs.

You can work on this effort as much as you want,
but you _should_ face difficulties if/when you attempt
to integrate the change back into OpenSolaris.

It is the role of the community architects (aka ARC
members) to manage the evolution of the system.

> Once again, what prevents me from doing it even today ?
> Without any ARC approval ? Heck, Polaris community did
> it already. So what's the point ?

If you want the OpenSolaris community to incorporate
your changes into the official OpenSolaris source base...

> I have overall impression that the whole model is an adaptation
> of the Sun' current scheme to a wider audience.

Certainly - this is the process that gives Solaris the stability
and predictability that is valued by Sun and its customers. IMHO,
it would be foolish to abandon that process and let OpenSolaris
devolve into a more chaotic system. (It would also be foolish
to force Sun's existing system on the community, or to assume that
such a process should be static and not evolve over time...)

> And if you'll create a a tough
> rules, people will leave. That should no happen.

One of the differentiators of the OpenSolaris community
is that it values reliability, correctness and stability;
attributes that come directly from the development process
used. As Al said, please hang in there...

-John


_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



Hugh McIntyre
Hugh.McIntyre@Sun.COM
Re: SCM and its effect on governance
Posted: Oct 12, 2005 2:27 PM   in response to: fielding

  Click to reply to this thread Reply


|> > b) If you do intend to see your work integrated into Solaris, the
|> > commercial distribution of OpenSolaris, then early review is intended to
|> > catch "silly" things like:
|>
|> That's quite a dangerous choice of wording, 'cause it sounds like Solaris
|> as an OpenSolaris-based distribution is special compared to others.
|> I am sure that was not your intention.

IMHO at least it should say something like "want to get your code integrated to
the main codebase on opensolaris.org". I.e. "into OpenSolaris", not "into
Solaris" necessarily.

|> > - someone else is already 80% done with what you're proposing
|>
|> That shouldn't be ARC responsibility - for open source project that
|> information should be available anyway.
|>
|> > - someone else tried your (technical) approach before and found it not to
|> > work. So the ARC will tell you why it did'nt work and what was flawed
|>
|> That's a valid point, however I'd (again) expect that info to be available
|> anyway, right ?

Not everybody knows everything. I.e. even if the information is publically
available you may not have found it. I'm sure this already happens within Sun
sometimes, so it's not an inside-versus-outside-Sun thing. Although the
inside/outside problem makes this worse since clearly there's a bunch of
historical information that's not public, now at least.

This part of the process could mainly be thought of as a chance for a courtesy
warning to warn people before they spend 6 months working on something and then
find out at the end that it's already been done or that a lot of changes might
be requested at the end. [*]

If doing this via ARC seems too formal (maybe it is) think of this in terms of
sending mail to the relevant community mailing list for comments instead. You
can still work on the feature yourself if you don't like the comments, but it
may help to avoid wasted time.

Hugh.

[*] One difference for OpenSolaris is that inside Sun if there is a team working
on a project, there's presumably an assumption (in general at least) that the
project will be done as promised. Whereas not every external developer is
working on things full time (or is paid), so just because someone else is
working on a project does not guarantee it will get finished. I.e. just because
you get told "someone else is already 80% done" does not mean you can't work on
it.

_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



alhopper

Posts: 803
From: Plano, TX

Registered: 4/27/05
Re: SCM and its effect on governance
Posted: Oct 12, 2005 6:06 PM   in response to: Hugh McIntyre

  Click to reply to this thread Reply

On Wed, 12 Oct 2005, Hugh McIntyre wrote:

>
> |> > b) If you do intend to see your work integrated into Solaris, the
> |> > commercial distribution of OpenSolaris, then early review is intended to
> |> > catch "silly" things like:
> |>
> |> That's quite a dangerous choice of wording, 'cause it sounds like Solaris
> |> as an OpenSolaris-based distribution is special compared to others.
> |> I am sure that was not your intention.
>
> IMHO at least it should say something like "want to get your code integrated to
> the main codebase on opensolaris.org". I.e. "into OpenSolaris", not "into
> Solaris" necessarily.

Agreed. It was poorly worded. I was in the middle of about 3 things when
I saw the post and made an effort to respond to it ASAP.

> |> > - someone else is already 80% done with what you're proposing
> |>
> |> That shouldn't be ARC responsibility - for open source project that
> |> information should be available anyway.
> |>
> |> > - someone else tried your (technical) approach before and found it not to
> |> > work. So the ARC will tell you why it did'nt work and what was flawed
> |>
> |> That's a valid point, however I'd (again) expect that info to be available
> |> anyway, right ?
>
> Not everybody knows everything. I.e. even if the information is publically
> available you may not have found it. I'm sure this already happens within Sun
> sometimes, so it's not an inside-versus-outside-Sun thing. Although the
> inside/outside problem makes this worse since clearly there's a bunch of
> historical information that's not public, now at least.

Its easy to understand when you have a complex set of related software
systems that are used to manage very large software development projects
and the concept of going public at some point in the future was never
considered. Since these tools also manage client/customer/partner data and
data related to new products/projects, you can easily see that its almost
impossible to "split the baby".

> This part of the process could mainly be thought of as a chance for a courtesy
> warning to warn people before they spend 6 months working on something and then
> find out at the end that it's already been done or that a lot of changes might
> be requested at the end. [*]
>
> If doing this via ARC seems too formal (maybe it is) think of this in terms of
> sending mail to the relevant community mailing list for comments instead. You
> can still work on the feature yourself if you don't like the comments, but it
> may help to avoid wasted time.
>
> Hugh.
>
> [*] One difference for OpenSolaris is that inside Sun if there is a team working
> on a project, there's presumably an assumption (in general at least) that the
> project will be done as promised. Whereas not every external developer is
> working on things full time (or is paid), so just because someone else is
> working on a project does not guarantee it will get finished. I.e. just because
> you get told "someone else is already 80% done" does not mean you can't work on
> it.
>

Al Hopper Logical Approach Inc, Plano, TX. al@logical-approach.com
Voice: 972.379.2133 Fax: 972.379.2134 Timezone: US CDT
OpenSolaris.Org Community Advisory Board (CAB) Member - Apr 2005
_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



kritter

Posts: 151
From: US

Registered: 5/11/05
Re: SCM and its effect on governance
Posted: Oct 16, 2005 10:00 PM   in response to: alhopper

  Click to reply to this thread Reply

Thanks to everyone who responded to this thread. I hope people like Hugh
helped to allay some of the fears being expressed. Stephen Hahn has been
out of the office, and I'm not sure if he'll jump in on this when he
returns.

In any case, there are a couple of things I wanted to mention:

1. A "distributed source code management system" describes the type of
functionality we've found essential to managing a large source base
with so many developers. This kind of system allows developers to
make and test large- or small-scale changes without destabilizing
the main source tree.

In the end it all comes back into the main source tree, and others
have done a good job describing the way our gatekeeping system
works. Without listening to lengthy process descriptions like the
ones Al and Rich have participated in, it may be difficult to
understand that Sun/Solaris doesn't have a dictator: benevolent or
otherwise.

2. The requirements for making a decision about a distributed source
code management system have not yet been proposed. Stephen Hahn
will absolutely send the initial requirements list out to the
community, and have the discussion in the public. There is no
"black op" happening here. We're just not moving as quickly as
we'd like.

Perhaps you all can give us some ideas about how best to keep the
community informed about our progress (or lackthereof).

3. It is my belief that the governance model can be written without
any further guidance from Sun. The CAB should write what they
think is best for the OpenSolaris community, and then it is up to
the community and Sun to ratify it.

Thanks,

Karyn

Al Hopper wrote:
> On Wed, 12 Oct 2005, Hugh McIntyre wrote:
>
>
>>|> > b) If you do intend to see your work integrated into Solaris, the
>>|> > commercial distribution of OpenSolaris, then early review is intended to
>>|> > catch "silly" things like:
>>|>
>>|> That's quite a dangerous choice of wording, 'cause it sounds like Solaris
>>|> as an OpenSolaris-based distribution is special compared to others.
>>|> I am sure that was not your intention.
>>
>>IMHO at least it should say something like "want to get your code integrated to
>>the main codebase on opensolaris.org". I.e. "into OpenSolaris", not "into
>>Solaris" necessarily.
>
>
> Agreed. It was poorly worded. I was in the middle of about 3 things when
> I saw the post and made an effort to respond to it ASAP.
>
>
>>|> > - someone else is already 80% done with what you're proposing
>>|>
>>|> That shouldn't be ARC responsibility - for open source project that
>>|> information should be available anyway.
>>|>
>>|> > - someone else tried your (technical) approach before and found it not to
>>|> > work. So the ARC will tell you why it did'nt work and what was flawed
>>|>
>>|> That's a valid point, however I'd (again) expect that info to be available
>>|> anyway, right ?
>>
>>Not everybody knows everything. I.e. even if the information is publically
>>available you may not have found it. I'm sure this already happens within Sun
>>sometimes, so it's not an inside-versus-outside-Sun thing. Although the
>>inside/outside problem makes this worse since clearly there's a bunch of
>>historical information that's not public, now at least.
>
>
> Its easy to understand when you have a complex set of related software
> systems that are used to manage very large software development projects
> and the concept of going public at some point in the future was never
> considered. Since these tools also manage client/customer/partner data and
> data related to new products/projects, you can easily see that its almost
> impossible to "split the baby".
>
>
>>This part of the process could mainly be thought of as a chance for a courtesy
>>warning to warn people before they spend 6 months working on something and then
>>find out at the end that it's already been done or that a lot of changes might
>>be requested at the end. [*]
>>
>>If doing this via ARC seems too formal (maybe it is) think of this in terms of
>>sending mail to the relevant community mailing list for comments instead. You
>>can still work on the feature yourself if you don't like the comments, but it
>>may help to avoid wasted time.
>>
>>Hugh.
>>
>>[*] One difference for OpenSolaris is that inside Sun if there is a team working
>>on a project, there's presumably an assumption (in general at least) that the
>>project will be done as promised. Whereas not every external developer is
>>working on things full time (or is paid), so just because someone else is
>>working on a project does not guarantee it will get finished. I.e. just because
>>you get told "someone else is already 80% done" does not mean you can't work on
>>it.
>>
>
>
> Al Hopper Logical Approach Inc, Plano, TX. al@logical-approach.com
> Voice: 972.379.2133 Fax: 972.379.2134 Timezone: US CDT
> OpenSolaris.Org Community Advisory Board (CAB) Member - Apr 2005
> _______________________________________________
> cab-discuss mailing list
> cab-discuss at opensolaris dot org

_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



plocher

Posts: 1,495
From:

Registered: 5/18/05
Re: SCM and its effect on governance
Posted: Oct 17, 2005 10:15 AM   in response to: kritter

  Click to reply to this thread Reply

Karyn Ritter wrote
> 3. It is my belief that the governance model can be written without
> any further guidance from Sun.

IMHO, you might want to make a distinction between "Sun as a corporate
entity" and "Sun employees who are members of this community".

If you meant the former: +1

If you meant ther latter, -1 - nothing in this community's DNA should
prevent Sun employees from being first class members - we should not
set up a system (of rules, expectations or assumptions) where external
voices are somehow different than internal ones. We all are community
members, and we honor openness and inclusiveness.

> The CAB should write what they
> think is best for the OpenSolaris community, and then it is up to
> the community and Sun to ratify it.

The CAB shouldn't be expected to invent stuff that doesn't reflect the
community - a model of
"we control the content, all you can do is say yes or no,
without an ability to influence it"
would be a bad thing - fortunately, the CAB isn't operating that way.

-John Plocher

_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org



Karyn Ritter
kritter@eng.sun.com
Re: SCM and its effect on governance
Posted: Oct 17, 2005 10:19 AM   in response to: plocher

  Click to reply to this thread Reply

John Plocher wrote:

> Karyn Ritter wrote
>
>> 3. It is my belief that the governance model can be written without
>> any further guidance from Sun.
>
>
> IMHO, you might want to make a distinction between "Sun as a corporate
> entity" and "Sun employees who are members of this community".
>
> If you meant the former: +1
>
Yes, this is what I meant. I was responding to Roy's comment that Sun
needed to provide guidance about what we want before the CAB can write
the governance proposal.

Thanks,

Karyn

> If you meant ther latter, -1 - nothing in this community's DNA should
> prevent Sun employees from being first class members - we should not
> set up a system (of rules, expectations or assumptions) where external
> voices are somehow different than internal ones. We all are community
> members, and we honor openness and inclusiveness.
>
>> The CAB should write what they
>> think is best for the OpenSolaris community, and then it is up to
>> the community and Sun to ratify it.
>
>
> The CAB shouldn't be expected to invent stuff that doesn't reflect the
> community - a model of
> "we control the content, all you can do is say yes or no,
> without an ability to influence it"
> would be a bad thing - fortunately, the CAB isn't operating that way.
>
> -John Plocher
>

_______________________________________________
cab-discuss mailing list
cab-discuss at opensolaris dot org






Terms of Use | Privacy | Trademarks | Copyright Policy | Site Guidelines
Your use of this web site or any of its content or software indicates your agreement to be bound by these Terms of Use.
Copyright © 1995-2005 Sun Microsystems, Inc.