Re: [coreboot] [announce] coreboot for the 21st century

2014-03-22 Thread ron minnich
On Fri, Mar 21, 2014 at 4:50 PM, David Hubbard
david.c.hubbard+coreb...@gmail.com wrote:

 I've been thinking about it all day and it seems Vladimir is pretty much
 spot on, The proposition of gatekeepers would essentially kill community
 effort.

There's just something I'm clearly not understanding here.

For the first year or so of linuxbios, I was the gatekeeper. Nobody
but me could push into the repo. We had lots of involvement.

For many open source projects I've been contributing to, there's
always a set of gatekeepers, and there's tons of community
involvement.
E.G., Go has a restricted set of people who can let a patch go into
the upstream, and there is no shortage of people contributing.
When I worked on FreeBSD, I was never one of the people who could push
a patch into the repo, but my changes were accepted. It never bothered
me much; those were the rules and I thought they made sense.

So what is the issue again? I'm trying to understand. Is it the
limited number? Is it the existence of gatekeepers at all?

ron

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


Re: [coreboot] [announce] coreboot for the 21st century

2014-03-22 Thread mrnuke
On Friday, March 21, 2014 09:18:07 PM ron minnich wrote:
 On Fri, Mar 21, 2014 at 6:52 PM, Alex G. mr.nuke...@gmail.com wrote:
  The bad-ness or good-ness of motives is relative. Note that I'm not
  
  using bad in the sense of evil. Let's look at the six gatekeeper idea:
   * Easier for commercial entities to upstream code, therefore faster
  progress for coreboot (good motive). (a)
   * Easier for commercial entities to upstream code, therefore we can get
  lazy even if code quality drops (bad motive). (b)
 
 That's not the intent. The way you are stating this has a lot of
 built-in assumptions, and you're mixing some things up. That's our
 fault; the old rule is, that if someone did not understand what you
 said, it's your fault, not theirs. So, speaking as one of the guys who
 reviewed the email, I'm sorry it was not clearer.
 
Let's be honest. Upstreaming contributions from Google has been a long and 
tedious O(n^2) process. Even though we've improved a bit in terms of jenkins 
build time (optimizations to abuild et. cetera) so that we don't have to wait 
one week for a bomb to verify, the workflow of one review per patch is still 
sub-optimal.

 So, first, the intent of the six gatekeeper idea is, in part, to be
 sure we're being very careful about what goes in. 
 [...]
Six seems a very arbitrary, even number.

 [...]
 
 So it's not about Easier for commercial entities to upstream code --
 it's about not having to do the full review process *twice*, given
 that the code has been picked to pieces by experienced long-time
 coreboot coders, most of whom (no offense intended) are better
 qualified to review the code than almost anyone else. That's why I
 claim what you are saying as not quite right.
 
I think we need to restart this discussion without the implicit assumption 
that gerrit is a part of the workflow. We can do what Linux does. Different 
individuals maintain different sub-somethings of the coreboot tree. I'm not 
trying to establish any criteria for maintainer status.

Short answer:
 1* Google team (*) assigns a coreboot representative
 2* Rep decides it's time to merge some good branch
 3* Rep takes internal branch, and works on top of branch
 4* Rep makes branch mergeable
 5* Rep submits pull/merge request to maintainer (**) of touched code
 6* Maintainer reviews branch as one unit and requests changes
 7* Rep applies changes on top of branch
 8* Repeat 6 and 7 as needed
 9* Maintainer likes what he's seeing, merges branch to his tree

(*) They're still welcome to hang on IRC, ML, and/or submit individual 
patches.
(**) Maintainer and rep must be different persons, preferably not from the 
same team and/or not from teams working on the same thing.

This process eliminates the *twice* review. Individual patches are no longer 
reviewed upstream; however, a review is still done, and corrections are still 
applied. Since a logical change is a branch rather than a patch, the overhead 
is reduced significantly without eliminating the community scrutiny phase. 
You keep all the goodies and reduce review complexity from O(n^2) to O(1).

Sound good so far?

But wait! There's more! As a bonus, considering that individual patches are no 
longer altered, we have the hashes of shipping firmware.

So, why is this better than the gatekeepers idea?
 * We don't bottleneck patches by limiting number of submitters/maintainers
 * Maintainers can focus on the part of tree matching their expertise
 * Reduces patch bikeshedding as maintainers have the final word

Take this a step further: maintainer trees are not the master tree. 
Maintainers still have to periodically get their branches merged with master. 

 Finally, a simple question here: how many gatekeepers are there for
 the final full released version of each version of the Linux kernel?
 
Do you want me to answer that in binary, ternary, octal, or hexadecimal? Those 
gatekeeprs don't deal with individual patches, do they?

 My $.02 anyway.
 
Keep on sending them. A few hundred more of them, and I'll have enough for a 
cigar.

Alex


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


Re: [coreboot] [announce] coreboot for the 21st century

2014-03-22 Thread ron minnich
If you're going to make big changes to what happens at coreboot.org,
you have to get buyin from the folks who do all the work. I'm not the
right person to propose this to :-)

Put simply, it's above my pay grade.

ron

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


Re: [coreboot] [announce] coreboot for the 21st century

2014-03-22 Thread mrnuke
On Friday, March 21, 2014 11:19:42 PM ron minnich wrote:
 If you're going to make big changes to what happens at coreboot.org,
 you have to get buyin from the folks who do all the work. 
 
If we're going to refactor the development model, I insist we do it right. 
Patrick was discussing gitlab as a possible alternative to gerrit. I think 
it's time to closely evaluate our options.

 I'm not the right person to propose this to :-)

I think I CC'd the ML. Yup, I did.

 Put simply, it's above my pay grade.
 
Ran out of $0.02 on this? :)

Alex

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


Re: [coreboot] [announce] coreboot for the 21st century

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

On 03/22/2014 06:18 AM, ron minnich wrote:

On Fri, Mar 21, 2014 at 6:52 PM, Alex G. mr.nuke...@gmail.com wrote:


The bad-ness or good-ness of motives is relative. Note that I'm not
using bad in the sense of evil. Let's look at the six gatekeeper idea:
  * Easier for commercial entities to upstream code, therefore faster
progress for coreboot (good motive). (a)
  * Easier for commercial entities to upstream code, therefore we can get
lazy even if code quality drops (bad motive). (b)


That's not the intent. The way you are stating this has a lot of
built-in assumptions, and you're mixing some things up. That's our
fault; the old rule is, that if someone did not understand what you
said, it's your fault, not theirs. So, speaking as one of the guys who
reviewed the email, I'm sorry it was not clearer.

So, first, the intent of the six gatekeeper idea is, in part, to be
sure we're being very careful about what goes in. We've had some cases
over the past 2-3 years where some inexperienced guys pushed 'commit'
on code that broke a bunch of boards -- in ways that were not obvious.
We would like to avoid that. As we've learned the hard way a few
times, there are not that many people who have the perspective of long
experience and a view of all the boards, and know how trivial changes
can have far-reaching consequences.


Hi

Ron, would you be so kind and identify by commit hash some of these code 
merges by inexperienced guys from last 2-3 years that broke a bunch 
of boards. I would like to see from gerrit history how these problems 
were ultimately dealt with and hopefully we could all learn from the 
mistakes that were made.


I could list some breakage, but the ones I can remember were all 
submitted by experienced long-term commercial contributors, and would 
not exactly match the criteria of your argument. If we look closer, 
probably every suggested gatekeeper is involved with merging such commits.


For an extreme sample of review process try follow this:

AMD CAR: Fix issue with gcc 4.8.x
http://review.coreboot.org/#/c/4205/

We have everything there -- a change in CAR init already approved in 
Chromium git without testing, test results for boards the changed code 
is never built for, test results for boards the change is not built for 
because of a Kconfig option not being set. We have developers from 
Chromium, SAGE and AMD involved in review. We have a couple commmunity 
developers involved. And all this to avoid breakage in some mostly 
obsolete K8 or fam10 platform we have in the tree.


Some changes to review process are certainly welcome. I just hope Stefan 
would have included separate section of the current problems and more 
details of the goals his proposal tries to address. Even some of the 
obvious ones are not answered. For example, are there actual plans to 
bring coreboot trees from coreboot.org and Chromium back in-sync?


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-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] [announce] coreboot for the 21st century

2014-03-22 Thread The Gluglug
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Regarding name for community branch (for maintaining old boards).

On 20/03/14 21:33, Stefan Reinauer wrote:
 Suggested name: “coreboot-community-2014” or “coreboot-v4.0”.

Oldboot.
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJTLj14AAoJEP9Ft0z50c+UFHoH/3jQI8NoQig3c/awn75AZlLb
D0WHy0IHsrVdi23+SpAB4rwo5rQe0/c+cjAxujGjpuHDfxXHABnI235as8An1q83
JYQ55dRtTB+bOLsf+Oa3/xKhR/VRUm7JKNmo7HM9bL+K0u9xMJfxWt9uwJ2rNssE
rX55Z66jN1groIVqK56I+dydVy0dn66sxaeUPxzF10nbFLUiH+LcITLn0fzLNwHS
GO7+zVGCvI5mU7AwD4Dr8pJ4HJLk6kJBQJv461KEhjq26SZrND2LDuneNFSt2Emv
2hL1kT9BXhJdbECUToBGbTy3AVYbfJV2jXmVfKQgKxWYy0vPhr7Ble/YF/odIws=
=G+E3
-END 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-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