[coreboot] Changes to the coreboot Project Structure -- one small step for bike sheds

2014-04-03 Thread mrnuke
Let's think of a few things which makes gerrit annoying:

* -2 is a de-facto veto
* -1 is not persistent on updates, encouraging -2 to be given

The end result is that we're encouraging vetoing of patches.

Proposal:
* Submitability of a patch is based on overall review score
** Need at least a score of +2 for patch to be submitted
** Maybe (?) a score of +3 to require at least two sets of eyes
* A review of -2 is not a veto
** Patch still submittable if overall score is +2 (or +3)
* Score of -1/-2 is persistent until reviewer retracts it

Requiring a review of +2 is possible, but not necessarily needed. Since only 
persons with +2 rights can submit a patch, their submitting a patch based on a 
+1/+1 review is effectively an approval.

This has the effect of increasing the significance of -1/+1 scores, which, in 
the old scheme, were somewhat useless (an infinite number of -1 scores would 
not prevent a patch from being submitted).

I think we should try this system, and see how well it works.

Alex

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


[coreboot] Changes to the coreboot Project Structure -- the non-aneurysmal way

2014-03-26 Thread mrnuke
Not so long ago, Stefan announced some pretty drastic changes to the project 
structure. While I believe he wanted to discuss the direction and find a 
mutually agreeable direction, his email still raised the aneurysm level to 
over nine thousand.

So, how about we take the good ideas out of there and start putting them in 
practice. Today, I'll be focusing on the idea of MAINTAINERS. While it's nice 
to jump straight to maintainer trees, that's a long ways away, and I'm not 
even sure we reached consensus on it. Couple that with the changes needed to 
be done to _both_ gerrit configuration, _and_ gerrit workflow, this matter is 
better left for another day.

What we can do, however, is to start assigning maintainership of different 
sub-directories. Two ways to do it:
(i) One big MAINTARES file in top-level directory
(ii) One small MAINTAINER file in each directory with an assigned maintainer
Number (i) is human friendly, while (ii) is parser-friendly (I would hope). 

Now comes the fun part:
For directories with a maintainer, gerrit implements a MMA criteria. That's 
short for Maintainer Must Approve. People are still welcome to do reviews, 
bikeshed, etc, but the maintainer has veto power. For directories without a 
maintainer, the old workflow applies (no MMA).

This should reduce confusion from conflicting reviews, and definitely reduce 
number of incidents where a patch gets merged with a review from a person who 
is not fully qualified to, well, do the review.

Masters, of Gerrit, the pleasure of training gerrit to implement this change 
is left entirely to you.

Alex

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Re: [coreboot] Changes to the coreboot Project Structure -- the non-aneurysmal way

2014-03-26 Thread Patrick Georgi
Am Mittwoch, den 26.03.2014, 09:22 -0500 schrieb mrnuke:
 Masters, of Gerrit, the pleasure of training gerrit to implement this change 
 is left entirely to you.
While we're specifying behaviour: what should happen to changes that
affect multiple maintainer domains?

(and before you say they shouldn't exist, refactorings regularily hit
the entire tree)


Patrick


signature.asc
Description: This is a digitally signed message part
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure -- the non-aneurysmal way

2014-03-26 Thread mrnuke
On Wednesday, March 26, 2014 03:32:12 PM Patrick Georgi wrote:
 Am Mittwoch, den 26.03.2014, 09:22 -0500 schrieb mrnuke:
  Masters, of Gerrit, the pleasure of training gerrit to implement this
  change is left entirely to you.
 
 While we're specifying behaviour: what should happen to changes that
 affect multiple maintainer domains?
 
Add each maintainer to the MMA list. A little clumsy? Yeah. On the other hand, 
it encourages splitting of patches in maintainer-domain chunks.

 (and before you say they shouldn't exist, refactorings regularily hit
 the entire tree)
 
And that's one of the few cases where the above splitting may not be possible.

Alex

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Re: [coreboot] Changes to the coreboot Project Structure

2014-03-25 Thread Stefan Reinauer
* ron minnich rminn...@gmail.com [140325 06:34]:
 
 
 
 On Mon, Mar 24, 2014 at 10:20 PM, Vladimir ' -coder/phcoder' Serbinenko 
 phco...@gmail.com wrote:
 
 
 I don't see how this prevents any of my propositions for the bulk of the
 boards. The problem you describe isn't going away with your proposition.
 We still want to have a top which is supposed to work on all boards.
 
 
 
 All boards? The Arima HDAMA, 12 years old now, not sold for maybe 10? All
 boards? Are you sure?

Keeping old boards in a branch of coreboot that is not moving as fast as
upstream will reduce breakage and stabilize the code base for those
systems.

Stefan


-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Re: [coreboot] Changes to the coreboot Project Structure

2014-03-25 Thread mrnuke
On Tuesday, March 25, 2014 06:56:13 PM Stefan Reinauer wrote:
 * ron minnich rminn...@gmail.com [140325 06:34]:
  On Mon, Mar 24, 2014 at 10:20 PM, Vladimir ' -coder/phcoder' Serbinenko 
  
  phco...@gmail.com wrote:
  I don't see how this prevents any of my propositions for the bulk of
  the boards. The problem you describe isn't going away with your
  proposition. We still want to have a top which is supposed to work on
  all boards.
  
  All boards? The Arima HDAMA, 12 years old now, not sold for maybe 10? All
  boards? Are you sure?
 
 Keeping old boards in a branch of coreboot that is not moving as fast as
 upstream will reduce breakage and stabilize the code base for those
 systems.
 
This model works for linux with really old releases being maintained by 
interested people. It is doable. It is reasonable.

Alex

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Re: [coreboot] Changes to the coreboot Project Structure

2014-03-25 Thread Stefan Reinauer
* mrnuke mr.nuke...@gmail.com [140325 19:13]:
 On Tuesday, March 25, 2014 06:56:13 PM Stefan Reinauer wrote:
  * ron minnich rminn...@gmail.com [140325 06:34]:
   On Mon, Mar 24, 2014 at 10:20 PM, Vladimir ' -coder/phcoder' Serbinenko 
   
   phco...@gmail.com wrote:
   I don't see how this prevents any of my propositions for the bulk of
   the boards. The problem you describe isn't going away with your
   proposition. We still want to have a top which is supposed to work on
   all boards.
   
   All boards? The Arima HDAMA, 12 years old now, not sold for maybe 10? All
   boards? Are you sure?
  
  Keeping old boards in a branch of coreboot that is not moving as fast as
  upstream will reduce breakage and stabilize the code base for those
  systems.
  
 This model works for linux with really old releases being maintained by 
 interested people. It is doable. It is reasonable.

Yes, absolutely. These old releases live in extra branches. Same thing
we need to do.

Stefan
 

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Re: [coreboot] Changes to the coreboot Project Structure

2014-03-24 Thread Paul Menzel
Dear Stefan, dear coreboot folks,


Am Donnerstag, den 20.03.2014, 22:55 +0100 schrieb Stefan Reinauer:
 Changes to the coreboot Project Structure
 
 We -- the coreboot project -- have succeeded beyond our wildest
 expectations, with every major laptop vendor using our code. Going
 forward, this will require a few structural changes that will ensure
 that the vendors shipping coreboot products can count on a stable,
 reliable code base.
 
 With that incredible success, there is also a lot of work to be done to
 make sure the project is scaling and keeping up with the requirements of
 the millions of new users that coreboot gets every year. There is a
 large number of new corporate entities investigating their possible
 involvement in coreboot, and we need to make sure that their integration
 is working smoothly while still keeping the project’s interests and
 goals stable and alive.

thank you once again for bringing up this discussion on the list!

I’ll reply in a separate thread about coreboot’s interests and goals.

 Moving forward, we need to make sure that we can welcome these possible
 new contributors without the friction that we have seen in the past.

Could you please name the friction seen in the past?

 The coreboot community currently consists of about 80 contributors with
 varying levels of activity. Among these contributors, three groups can
 be identified as the major stakeholders in the project: Sage Electronic
 Engineering (the largest coreboot IBV),

From a community perspective there is currently not a lot of interaction
between the community and Sage Electronic Engineering. The last commits
in the upstream repository are also a few months back.

 Secunet and Google Inc. (delivering all new Chrome OS devices with
 coreboot based firmware).

Did you count AMD contributions to Sage Electronic Engineering?

 Individuals employed by these three stakeholders make up for the
 majority of code contributions. According to Ohloh, roughly half of the
 coreboot contributions are done by the top ten contributors. Over the
 project life time, over 80% of those have been made by corporate
 contributors.

Do you have an URL? As always such statistics should be taken with a
grain of salt. Especially how AGESA is counted for example and regarding
that a lot of board code is copied over and is not unified.

 While there is a fairly good understanding of the project direction and
 interest between those individual contributors, there are also an
 increasing need for making sure that the coreboot project’s scalability
 and its viability for mobile / consumer products and servers is
 guaranteed.

As written above, to me the direction and interest is not so clear to
me. (See my (future) reply in a separate thread.)

Also the reasons for the need is not so clear. Could you please
elaborate on that?

The only thing I imagine is the long time it takes to upstream a board
for Google because they do not use the upstream infrastructure right
away.

 The goal of this proposal is to enable all of the community
 to have a strong voice and make strong contributions to the project
 while allowing the major stakeholders to steer the project direction and
 pursue ownership of the components they provide.

I thought that is the case currently.

 Traditionally the development model of coreboot was very similar to the
 model of the Linux kernel in many ways, including coding guidelines, the
 requirement of a sign-off process for contributions, and active
 leadership provided by a “benevolent dictator”. Commit rights were
 traditionally given to few of the top contributors of the project.
 With the introduction of git as coreboot’s version control system and
 its multi-branch nature as well as gerrit for code reviews, the
 landscape of the project has slightly shifted towards a more anocratic
 development model in which different interest groups sometimes worked on
 opposing strategies, and thus affecting the project’s overall stability
 and suitability for large scale deployment negatively. The advent of
 these new tools requires the original project founders and major
 stakeholders to provide stronger leadership and strategic direction for
 the project.

Could you please give examples?

My view is, that the problem is simply missing communication. If the
companies develop something in secret without announcing and discussing
their plans and miss what the community does, then this is solved by
improving the communication with the community. Also in the past, my
impression is, that (almost(?)) always the community gave in and
reworked their patches and adapted the “corporate” code and improved
that.

 Measures to improve the coreboot Development Model
 
 * Require authors to acknowledge changes made in their name (Forge-Author)
   This change allows contributors to decide when their OWN changes are
   ready for being integrated into the project, preventing unfinished and
   experimental work to be submitted accidentally

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-24 Thread Stefan Reinauer
Hi folks,

ok, sorry to those who thought that I was missing in action. It feels
good to have a weekend to get out into the sun every now and then, and
let the dust settle a little bit in a maybe too heated discussion.

I will address your concerns.

* mrnuke mr.nuke...@gmail.com [140320 23:42]:
 On Thursday, March 20, 2014 10:55:57 PM Stefan Reinauer wrote:
  * Build a MAINTAINERS file for common code, and encourage people to keep
subsystem maintainers in the loop for changes
[...]
 
 This is somewhat what linux does, and it works well for them.
 
When we (Ron, Marc, Patrick, Peter, Aaron and I) wrote up the document,
we tried to introduce some of the Linux kernel habits that might work
well for us.

 Might be a little OT/irrelevant, but why not make gerrit need a maintainer 
 must approve before making the change submittable.

Yes, that would be a great way of implementing this.

  * Look into making gerrit automatically add reviewers based on maintainer
lists
[...]
  
 Can we find something better than gerrit? I think gerrit encourages too much 
 bikeshedding. It also encourages people to filter out gerrit emails, so that 
 any such maintainers would not get the message.

This has come up before and we should consider that option.

Gerrit is very convenient because it never loses a patch. Our mailing
list based approach in previous years was way less reliable. Also, the
integration of jenkins is very convenient. There might be other
solutions that have both of these advantages.

  * Import previous code reviews and results
The tree major stakeholders in the project all own internal code review
systems, some of which are public (e.g. the Google Chrome OS repository)
and have code reviews that include representatives outside of Google to
ensure general code quality and making sure the improvements made for
products don’t negatively impact upstreamability. For those cases it
would be extremely helpful to honor the code reviews already done in the
upstream repository
  
Status: TO BE INVESTIGATED
  
 I couldn't disagree more. First of all, the idea of representatives outside 
 of company to ensure general code quality is contrary to the idea of 
 allowing the community to scrutinize to-be-upstreamed contributions. When you 
 combine that with the idea of [blindly] honoring code reviews already done 
 upstream, you have effectively eliminated the scrutiny and review from the 
 community.

When rebasing to a new coreboot version, e.g. the Chromium OS project
does [blindly] honor code reviews already done upstream. On the
contrary, I think that this strengthens the community instead of
eliminating its reviews.

 I've seen mostly cases of great external reviews, but have also 
 seen a fair share of bodged, nonsensical ones where terrible patches have 
 been 
 accepted without much thought.
 
 If the community has to accept code reviews done under closed doors, these 
 contributions are effectively code dumps. I do not remember this ever being 
 beneficial to the community, and usually results in the community needing to 
 clean up afterwards. See linux for details.

These reviews are not happening under closed doors. The Chromium OS
project is open source and completely transparent in that manner. 

 What do we need to do to allow commercial contributors to work directly 
 upstream? And before you discount this question for menial technical reasons, 
 please take a moment to keep this conversation open, and let's try to find an 
 answer. Will it work for 100% of commercial contributors? No. However, this 
 should be the preferred method for upstreaming contributions. See linux for 
 an 
 explanation why this works best.

The intent of these suggestions is to move the non-commercial and
commercial contributors in the community closer together. One example is
the board ownership that would prevent people from messing with other
people's boards without their consent.

Also, if you are keeping an eye on both the Chromium OS coreboot tree
and the upstream coreboot tree you will notice that basically all
structural changes land in the upstream tree first, whereas the only
thing that ends up in the Chromium OS tree first is code supporting
specific components.

This has proven to be somewhat successful as it keeps the person working
at three a clock in the morning to ship a product under a tough deadline
from going crazy because the target keeps moving under him.

This is not a bad thing at all. It's the separation of feature
development and product development, in a way. Google even does this for
each of the Chrome OS devices, internally (as you can see in the Chromium OS
repository) At some point there's a branch of the Chromium OS top of
tree coreboot used as the basis for further product development and no
new features go into that product branch (e.g. firmware branch) unless
needed and carefully selected.

 I am sorry to say this Stefan, but, in my opinion, you 

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-24 Thread Stefan Reinauer
Hi Carl-Daniel,

thank you for your feedback!

* Carl-Daniel Hailfinger c-d.hailfinger.devel.2...@gmx.net [140321 01:39]:
 I see a huge bottleneck in restricting the number of committers to six.
 - Corporate committers will be primarily obliged to get the stuff of
 their own employer committed, but if they are ill or on vacation,
 someone else would have to take over. This would either be another
 corporate committer (in which case their own employer would have to
 authorize spending time for a different company) or a community committer.

Those six people would not be required to take the full burden of code
reviews. Nothing will change w.r.t that, because that would indeed
create a huge bottleneck. This is just about the actual push. Any of the
six can push any patch (given that the maintainers and/or authors have
reviewed)

 - Community committers are not paid, and commit in their spare time.
 Spare time is not necessarily abundant all year round. Speaking from
 experience, the flashrom project has no shortage in developers or
 submitted patches, but a real and painful shortage in
 reviewers/committers.

That is absolutely understood. However, I truly believe it is important
to have community committers in place, even if it is a huge effort. Look
at the subsystem maintainers of the Linux kernel, they don't have to
review every single patch but often trust their peers in the community.

I think that is a good model.

 The flashrom project patch backlog is huge due to
 this. Doing a commit is easy, but making sure that a commit follows
 certain guidelines is a huge time sink with none of the fun of writing code.

The problem with flashrom is that in the last six months is has been a
one man show (or two men, but only stefanct actually committed stuff).

You guys are also worried to brick a system, whereas in the coreboot
environment we know that we brick systems.

 - New contributors (corporate or community) would have to find a
 sponsor to actually commit their code. With a large committer base,
 this can happen rather quickly. With only six committers facing their
 own deadlines or other shortages of time, this could take quite a while.

This is not unlike the Linux kernel community. 

 AFAICS the reason to reduce the number of coreboot committers is to have
 gatekeepers who actually enforce guidelines by looking at patches before
 they commit them. That essentially introduces an additional review step.
 While such a step may be desirable, it would have to be made clear whose
 obligation it is to carry out commit+review step for new contributors,
 and how any fallback/failover mechanisms are implemented.

Let's keep this simple for now. As always, we will adjust our
implementation bit by bit to the problems we'll actually hit.

 If we really go ahead with a fixed number of committers, each person
 should have a substitute who can take over. That would be a total
 committer number of twelve.
 
I was thinking that these six would be substitutes for each other. With
12 people we would have more active committers than we have now.

 To be honest, regardless of who will be the community gatekeepers, some
 people are going to be disappointed. There would have to be a metric for
 determining community committers.

It should be people that are best suited to act in the interest of the
complete project. I don't think simple metrics like lines of code or
numbers of reviews is sufficient for making a good decision here.

Stefan


-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Re: [coreboot] Changes to the coreboot Project Structure

2014-03-24 Thread Stefan Reinauer
* David Hubbard david.c.hubbard+coreb...@gmail.com [140323 10:56]:
 Coreboot can be relevant even if it only supports obsolete silicon. Coreboot
 was the first to bring sub-second boot times to laptops. There are more
 examples.

Yes, we worked hard to get to that goal. If it were about obsolete
hardware it would have never happened though.

 But Peter, what's your take on Alex's suggestion: What do we need to do to
 allow commercial contributors to work directly upstream? And before you
 discount this question for menial technical reasons, please take a moment to
 keep this conversation open, and let's try to find an answer.

For a number of contributions Google's community members have worked
upstream first (Think ARM port and rmodtool) A lot of times that was
critized, as the expectation is on the other hand, that corporate
entities provide ready to ship solutions, and not work in progress.
However, we are keeping it up for many patches, especially those that
introduce structural changes to coreboot, because we want to make it as
easy as possible for our fellow community members to engage in
meaningful conversation about these things.

Mind you, at no time does any coreboot development work at Google happen
behind closed doors. Everything, including the code reviews and
up-to-date code repositories are visible and accessible by anyone out
there.


 I don't feel limited. Corporate contributors are of necessity restricted --
 e.g. to large commits after the product ships. I grok that. Is there a way to
 *reduce* the restrictions, and burdens in general, of corporate contributors?
 To get them to work directly upstream?

Yes, and we continue to do that. Timely upstreaming/downstreaming is a
vital part of the process, and it's not always easy. There will never be
anybody trying to ship coreboot on any device working on top of tree
upstream just because nobody wants to do another week of testing
because some unrelated patch comes in last minute, or your target is
broken overnight on the day that you ship a firmware image to a factory.

However, all of the development process is completely open and anybody
can look at the changes Google is doing to coreboot, upstreamed or not,
in real time.

 I don't see anywhere in Stefan's *only* email on this subject that he 
 suggested
 a community branch. Branches were Alex's idea: http://www.coreboot.org/
 pipermail/coreboot/2014-March/077660.html

My original suggestion for a name of the coreboot branch with the old
boards (that get removed from top of tree) was community-2014. I
believe this led to a lot of confusion among the ones wild at heart. The
name seemed reasonable at the time because it would contain all the
boards that you can get on ebay but not in a store anymore. I don't
think we need to get hung up on names though, anything is fine, really,
as long as it's not too hard to type and somewhat descriptive ;)

Stefan




-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Re: [coreboot] Changes to the coreboot Project Structure

2014-03-24 Thread Stefan Reinauer
* David Hubbard david.c.hubbard+coreb...@gmail.com [140323 20:33]:
 On Sun, Mar 23, 2014 at 12:58 PM, Vladimir ' -coder/phcoder' Serbinenko 
 phco...@gmail.com wrote:
 
 On 23.03.2014 19:24, ron minnich wrote:
  So I believe the problem is not the idea of gatekeepers, but the
  manner in which they are proposed to work. Can you tell me what about
  this upsets you? I want to understand.
 The problem is that the proposal is that all commits go through
 gatekeepers. It's bottleneck. It makes much more sense to have per-path
 maintainers and tiered code.
 E.g. we could keep all boards rather than shooting them and the ones
 that are considered to be too old can have less stringent requirements
 on commits. This will free the qualified people time to concentrate on
 boards where it's most important.
 Also it will benefit unimportant boards as well as they'll be easier
 to keep.
  Then per-path maintainer and gatekeeper are contradictory concepts. How
 one can be maintainer if he can't commit to his maintained code. I feel,
 for example, that nehalem code and resulting boards are my
 responsibility and I should be able to commit there easily. Getekeeprs
 will make this impossible as I'm more or less the only one who knows
 nehalem code *and* cares about it.
 I feel like the top-level maintainers would be only about overall
 structure, not about details in Board:foo/bar they've never even seen
 and solving disputes. Making everything go through 6 people is
 unfeasible as 6 people can't represent broad range of interests and some
 parts of code will get neglected more that they have to be of simple
 scarceness of resources.
 
 
 Without speaking for anyone or about anything else, can Stefan comment on this
 proposal by Vladimir? It seems relatively cool and reasonable.

Tried to do so in the other mail... There's too much risk involved in
working directly on upstream. The downsides just outweigh the benefits
(for everybody, really)

For example, when getting to the hot phase of a new product, we don't
even use our chromium top of tree, but create a firmware branch
specifically for a new product. Patches relevant to that product go into
that branch (and top of tree, aka HEAD) but NOTHING else. For every
firmware image that is released, there are also tests involving
thousands and thousands of reboots and suspend/resume cycles to make
sure that the product is absolutely stable. Because if 1/100k resumes
crashes that means for a million users there are ten users every day
whose computers crash. This level of testing is simply not possible when
aiming at a moving target.

Stefan



-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Re: [coreboot] Changes to the coreboot Project Structure

2014-03-24 Thread Stefan Reinauer
* Vladimir 'φ-coder/phcoder' Serbinenko phco...@gmail.com [140321 04:31]:

 The proposition of gatekeepers would essentially kill community effort.
 Even in current infrastructure reviewing is a major slowdown. With small
 number of gatekeepers there wouldn't be any significant contributions as
 the gatekeepers wouldn't be able to review them in reasonable time,
 which will, in turn discourage contributions. You may as well just stop
 accepting community contributions right now: it turns out to be the same
 thing, just a little bit quicker.

This is absolute nonsense, Vladimir.

 You cannot treat community as some kind of corporate entity.

Nobody tries to do that.

Peter Stuge, Kyösti Mälkki, N.N. (non-commercial part of the
coreboot community)
 Sounds like a joke. While Peter is competent, he's also very busy. I'd
 expect his review thoughtput of perhaps a patch a week.
 You can't realistically put such burden on few people.
 If you want a corporate version of coreboot, I think you have to use a
 workflow similar to Fedora vs Red Hat Enterprise Linux.

Your mere idea that there is some sort of corporate conspiracy acting
against the interest of the community from which you automatically
exclude anybody working on open source software for a day job is flawed.

 The changes you proposed would effectively make coreboot into corporate
 project. I'd expect a community fork to emerge quickly, outside of this
 new limiting infrastructure and I'll be surely moving to community fork.

Please note that the committers don't have to be the ones to do the code
reviews.

If you feel like you want to work on a fork of coreboot, you are most
welcome to do so. Many projects have forked over time, and some forks
have died off, or taken over the role of the main project. Good luck.
If this helps you get over your negative attitude you are spreading
here, I fully support it.

 Fork is better. With fork we don't have to deal with the same people
 who pushed the community out in the first place.

Vladimir, this has nothing to do with anybody pushing anybody out. Your
behavior here is your personal choice. It's fine, but don't blame it one
anybody else but yourself.

You think I am hurting this project? Do your own. The grass is always
greener on the other side, and you can do what you want over there.

Stefan


-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-24 Thread Vladimir 'φ-coder/phcoder' Serbinenko
On 25.03.2014 02:33, Stefan Reinauer wrote:
 * David Hubbard david.c.hubbard+coreb...@gmail.com [140323 20:33]:
 On Sun, Mar 23, 2014 at 12:58 PM, Vladimir ' -coder/phcoder' Serbinenko 
 phco...@gmail.com wrote:

 On 23.03.2014 19:24, ron minnich wrote:
  So I believe the problem is not the idea of gatekeepers, but the
  manner in which they are proposed to work. Can you tell me what about
  this upsets you? I want to understand.
 The problem is that the proposal is that all commits go through
 gatekeepers. It's bottleneck. It makes much more sense to have per-path
 maintainers and tiered code.
 E.g. we could keep all boards rather than shooting them and the ones
 that are considered to be too old can have less stringent requirements
 on commits. This will free the qualified people time to concentrate on
 boards where it's most important.
 Also it will benefit unimportant boards as well as they'll be easier
 to keep.
  Then per-path maintainer and gatekeeper are contradictory concepts. How
 one can be maintainer if he can't commit to his maintained code. I feel,
 for example, that nehalem code and resulting boards are my
 responsibility and I should be able to commit there easily. Getekeeprs
 will make this impossible as I'm more or less the only one who knows
 nehalem code *and* cares about it.
 I feel like the top-level maintainers would be only about overall
 structure, not about details in Board:foo/bar they've never even seen
 and solving disputes. Making everything go through 6 people is
 unfeasible as 6 people can't represent broad range of interests and some
 parts of code will get neglected more that they have to be of simple
 scarceness of resources.


 Without speaking for anyone or about anything else, can Stefan comment on 
 this
 proposal by Vladimir? It seems relatively cool and reasonable.
 
 Tried to do so in the other mail... There's too much risk involved in
 working directly on upstream. The downsides just outweigh the benefits
 (for everybody, really)
 
 For example, when getting to the hot phase of a new product, we don't
 even use our chromium top of tree, but create a firmware branch
 specifically for a new product. Patches relevant to that product go into
 that branch (and top of tree, aka HEAD) but NOTHING else. For every
 firmware image that is released, there are also tests involving
 thousands and thousands of reboots and suspend/resume cycles to make
 sure that the product is absolutely stable. Because if 1/100k resumes
 crashes that means for a million users there are ten users every day
 whose computers crash. This level of testing is simply not possible when
 aiming at a moving target.
 
I don't see how this prevents any of my propositions for the bulk of the
boards. The problem you describe isn't going away with your proposition.
We still want to have a top which is supposed to work on all boards.
 Stefan
 
 
 




signature.asc
Description: OpenPGP digital signature
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-24 Thread ron minnich
On Mon, Mar 24, 2014 at 10:20 PM, Vladimir 'φ-coder/phcoder' Serbinenko 
phco...@gmail.com wrote:


 I don't see how this prevents any of my propositions for the bulk of the
 boards. The problem you describe isn't going away with your proposition.
 We still want to have a top which is supposed to work on all boards.



All boards? The Arima HDAMA, 12 years old now, not sold for maybe 10? All
boards? Are you sure?

ron
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-24 Thread Vladimir 'φ-coder/phcoder' Serbinenko
On 25.03.2014 06:34, ron minnich wrote:
 
 
 
 On Mon, Mar 24, 2014 at 10:20 PM, Vladimir 'φ-coder/phcoder' Serbinenko
 phco...@gmail.com mailto:phco...@gmail.com wrote:
 
 
 I don't see how this prevents any of my propositions for the bulk of the
 boards. The problem you describe isn't going away with your proposition.
 We still want to have a top which is supposed to work on all boards.
 
 
 
 All boards? The Arima HDAMA, 12 years old now, not sold for maybe 10?
 All boards? Are you sure?
 
That's why I added *supposed to*. I'm aware that some boards are
probably broken and not much we can do about it.
 ron 




signature.asc
Description: OpenPGP digital signature
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-24 Thread ron minnich
On Mon, Mar 24, 2014 at 10:37 PM, Vladimir 'φ-coder/phcoder' Serbinenko 
phco...@gmail.com wrote:


 That's why I added *supposed to*. I'm aware that some boards are
 probably broken and not much we can do about it.



Except remove them, right?

ron
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-23 Thread Vladimir 'φ-coder/phcoder' Serbinenko
On 23.03.2014 04:10, Peter Stuge wrote:
 That isn't too different from creating a fork?
Fork is better. With fork we don't have to deal with the same people who
pushed the community out in the first place.



signature.asc
Description: OpenPGP digital signature
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-23 Thread mrnuke
On Sunday, March 23, 2014 07:34:32 AM Vladimir 'φ-coder/phcoder' Serbinenko 
wrote:
 On 23.03.2014 04:10, Peter Stuge wrote:
  That isn't too different from creating a fork?
 
 Fork is better. With fork we don't have to deal with the same people who
 pushed the community out in the first place.

Can you guys stop fucking worrying about a fork for the time being? We'll fork 
if we have to, but right now, we should be focused on refactoring the 
development process. If we do the latter rather than the former, chances are 
we'll find a mutually agreeable and better process.

Stop pulling out rulers and unzipping your pants.

Alex

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-23 Thread David Hubbard
On Sat, Mar 22, 2014 at 9:10 PM, Peter Stuge pe...@stuge.se wrote:

 Vladimir 'φ-coder/phcoder' Serbinenko wrote:
  The proposition of gatekeepers would essentially kill community effort.

 That might not be a bad thing.

 Unfortunately, considering how the hardware industry works, individual
 contributors in the community can't work on code for current hardware.

 coreboot is only relevant once it supports the hardware that is being
 designed in. After design is done the window is closed; a firmware
 has been chosen, and coreboot wasn't on the table.

 By current hardware I don't mean what is shipping or what is being
 implemented in coreboot. Current hardware is what is being designed
 by silicon vendors. The time between design and shipping products is
 on the order of several years and the longer it takes for coreboot to
 run on that silicon the less relevant coreboot is.

 By the time individual contributors can make significant contributions
 for a particular silicon that silicon is long obsolete, so those efforts
 will only tend to support coreboot as a pointless niche project.

 That's not why I contribute to coreboot.


Peter, you make good points. As a purely community contributor I'd be happy
to sign any necessary NDAs to contribute on Google designs. Take a look at
the Linux Foundation NDA program:
http://www.linuxfoundation.org/programs/developer/nda

Coreboot can be relevant even if it only supports obsolete silicon.
Coreboot was the first to bring sub-second boot times to laptops. There are
more examples.

But Peter, what's your take on Alex's suggestion: What do we need to do to
allow commercial contributors to work directly upstream? And before you
discount this question for menial technical reasons, please take a moment
to keep this conversation open, and let's try to find an answer.

 You cannot treat community as some kind of corporate entity.

 You're right, and it's exactly why individual community contributors
 are so limited in what we can do in coreboot.


I don't feel limited. Corporate contributors are of necessity restricted --
e.g. to large commits after the product ships. I grok that. Is there a way
to *reduce* the restrictions, and burdens in general, of corporate
contributors? To get them to work directly upstream?


  You can't realistically put such burden on few people.

 As I understand the proposal, the kind of work that gatekeepers would
 do would be drastically different from the kind of work that reviewers
 must currently do.

 The burden for reviewers is currently very high because so many
 changes are not finished when they are proposed for review.

 Compare with Linux, where contributors more frequently than not send
 perfect patches which are very quick to review.


Reviewers could reject patches as incomplete. Ron, Alex, can you please
list specific commits that (for Ron) broke multiple boards unnecessarily /
(for Alex) bodged, nonsensical terrible ones? Those commits seem to be at
the heart of this question.


  The changes you proposed would effectively make coreboot into
  corporate project.

 It already is and as Ron described it actually always was. It's not
 possible to make significant contributions for current hardware as an
 individual contributor. I think coreboot may have an opportunity to
 affect this, but certainly not by using brute contributor force.


So let's affect this.


  I'd expect a community fork to emerge quickly, outside of this new
  limiting infrastructure and I'll be surely moving to community fork.

 Try to mentally balance the commit graph a bit differently.

 I think part of the proposal was essentially to have a community branch?

 That isn't too different from creating a fork?


I don't see anywhere in Stefan's *only* email on this subject that he
suggested a community branch. Branches were Alex's idea:
http://www.coreboot.org/pipermail/coreboot/2014-March/077660.html

Stefan appears to be missing in action.

David
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-23 Thread Stefan Tauner
On Sun, 23 Mar 2014 03:56:35 -0600
David Hubbard david.c.hubbard+coreb...@gmail.com wrote:

 Stefan appears to be missing in action.

No, well, he has stated that he want to wait till everybody has calmed
down (on IRC). It looks to me that he may have to wait indefinitely
though, and I would also like to see some reaction from him to the harsh
opinions given.

I can't comment on the substance of the proposal, but the reactions
from the (for me) most diligent and competent community members tells
me that something in it or how it was presented is clearly flawed.

-- 
Kind regards/Mit freundlichen Grüßen, Stefan Tauner

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-23 Thread Peter Stuge
David Hubbard wrote:
  Unfortunately, considering how the hardware industry works, individual
  contributors in the community can't work on code for current hardware.
 
 Peter, you make good points. As a purely community contributor I'd be happy
 to sign any necessary NDAs to contribute on Google designs. Take a look at
 the Linux Foundation NDA program:
 http://www.linuxfoundation.org/programs/developer/nda
 
 Coreboot can be relevant even if it only supports obsolete silicon.

Not in the firmware market it can't.


 Coreboot was the first to bring sub-second boot times to laptops.

But that doesn't matter unless coreboot is available for the machines
that are built today. Otherwise noone who is building machines today
can use it. Which is what I want.


 There are more examples.

Unfortunately no technical properties or features of coreboot matter.
If coreboot does not support machines that are built today it is irrelevant.
I don't want that.


 But Peter, what's your take on Alex's suggestion: What do we need to
 do to allow commercial contributors to work directly upstream? And
 before you discount this question for menial technical reasons,
 please take a moment to keep this conversation open, and let's try
 to find an answer.

I think Alex has his heart in the right place but I also think that
it is a bit naïve to believe that coreboot would be able to do
anything to allow commercial contributors to work directly upstream.

This isn't up to coreboot, it isn't something coreboot can influence
in any other way than by becoming more relevant in the firmware market.


  You're right, and it's exactly why individual community contributors
  are so limited in what we can do in coreboot.
 
 I don't feel limited.

Do you have preview silicon access? I know I don't, and I don't
believe I could ever get it.


 Corporate contributors are of necessity restricted -- e.g. to large
 commits after the product ships. I grok that. Is there a way to
 *reduce* the restrictions, and burdens in general, of corporate
 contributors? To get them to work directly upstream?

There's nothing that the coreboot project can do. The restrictions
may change with time, but since they don't come from coreboot there's
no change coreboot can make to affect them. I hope that makes sense?


 Reviewers could reject patches as incomplete.

Patch authors usually do not understand why patches are incomplete
without mentoring. That does not scale.


  It already is and as Ron described it actually always was. It's not
  possible to make significant contributions for current hardware as an
  individual contributor. I think coreboot may have an opportunity to
  affect this, but certainly not by using brute contributor force.
 
 So let's affect this.

The way to do so is to for coreboot to continue to become more
relevant in the firmware market.


//Peter

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-23 Thread Alex G.
David,

When you go out of line with a private email, expect to find yourself on
a public list.

Alex

On 03/23/2014 05:04 AM, David Hubbard wrote:
 On Sun, Mar 23, 2014 at 1:26 AM, mrnuke mr.nuke...@gmail.com
 mailto:mr.nuke...@gmail.com wrote:
 
 On Sunday, March 23, 2014 07:34:32 AM Vladimir 'φ-coder/phcoder'
 Serbinenko
 wrote:
  On 23.03.2014 04:10, Peter Stuge wrote:
   That isn't too different from creating a fork?
 
  Fork is better. With fork we don't have to deal with the same
 people who
  pushed the community out in the first place.
 
 Can you guys stop fucking worrying about a fork for the time being?
 We'll fork
 if we have to, but right now, we should be focused on refactoring the
 development process. If we do the latter rather than the former,
 chances are
 we'll find a mutually agreeable and better process.
 
 Stop pulling out rulers and unzipping your pants.
 
 
 Honestly, Alex, we'll fork if we have to, and you'll be ignored.
 
 When we fork, it'll be you holding the ruler. Contributing to coreboot
 hasn't made us any money, any glory, and that's perfect. Coreboot for me
 is about not paying $100 to Microsoft to get a license to boot my OS on
 my computer.
 
 David


-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-23 Thread Gregg Levine
Hello!
Please don't next time. Its considered to be rather rude, especially
if the sender asked you to keep it off the list. I don't pretend to
know what David H, was thinking, but I surmise he was indeed thinking
of that.
-
Gregg C Levine gregg.drw...@gmail.com
This signature fought the Time Wars, time and again.


On Sun, Mar 23, 2014 at 1:01 PM, Alex G. mr.nuke...@gmail.com wrote:
 David,

 When you go out of line with a private email, expect to find yourself on
 a public list.

 Alex

 On 03/23/2014 05:04 AM, David Hubbard wrote:
 On Sun, Mar 23, 2014 at 1:26 AM, mrnuke mr.nuke...@gmail.com
 mailto:mr.nuke...@gmail.com wrote:

 On Sunday, March 23, 2014 07:34:32 AM Vladimir 'φ-coder/phcoder'
 Serbinenko
 wrote:
  On 23.03.2014 04:10, Peter Stuge wrote:
   That isn't too different from creating a fork?
 
  Fork is better. With fork we don't have to deal with the same
 people who
  pushed the community out in the first place.

 Can you guys stop fucking worrying about a fork for the time being?
 We'll fork
 if we have to, but right now, we should be focused on refactoring the
 development process. If we do the latter rather than the former,
 chances are
 we'll find a mutually agreeable and better process.

 Stop pulling out rulers and unzipping your pants.


 Honestly, Alex, we'll fork if we have to, and you'll be ignored.

 When we fork, it'll be you holding the ruler. Contributing to coreboot
 hasn't made us any money, any glory, and that's perfect. Coreboot for me
 is about not paying $100 to Microsoft to get a license to boot my OS on
 my computer.

 David


 --
 coreboot mailing list: coreboot@coreboot.org
 http://www.coreboot.org/mailman/listinfo/coreboot

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-23 Thread ron minnich
On Sat, Mar 22, 2014 at 11:34 PM, Vladimir 'φ-coder/phcoder'
Serbinenko phco...@gmail.com wrote:
 On 23.03.2014 04:10, Peter Stuge wrote:
 That isn't too different from creating a fork?
 Fork is better. With fork we don't have to deal with the same people who
 pushed the community out in the first place.

Vladimir, these are strong words, so I'd like to repeat my question.
The concern seems to be about the notion of gatekeepers. But every
project I've been on has gatekeepers. We've had them on coreboot since
the beginning, even as we iterated through four different code
management systems. One level currently is that some people don't get
+2, and the new proposal is to limit the set of committers.

So I believe the problem is not the idea of gatekeepers, but the
manner in which they are proposed to work. Can you tell me what about
this upsets you? I want to understand.

The times I've seen problems with gatekeepers have all concerned
responsiveness, not the number of gatekeepers, 9front forked Plan 9
because the gatekeepers of Plan 9 commits were felt to be not
sufficiently responsive. The result has not been positive, however, as
the forks of Plan 9 now number at least 5, and the community has
really fragmented.

So, is the issue the limitation of the numbers, your view that the
committers won't be responsive, or just the idea of gatekeepers?

I have friends who commit to grub2, and there seem to be gatekeepers
there; how do you manage that process?

I think it makes more sense to drop the heat level of this
conversation and work toward a mutually agreeable situation. Let's
take it easy. The changes have not happened, the discussion is
ongoing, and I don't see a point to taking action too quickly.

Of course, the nature of the project is that you can fork any time.
That's your call. But it would be a shame.

ron

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-23 Thread mrnuke
On Sunday, March 23, 2014 05:37:37 PM Peter Stuge wrote:
 David Hubbard wrote:
  But Peter, what's your take on Alex's suggestion: What do we need to
  do to allow commercial contributors to work directly upstream? And
  before you discount this question for menial technical reasons,
  please take a moment to keep this conversation open, and let's try
  to find an answer.
 
 I think Alex has his heart in the right place but I also think that
 it is a bit naïve to believe that coreboot would be able to do
 anything to allow commercial contributors to work directly upstream.
 
In the current model, where every patch needs to go through our gerrit, and be 
met by highly experienced shed builders, no there's nothing we can really do. 
However, if we're going to change the model, this remains a valid point to 
look at.

 This isn't up to coreboot, it isn't something coreboot can influence
 in any other way than by becoming more relevant in the firmware market.
 
Sure it can... by adopting a development model that makes sense to said 
commercial entity... by eliminating some of the unnecessary hurdles in 
upstreaming the code. I sense your comments are under the assumption that 
everyone uses AMD's model -- write lots of code with NDA'd docs, then scrub it 
clean before upstreaming. 
It's still up to the vendor how closely they want to work with upstream, but 
they ain't gonna do it if the process ain't friendly. As an upstream, we need 
to provide a friendly way of doing business. And yes, we can do that.

Alex

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Re: [coreboot] Changes to the coreboot Project Structure

2014-03-23 Thread Vladimir 'φ-coder/phcoder' Serbinenko
On 23.03.2014 19:24, ron minnich wrote:
 So I believe the problem is not the idea of gatekeepers, but the
 manner in which they are proposed to work. Can you tell me what about
 this upsets you? I want to understand.
The problem is that the proposal is that all commits go through
gatekeepers. It's bottleneck. It makes much more sense to have per-path
maintainers and tiered code.
E.g. we could keep all boards rather than shooting them and the ones
that are considered to be too old can have less stringent requirements
on commits. This will free the qualified people time to concentrate on
boards where it's most important.
Also it will benefit unimportant boards as well as they'll be easier
to keep.
 Then per-path maintainer and gatekeeper are contradictory concepts. How
one can be maintainer if he can't commit to his maintained code. I feel,
for example, that nehalem code and resulting boards are my
responsibility and I should be able to commit there easily. Getekeeprs
will make this impossible as I'm more or less the only one who knows
nehalem code *and* cares about it.
I feel like the top-level maintainers would be only about overall
structure, not about details in Board:foo/bar they've never even seen
and solving disputes. Making everything go through 6 people is
unfeasible as 6 people can't represent broad range of interests and some
parts of code will get neglected more that they have to be of simple
scarceness of resources.



signature.asc
Description: OpenPGP digital signature
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-23 Thread Vladimir 'φ-coder/phcoder' Serbinenko
On 23.03.2014 19:24, ron minnich wrote:
 I have friends who commit to grub2, and there seem to be gatekeepers
 there; how do you manage that process?
In case of grub2 I admit we have exactly the problems I described. I'm
open to having more maintainers but right now it doesn't seem to be
feasible. I proposed co-maintaining to some skilled people but they
didn't accept as of now. Here you have a chance of more people willing
to help maintain coreboot. Use this resoiurce.



signature.asc
Description: OpenPGP digital signature
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-23 Thread David Hubbard
On Sun, Mar 23, 2014 at 12:58 PM, Vladimir 'φ-coder/phcoder' Serbinenko 
phco...@gmail.com wrote:

 On 23.03.2014 19:24, ron minnich wrote:
  So I believe the problem is not the idea of gatekeepers, but the
  manner in which they are proposed to work. Can you tell me what about
  this upsets you? I want to understand.
 The problem is that the proposal is that all commits go through
 gatekeepers. It's bottleneck. It makes much more sense to have per-path
 maintainers and tiered code.
 E.g. we could keep all boards rather than shooting them and the ones
 that are considered to be too old can have less stringent requirements
 on commits. This will free the qualified people time to concentrate on
 boards where it's most important.
 Also it will benefit unimportant boards as well as they'll be easier
 to keep.
  Then per-path maintainer and gatekeeper are contradictory concepts. How
 one can be maintainer if he can't commit to his maintained code. I feel,
 for example, that nehalem code and resulting boards are my
 responsibility and I should be able to commit there easily. Getekeeprs
 will make this impossible as I'm more or less the only one who knows
 nehalem code *and* cares about it.
 I feel like the top-level maintainers would be only about overall
 structure, not about details in Board:foo/bar they've never even seen
 and solving disputes. Making everything go through 6 people is
 unfeasible as 6 people can't represent broad range of interests and some
 parts of code will get neglected more that they have to be of simple
 scarceness of resources.


Without speaking for anyone or about anything else, can Stefan comment on
this proposal by Vladimir? It seems relatively cool and reasonable.

I publicly, sincerely apologize for my part in heating this thread up.

David
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-22 Thread Kevin O'Connor
On Thu, Mar 20, 2014 at 10:55:57PM +0100, Stefan Reinauer wrote:
 Changes to the coreboot Project Structure
 
 We -- the coreboot project -- have succeeded beyond our wildest
 expectations, with every major laptop vendor using our code.
[...]

   To ensure consistency, scalability and conformity with the general
   coreboot strategy, we need to define a clear committer structure that
   defines the original project structure of having a benevolent dictator
   aka project leader (Stefan Reinauer) and gatekeepers in place.

I think it would be a great to clearly define and document who the
ultimate decision makers for patch acceptence are.  So, all in all,
this sounds like a good thing to me.

Just my $.02.
-Kevin

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot


Re: [coreboot] Changes to the coreboot Project Structure

2014-03-22 Thread Peter Stuge
Vladimir 'φ-coder/phcoder' Serbinenko wrote:
 The proposition of gatekeepers would essentially kill community effort.

That might not be a bad thing.

Unfortunately, considering how the hardware industry works, individual
contributors in the community can't work on code for current hardware.

coreboot is only relevant once it supports the hardware that is being
designed in. After design is done the window is closed; a firmware
has been chosen, and coreboot wasn't on the table.

By current hardware I don't mean what is shipping or what is being
implemented in coreboot. Current hardware is what is being designed
by silicon vendors. The time between design and shipping products is
on the order of several years and the longer it takes for coreboot to
run on that silicon the less relevant coreboot is.

By the time individual contributors can make significant contributions
for a particular silicon that silicon is long obsolete, so those efforts
will only tend to support coreboot as a pointless niche project.

That's not why I contribute to coreboot.


 Even in current infrastructure reviewing is a major slowdown.

As it should be. The purpose of peer review is to increase quality of
the codebase by having one or more peers review changes. Of course
that will take time.

The more complex a project is, the less development will be about
writing code. Writing code is just typing.

The hard work happens before, trying to create a design the
implementation of which will actually solve the problem, and after,
trying to find out whether the implementation actually *does* solve
the problem as intended and without introducing unforeseen issues.

A high rate of change means that all time is spent on writing code
and no time is spent either on thinking about the problem beforehand
or on analyzing results after the fact. That will decrease quality.

The discussion about slow or fast is distinct from the one about if
and how commercial and community can work together. Both are
important and I think now is a good time to have them.


 You cannot treat community as some kind of corporate entity.

You're right, and it's exactly why individual community contributors
are so limited in what we can do in coreboot.


Peter Stuge, Kyösti Mälkki, N.N. (non-commercial part of the
coreboot community)
 Sounds like a joke. While Peter is competent, he's also very busy. I'd
 expect his review thoughtput of perhaps a patch a week.

I think your estimate may even be on the optimistic side.


 You can't realistically put such burden on few people.

As I understand the proposal, the kind of work that gatekeepers would
do would be drastically different from the kind of work that reviewers
must currently do.

The burden for reviewers is currently very high because so many
changes are not finished when they are proposed for review.

Compare with Linux, where contributors more frequently than not send
perfect patches which are very quick to review.


 If you want a corporate version of coreboot, I think you have to
 use a workflow similar to Fedora vs Red Hat Enterprise Linux.

I would find it highly undesirable for coreboot to be anything like
Fedora. My experience with Fedora leaves quite some things to be desired.


 The changes you proposed would effectively make coreboot into
 corporate project.

It already is and as Ron described it actually always was. It's not
possible to make significant contributions for current hardware as an
individual contributor. I think coreboot may have an opportunity to
affect this, but certainly not by using brute contributor force.


 I'd expect a community fork to emerge quickly, outside of this new
 limiting infrastructure and I'll be surely moving to community fork.

Try to mentally balance the commit graph a bit differently.

I think part of the proposal was essentially to have a community branch?

That isn't too different from creating a fork?


//Peter


pgp4CmbztPnCx.pgp
Description: PGP signature
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-21 Thread David Hubbard
On Thu, Mar 20, 2014 at 9:31 PM, Vladimir 'φ-coder/phcoder' Serbinenko 
phco...@gmail.com wrote:

 On 21.03.2014 01:39, Carl-Daniel Hailfinger wrote:
  Hi Stefan,
 
  streamlining development and maintenance is definitely absoutely
  worthwhile. Getting rid of unmaintained code is also a good thing. The
  guidelines presented in your mail look mostly good IMHO, but I'd like to
  comment on a few things.
 
  Am 20.03.2014 22:55 schrieb Stefan Reinauer:
  * Significantly reduce number of submitters
To ensure consistency, scalability and conformity with the general
coreboot strategy, we need to define a clear committer structure that
defines the original project structure of having a benevolent dictator
aka project leader (Stefan Reinauer) and gatekeepers in place. The
suggested structure will need to value both community interests and
corporate interests equally and hence a good setup would be to have a
final amount of six developers with submit rights, three community
representatives and three corporate representatives (on from each
 major
stakeholder):
 
  I see a huge bottleneck in restricting the number of committers to six.
  - Corporate committers will be primarily obliged to get the stuff of
  their own employer committed, but if they are ill or on vacation,
  someone else would have to take over. This would either be another
  corporate committer (in which case their own employer would have to
  authorize spending time for a different company) or a community
 committer.
  - Community committers are not paid, and commit in their spare time.
  Spare time is not necessarily abundant all year round. Speaking from
  experience, the flashrom project has no shortage in developers or
  submitted patches, but a real and painful shortage in
  reviewers/committers. The flashrom project patch backlog is huge due to
  this. Doing a commit is easy, but making sure that a commit follows
  certain guidelines is a huge time sink with none of the fun of writing
 code.
  - New contributors (corporate or community) would have to find a
  sponsor to actually commit their code. With a large committer base,
  this can happen rather quickly. With only six committers facing their
  own deadlines or other shortages of time, this could take quite a while.
 
 The proposition of gatekeepers would essentially kill community effort.
 Even in current infrastructure reviewing is a major slowdown. With small
 number of gatekeepers there wouldn't be any significant contributions as
 the gatekeepers wouldn't be able to review them in reasonable time,
 which will, in turn discourage contributions. You may as well just stop
 accepting community contributions right now: it turns out to be the same
 thing, just a little bit quicker.
 You cannot treat community as some kind of corporate entity.
Peter Stuge, Kyösti Mälkki, N.N. (non-commercial part of the
coreboot community)
 Sounds like a joke. While Peter is competent, he's also very busy. I'd
 expect his review thoughtput of perhaps a patch a week.
 You can't realistically put such burden on few people.
 If you want a corporate version of coreboot, I think you have to use a
 workflow similar to Fedora vs Red Hat Enterprise Linux.
 The changes you proposed would effectively make coreboot into corporate
 project. I'd expect a community fork to emerge quickly, outside of this
 new limiting infrastructure and I'll be surely moving to community fork.


I will be joining you on the community fork. We can call it FedoraBoot
(just kidding).

This Google-sponsored takeover of the coreboot leadership cannot be allowed
to succeed. I appreciate all that Google has done to promote coreboot. I
want them to continue.

But Google and the community need to talk more about Google's code dumps,
unexplained demands, and closed development. If instead Google finds it
more convenient to just co-opt coreboot by Significantly reduce number of
submitters then coreboot.org is no more open to committers than
chromium.org.

We will fork.

David
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-21 Thread Kyösti Mälkki

On 03/20/2014 11:55 PM, Stefan Reinauer wrote:

Changes to the coreboot Project Structure

..


* Significantly reduce number of submitters
   To ensure consistency, scalability and conformity with the general
   coreboot strategy, we need to define a clear committer structure that
   defines the original project structure of having a benevolent dictator
   aka project leader (Stefan Reinauer) and gatekeepers in place. The
   suggested structure will need to value both community interests and
   corporate interests equally and hence a good setup would be to have a
   final amount of six developers with submit rights, three community
   representatives and three corporate representatives (on from each major
   stakeholder):

   Current suggestions:

   Patrick Georgi (Secunet)
   Marc Jones (Sage)
   Stefan Reinauer (Google)

   Peter Stuge, Kyösti Mälkki, N.N. (non-commercial part of the
   coreboot community)

   Status: TO BE IMPLEMENTED


Hi

Just for quick reference, I have read this proposal previously with 
following comments:



For now I am not declining, at least (from becoming a gatekeeper).

It finally depends a lot of the final structure of this hierarchy and 
what goals it sets.


One thing you need to add to this document is how project leaders plan 
to proceed with on-going and further violations of GPL copyright holders 
rights, as IBV/ODM/OEM chain refuses to make the distributed firmware 
binaries traceable to the sources they were built from.




Regards,
Kyösti

--
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-21 Thread David Hendricks
On Thu, Mar 20, 2014 at 2:55 PM, Stefan Reinauer 
stefan.reina...@coreboot.org wrote:

 * Build a MAINTAINERS file for common code, and encourage people to keep
   subsystem maintainers in the loop for changes
   Aiming for top notch code quality, the coreboot project is generally
   trying to provide a solid and scalable framework for development as well
   as a number of generic cross-chipset components. Changes to these parts
   of the coreboot code affect a large number of supported systems. Hence
   it is important to have gatekeepers in place to guarantee they stay
   operational.


For non-common code, I am curious if it's possible to make MAINTAINERS
hierarchical, perhaps by using multiple files or adding an optional path
next to the person's name in the top-level file.

For example, if somebody has a particular interest in the x201, they can
echo $NAME  src/mainboard/lenovo/x201/MAINTAINERS
or
echo $NAME src/mainboard/lenovo/x201  MAINTAINERS

and then have gerrit add $NAME as a reviewer to any patches that touch the
subdirectory.

-- 
David Hendricks (dhendrix)
Systems Software Engineer, Google Inc.
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-21 Thread David Hendricks
On Thu, Mar 20, 2014 at 5:39 PM, Carl-Daniel Hailfinger 
c-d.hailfinger.devel.2...@gmx.net wrote:

 Hi Stefan,

 streamlining development and maintenance is definitely absoutely
 worthwhile. Getting rid of unmaintained code is also a good thing. The
 guidelines presented in your mail look mostly good IMHO, but I'd like to
 comment on a few things.

 Am 20.03.2014 22:55 schrieb Stefan Reinauer:
  * Significantly reduce number of submitters
To ensure consistency, scalability and conformity with the general
coreboot strategy, we need to define a clear committer structure that
defines the original project structure of having a benevolent dictator
aka project leader (Stefan Reinauer) and gatekeepers in place. The
suggested structure will need to value both community interests and
corporate interests equally and hence a good setup would be to have a
final amount of six developers with submit rights, three community
representatives and three corporate representatives (on from each major
stakeholder):

 I see a huge bottleneck in restricting the number of committers to six.
 - Corporate committers will be primarily obliged to get the stuff of
 their own employer committed, but if they are ill or on vacation,
 someone else would have to take over. This would either be another
 corporate committer (in which case their own employer would have to
 authorize spending time for a different company) or a community committer.


Companies that get open-source development don't operate that way,
thankfully.


 - Community committers are not paid, and commit in their spare time.
 Spare time is not necessarily abundant all year round. Speaking from
 experience, the flashrom project has no shortage in developers or
 submitted patches, but a real and painful shortage in
 reviewers/committers. The flashrom project patch backlog is huge due to
 this.


Flashrom's problems run a lot deeper than that. Rather than regurgitate old
discussion, I'll point to this thread:
http://www.flashrom.org/pipermail/flashrom/2013-July/011271.html


 Doing a commit is easy, but making sure that a commit follows
 certain guidelines is a huge time sink with none of the fun of writing
 code.
 - New contributors (corporate or community) would have to find a
 sponsor to actually commit their code. With a large committer base,
 this can happen rather quickly. With only six committers facing their
 own deadlines or other shortages of time, this could take quite a while.


 AFAICS the reason to reduce the number of coreboot committers is to have
 gatekeepers who actually enforce guidelines by looking at patches before
 they commit them. That essentially introduces an additional review step.


Anybody can review a patch and give it a score. AFAICT gatekeepers are
necessarily tasked with scrutinizing code, and in fact that will be
impossible in many cases where documentation for a new chip isn't public.
The way I read it, a committer ensures that patches meet
quality/consistency guidelines, adds additional reviewers/stakeholders when
appropriate, and can optionally do a more thorough review, with the
intention of helping authors to navigate the review process effectively.

How many times have community members sent their patches for review only to
have them bitrot for days, weeks, or even months? There have been many
occasions where Stefan and Ron spend a weekends hanging out in a coffee
shop and just going thru stale patches on gerrit to try to reduce the
backlog. I doubt the intention is to make the review process more
bureaucratic or increase the backlog.

While such a step may be desirable, it would have to be made clear whose
 obligation it is to carry out commit+review step for new contributors,
 and how any fallback/failover mechanisms are implemented.


MAINTAINERS file?

Having gerrit automatically add reviewers would be tremendously helpful too.

-- 
David Hendricks (dhendrix)
Systems Software Engineer, Google Inc.
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-21 Thread David Hendricks
On Fri, Mar 21, 2014 at 11:52 AM, David Hendricks dhend...@google.comwrote:




 On Thu, Mar 20, 2014 at 5:39 PM, Carl-Daniel Hailfinger 
 c-d.hailfinger.devel.2...@gmx.net wrote:

 Hi Stefan,

 streamlining development and maintenance is definitely absoutely
 worthwhile. Getting rid of unmaintained code is also a good thing. The
 guidelines presented in your mail look mostly good IMHO, but I'd like to
 comment on a few things.

 Am 20.03.2014 22:55 schrieb Stefan Reinauer:
  * Significantly reduce number of submitters
To ensure consistency, scalability and conformity with the general
coreboot strategy, we need to define a clear committer structure that
defines the original project structure of having a benevolent dictator
aka project leader (Stefan Reinauer) and gatekeepers in place. The
suggested structure will need to value both community interests and
corporate interests equally and hence a good setup would be to have a
final amount of six developers with submit rights, three community
representatives and three corporate representatives (on from each
 major
stakeholder):

 I see a huge bottleneck in restricting the number of committers to six.
 - Corporate committers will be primarily obliged to get the stuff of
 their own employer committed, but if they are ill or on vacation,
 someone else would have to take over. This would either be another
 corporate committer (in which case their own employer would have to
 authorize spending time for a different company) or a community committer.


 Companies that get open-source development don't operate that way,
 thankfully.


 - Community committers are not paid, and commit in their spare time.
 Spare time is not necessarily abundant all year round. Speaking from
 experience, the flashrom project has no shortage in developers or
 submitted patches, but a real and painful shortage in
 reviewers/committers. The flashrom project patch backlog is huge due to
 this.


 Flashrom's problems run a lot deeper than that. Rather than regurgitate
 old discussion, I'll point to this thread:
 http://www.flashrom.org/pipermail/flashrom/2013-July/011271.html


 Doing a commit is easy, but making sure that a commit follows
 certain guidelines is a huge time sink with none of the fun of writing
 code.
 - New contributors (corporate or community) would have to find a
 sponsor to actually commit their code. With a large committer base,
 this can happen rather quickly. With only six committers facing their
 own deadlines or other shortages of time, this could take quite a while.


 AFAICS the reason to reduce the number of coreboot committers is to have
 gatekeepers who actually enforce guidelines by looking at patches before
 they commit them. That essentially introduces an additional review step.


 Anybody can review a patch and give it a score. AFAICT gatekeepers are
 necessarily tasked with scrutinizing code,


s/are/are NOT


  and in fact that will be impossible in many cases where documentation for
 a new chip isn't public. The way I read it, a committer ensures that
 patches meet quality/consistency guidelines, adds additional
 reviewers/stakeholders when appropriate, and can optionally do a more
 thorough review, with the intention of helping authors to navigate the
 review process effectively.

 How many times have community members sent their patches for review only
 to have them bitrot for days, weeks, or even months? There have been many
 occasions where Stefan and Ron spend a weekends hanging out in a coffee
 shop and just going thru stale patches on gerrit to try to reduce the
 backlog. I doubt the intention is to make the review process more
 bureaucratic or increase the backlog.

 While such a step may be desirable, it would have to be made clear whose
 obligation it is to carry out commit+review step for new contributors,
 and how any fallback/failover mechanisms are implemented.


 MAINTAINERS file?

 Having gerrit automatically add reviewers would be tremendously helpful
 too.

 --
 David Hendricks (dhendrix)
 Systems Software Engineer, Google Inc.




-- 
David Hendricks (dhendrix)
Systems Software Engineer, Google Inc.
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

[coreboot] Changes to the coreboot Project Structure

2014-03-20 Thread Stefan Reinauer
Changes to the coreboot Project Structure

We -- the coreboot project -- have succeeded beyond our wildest
expectations, with every major laptop vendor using our code. Going
forward, this will require a few structural changes that will ensure
that the vendors shipping coreboot products can count on a stable,
reliable code base.

With that incredible success, there is also a lot of work to be done to
make sure the project is scaling and keeping up with the requirements of
the millions of new users that coreboot gets every year. There is a
large number of new corporate entities investigating their possible
involvement in coreboot, and we need to make sure that their integration
is working smoothly while still keeping the project’s interests and
goals stable and alive.

Moving forward, we need to make sure that we can welcome these possible
new contributors without the friction that we have seen in the past.
The coreboot community currently consists of about 80 contributors with
varying levels of activity. Among these contributors, three groups can
be identified as the major stakeholders in the project: Sage Electronic
Engineering (the largest coreboot IBV), Secunet and Google Inc.
(delivering all new Chrome OS devices with coreboot based firmware).
Individuals employed by these three stakeholders make up for the
majority of code contributions. According to Ohloh, roughly half of the
coreboot contributions are done by the top ten contributors. Over the
project life time, over 80% of those have been made by corporate
contributors.

While there is a fairly good understanding of the project direction and
interest between those individual contributors, there are also an
increasing need for making sure that the coreboot project’s scalability
and its viability for mobile / consumer products and servers is
guaranteed. The goal of this proposal is to enable all of the community
to have a strong voice and make strong contributions to the project
while allowing the major stakeholders to steer the project direction and
pursue ownership of the components they provide.

Traditionally the development model of coreboot was very similar to the
model of the Linux kernel in many ways, including coding guidelines, the
requirement of a sign-off process for contributions, and active
leadership provided by a “benevolent dictator”. Commit rights were
traditionally given to few of the top contributors of the project.
With the introduction of git as coreboot’s version control system and
its multi-branch nature as well as gerrit for code reviews, the
landscape of the project has slightly shifted towards a more anocratic
development model in which different interest groups sometimes worked on
opposing strategies, and thus affecting the project’s overall stability
and suitability for large scale deployment negatively. The advent of
these new tools requires the original project founders and major
stakeholders to provide stronger leadership and strategic direction for
the project.

Measures to improve the coreboot Development Model

* Require authors to acknowledge changes made in their name (Forge-Author)
  This change allows contributors to decide when their OWN changes are
  ready for being integrated into the project, preventing unfinished and
  experimental work to be submitted accidentally.

  Status: ACTIVELY ENFORCED BY GERRIT

* Define owners for (sets of) mainboards and require these to act as
  maintainers / gatekeepers, being the controlling instance to submit
  these mainboard changes.
  Providing support for a new mainboard / chipset / component in coreboot
  is a major contribution that requires the contributors to invest dozens
  / hundreds / thousands of man hours. In the light of this we would like
  to give those who provide support for one of these components stronger
  ownership. The submitters of a component need to have the last word
  about what becomes part of their component and what does not. This will
  also give component providers a certain freedom of the actual
  implementation of the component, that might, in some rare cases, be
  different from the implementational structure of the framework and
  generic code.

  Status: TO BE ENFORCED BY POLICY

* Build a MAINTAINERS file for common code, and encourage people to keep
  subsystem maintainers in the loop for changes
  Aiming for top notch code quality, the coreboot project is generally
  trying to provide a solid and scalable framework for development as well
  as a number of generic cross-chipset components. Changes to these parts
  of the coreboot code affect a large number of supported systems. Hence
  it is important to have gatekeepers in place to guarantee they stay
  operational.

  Status: TO BE ENFORCED BY POLICY

* Look into making gerrit automatically add reviewers based on maintainer
  lists
  In order to streamline the code review process in a project that on
  average now has over 200 contributions per month, maintainers / owners

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-20 Thread mrnuke
On Thursday, March 20, 2014 10:55:57 PM Stefan Reinauer wrote:
 Changes to the coreboot Project Structure
 
 Measures to improve the coreboot Development Model
 
 * Require authors to acknowledge changes made in their name (Forge-Author)
   [...]
Couldn't agree more.
 
 * Define owners for (sets of) mainboards and require these to act as
   maintainers / gatekeepers, being the controlling instance to submit
   these mainboard changes.
   [...]
 
 * Build a MAINTAINERS file for common code, and encourage people to keep
   subsystem maintainers in the loop for changes
   [...]

This is somewhat what linux does, and it works well for them.

Might be a little OT/irrelevant, but why not make gerrit need a maintainer 
must approve before making the change submittable.
 
 * Look into making gerrit automatically add reviewers based on maintainer
   lists
   [...]
 
Can we find something better than gerrit? I think gerrit encourages too much 
bikeshedding. It also encourages people to filter out gerrit emails, so that 
any such maintainers would not get the message.

 * Import previous code reviews and results
   The tree major stakeholders in the project all own internal code review
   systems, some of which are public (e.g. the Google Chrome OS repository)
   and have code reviews that include representatives outside of Google to
   ensure general code quality and making sure the improvements made for
   products don’t negatively impact upstreamability. For those cases it
   would be extremely helpful to honor the code reviews already done in the
   upstream repository
 
   Status: TO BE INVESTIGATED
 
I couldn't disagree more. First of all, the idea of representatives outside 
of company to ensure general code quality is contrary to the idea of 
allowing the community to scrutinize to-be-upstreamed contributions. When you 
combine that with the idea of [blindly] honoring code reviews already done 
upstream, you have effectively eliminated the scrutiny and review from the 
community. I've seen mostly cases of great external reviews, but have also 
seen a fair share of bodged, nonsensical ones where terrible patches have been 
accepted without much thought.

If the community has to accept code reviews done under closed doors, these 
contributions are effectively code dumps. I do not remember this ever being 
beneficial to the community, and usually results in the community needing to 
clean up afterwards. See linux for details.

What do we need to do to allow commercial contributors to work directly 
upstream? And before you discount this question for menial technical reasons, 
please take a moment to keep this conversation open, and let's try to find an 
answer. Will it work for 100% of commercial contributors? No. However, this 
should be the preferred method for upstreaming contributions. See linux for an 
explanation why this works best.

 * Significantly reduce number of submitters
   To ensure consistency, scalability and conformity with the general
   coreboot strategy, we need to define a clear committer structure that
   defines the original project structure of having a benevolent dictator
   aka project leader (Stefan Reinauer) and gatekeepers in place. The
   suggested structure will need to value both community interests and
   corporate interests equally and hence a good setup would be to have a
   final amount of six developers with submit rights, three community
   representatives and three corporate representatives (on from each major
   stakeholder):
 
I am sorry to say this Stefan, but, in my opinion, you would not make a good 
benevolent dictator.

Over the past years, I have found you to be extremely biased towards the needs 
of the commercial developers, whilst being less interested and attentive to 
the needs and wished of the non-commercial part of the community. I do not 
believe that someone biased towards one part or another of the community can 
make a great leader. You also, on some occasions, delayed good NC 
contributions in order to merge less-than-ideal commercial contributions, 
which later had to be cleaned up by the NC guys.

You are a great person, but I believe that having you as the leader, we would 
have a benevolent dictator for the commercial contributors, where the non-
commercial ones would see have a mere dictator.

On the other hand, I have found Ron Minnich to be very unbiased and equally 
receptive to ideas from both sides of the community. While I am certain some 
people might come to point out mistakes Ron had done in the past, unlike you, 
I did not find a pattern of bias in them. I think Ron is the best candidate 
for the role of President and Benevolent Dictator of Coreboot.

   Current suggestions:
 
   Patrick Georgi (Secunet)
   Marc Jones (Sage)
   Stefan Reinauer (Google)
 
It has been this way for years, so to speak. I also find you to be a much 
better candidate as the representative/maintainer for Google contributions. I 
think you can do much more good

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-20 Thread ron minnich
ah, blush, somebody wants me to be dictator.

However, I can't do it. First off, if you're not going to let me invade
some country, it's no fun. Secondly, it's hard to find Dictator clothes
that look good on me. Just won't work.

Thirdly, Stefan has been doing this very well for at least 7 years, and he
even held coreboot together in the Dark Days when all seemed lost.

Just my $.02 here: Google saved coreboot. We lost our biggest industrial
sponsor when LNXI folded, and it was a real problem keeping it going. And
without a commercial entity, and its mass, we're nowhere. Want to know why
Intel is hiring coreboot people? Go look at the Amazon stats on laptops.
There's your answer.

So I have a very natural fondness for the commercial sector. LNXI kept us
on the map for a while, and now Google does. And, in fact, Google put
coreboot over the top, which was quite a gamble on Google's part and
entirely due to the vision of the ChromeOS team.

But don't worry, I'm going to continue my role as Aging Curmudgeon, so I
will be ever-present and ever-annoying as always.

But, seriously, I do appreciate the kind words.

ron
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-20 Thread Carl-Daniel Hailfinger
Hi Stefan,

streamlining development and maintenance is definitely absoutely
worthwhile. Getting rid of unmaintained code is also a good thing. The
guidelines presented in your mail look mostly good IMHO, but I'd like to
comment on a few things.

Am 20.03.2014 22:55 schrieb Stefan Reinauer:
 * Significantly reduce number of submitters
   To ensure consistency, scalability and conformity with the general
   coreboot strategy, we need to define a clear committer structure that
   defines the original project structure of having a benevolent dictator
   aka project leader (Stefan Reinauer) and gatekeepers in place. The
   suggested structure will need to value both community interests and
   corporate interests equally and hence a good setup would be to have a
   final amount of six developers with submit rights, three community
   representatives and three corporate representatives (on from each major
   stakeholder):

I see a huge bottleneck in restricting the number of committers to six.
- Corporate committers will be primarily obliged to get the stuff of
their own employer committed, but if they are ill or on vacation,
someone else would have to take over. This would either be another
corporate committer (in which case their own employer would have to
authorize spending time for a different company) or a community committer.
- Community committers are not paid, and commit in their spare time.
Spare time is not necessarily abundant all year round. Speaking from
experience, the flashrom project has no shortage in developers or
submitted patches, but a real and painful shortage in
reviewers/committers. The flashrom project patch backlog is huge due to
this. Doing a commit is easy, but making sure that a commit follows
certain guidelines is a huge time sink with none of the fun of writing code.
- New contributors (corporate or community) would have to find a
sponsor to actually commit their code. With a large committer base,
this can happen rather quickly. With only six committers facing their
own deadlines or other shortages of time, this could take quite a while.

AFAICS the reason to reduce the number of coreboot committers is to have
gatekeepers who actually enforce guidelines by looking at patches before
they commit them. That essentially introduces an additional review step.
While such a step may be desirable, it would have to be made clear whose
obligation it is to carry out commit+review step for new contributors,
and how any fallback/failover mechanisms are implemented.

If we really go ahead with a fixed number of committers, each person
should have a substitute who can take over. That would be a total
committer number of twelve.


   Current suggestions:

   Patrick Georgi (Secunet)
   Marc Jones (Sage)
   Stefan Reinauer (Google)

The corporate committer suggestions seem to make sense.


   Peter Stuge, Kyösti Mälkki, N.N. (non-commercial part of the
   coreboot community)

To be honest, regardless of who will be the community gatekeepers, some
people are going to be disappointed. There would have to be a metric for
determining community committers. Is the amount of code written a useful
metric? Should we instead look for the amount of code
reviewed/committed? Lines of code or commits? How far back should we go?
Lines of code written during the last three years maybe?
Or we simply allow all active (any nontrivial code submission in the
last 3 years) community developers to nominate one community committer
and pick those with the highest number of votes.


   Status: TO BE IMPLEMENTED

I would welcome further discussion.


Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/


-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Re: [coreboot] Changes to the coreboot Project Structure

2014-03-20 Thread Vladimir 'φ-coder/phcoder' Serbinenko
On 21.03.2014 01:39, Carl-Daniel Hailfinger wrote:
 Hi Stefan,
 
 streamlining development and maintenance is definitely absoutely
 worthwhile. Getting rid of unmaintained code is also a good thing. The
 guidelines presented in your mail look mostly good IMHO, but I'd like to
 comment on a few things.
 
 Am 20.03.2014 22:55 schrieb Stefan Reinauer:
 * Significantly reduce number of submitters
   To ensure consistency, scalability and conformity with the general
   coreboot strategy, we need to define a clear committer structure that
   defines the original project structure of having a benevolent dictator
   aka project leader (Stefan Reinauer) and gatekeepers in place. The
   suggested structure will need to value both community interests and
   corporate interests equally and hence a good setup would be to have a
   final amount of six developers with submit rights, three community
   representatives and three corporate representatives (on from each major
   stakeholder):
 
 I see a huge bottleneck in restricting the number of committers to six.
 - Corporate committers will be primarily obliged to get the stuff of
 their own employer committed, but if they are ill or on vacation,
 someone else would have to take over. This would either be another
 corporate committer (in which case their own employer would have to
 authorize spending time for a different company) or a community committer.
 - Community committers are not paid, and commit in their spare time.
 Spare time is not necessarily abundant all year round. Speaking from
 experience, the flashrom project has no shortage in developers or
 submitted patches, but a real and painful shortage in
 reviewers/committers. The flashrom project patch backlog is huge due to
 this. Doing a commit is easy, but making sure that a commit follows
 certain guidelines is a huge time sink with none of the fun of writing code.
 - New contributors (corporate or community) would have to find a
 sponsor to actually commit their code. With a large committer base,
 this can happen rather quickly. With only six committers facing their
 own deadlines or other shortages of time, this could take quite a while.
 
The proposition of gatekeepers would essentially kill community effort.
Even in current infrastructure reviewing is a major slowdown. With small
number of gatekeepers there wouldn't be any significant contributions as
the gatekeepers wouldn't be able to review them in reasonable time,
which will, in turn discourage contributions. You may as well just stop
accepting community contributions right now: it turns out to be the same
thing, just a little bit quicker.
You cannot treat community as some kind of corporate entity.
   Peter Stuge, Kyösti Mälkki, N.N. (non-commercial part of the
   coreboot community)
Sounds like a joke. While Peter is competent, he's also very busy. I'd
expect his review thoughtput of perhaps a patch a week.
You can't realistically put such burden on few people.
If you want a corporate version of coreboot, I think you have to use a
workflow similar to Fedora vs Red Hat Enterprise Linux.
The changes you proposed would effectively make coreboot into corporate
project. I'd expect a community fork to emerge quickly, outside of this
new limiting infrastructure and I'll be surely moving to community fork.




signature.asc
Description: OpenPGP digital signature
-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot