Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-10 Thread Tobias Klausmann
Hi! 

On Thu, 09 Jul 2015, Rich Freeman wrote:
 On Thu, Jul 9, 2015 at 10:51 AM, Tobias Klausmann klaus...@gentoo.org wrote:
  What I meant is when I get a stabilization bug for
  cat-egory/foo-1.2.3 which depends on =other-cat/bar-1.0.5. The
  latter is amd64 but not alpha or ~alpha. And it, in turn, has yet
  more deps in the same vein. Now I have several options:
 
 If bar-1.0.5 isn't alpha or ~alpha, then foo-1.2.3 shouldn't be ~alpha
 either, and repoman should complain about this for any non-dev/exp
 arches.

What can I say? Apparently some devs file stabilization bugs
without checking these things. I run repoman full before
committing anything, so that's where the buck stops.

 If it isn't ~alpha to begin with, then it shouldn't be going
 stable on alpha.

Ack. Hence my mention of keyword and soak.

I am confident that nobody here would argue that casual
stabilization bugs are okay and the arch teams should just suck
it up. But unfortunately, it still happens.

Regards,
Tobias

-- 
Sent from aboard the Culture ship
GCU (River Class) Displacement Activity



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread Rich Freeman
On Thu, Jul 9, 2015 at 10:51 AM, Tobias Klausmann klaus...@gentoo.org wrote:

 What I meant is when I get a stabilization bug for
 cat-egory/foo-1.2.3 which depends on =other-cat/bar-1.0.5. The
 latter is amd64 but not alpha or ~alpha. And it, in turn, has yet
 more deps in the same vein. Now I have several options:

If bar-1.0.5 isn't alpha or ~alpha, then foo-1.2.3 shouldn't be ~alpha
either, and repoman should complain about this for any non-dev/exp
arches.

If it isn't ~alpha to begin with, then it shouldn't be going stable on alpha.

I do agree that at the first bump that triggers the need to drop alpha
keywords (testing or stable) there should be a keyword request
submitted to the alpha team to get that sorted out.  They could choose
at that time to do the testing/keywording/etc to get foo-1.2.3 back
onto ~alpha so that it is ready to be stabilized at the right time (or
at least with less delay), or they could choose at that time to just
leave the keywords off in which case they aren't pestered about
stabilization.

-- 
Rich



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread Tobias Klausmann
Hi! 

On Thu, 09 Jul 2015, Steev Klimaszewski wrote:
 On Wed, 2015-07-08 at 21:11 +0200, Tobias Klausmann wrote:
  The truly arch-dependent bugs are what wastes my time:
  
  For example:
  
  - dependencies not being keyworded for arch or ~arch but only
amd64/~amd64
  - dependencies not even building on ~arch, but on ~amd64
  - package assuming availability of gcc/ghc/Python-X.Y when
arch/~arch only has something for Y or X
  - my favourite: assuming udev is at version X for arch/~arch when
it has been broken there for roughly twelve kernel versions due
to udev/systemd upstream not caring. The information is one
equery-y command line away, but no, let's file that bug.
 
 That's a failing of the arch team or the committer then - or whomever
 keyworded the package without testing the dependencies.  That's why the
 keywording bugs happen when dependencies change - and yes, occasionally
 a dependency loses it's keywords and that may be where the issue comes
 from, I'm not sure.  This used to be watched very closely, but I believe
 the tool being used broke at some point.
 
 What exactly do you mean, it's just one command line away but let's file
 the bug - yes a bug SHOULD be filed, so that the people know of the
 issue so it doesn't get repeated, over and over.  

What I meant is when I get a stabilization bug for
cat-egory/foo-1.2.3 which depends on =other-cat/bar-1.0.5. The
latter is amd64 but not alpha or ~alpha. And it, in turn, has yet
more deps in the same vein. Now I have several options:

1/ Pull in all dependencies and test them. This may mean I have
   to let the deps soak in ~alpha for 30 days, leading the
   original dev to complain that the arches are slow.
2/ Try and figure out if I can mask a USE flag on foo-1.2.3 that
   avoids the dependency. If there isn't I can try and make one,
   which leads into another hell of dep chasing for revdeps of
   foo-1.2.3.
3/ Complain on the bug that the maintainer of foo-1.2.3 should
   figure out the deptrees before CCing arches.
4/ Opt out of stabilization for foo-1.2.3

If it turns out that bar-1.0.5 or one of its deps breaks a
completely unrelated package, I get to revert all of this until a
fix is found. And then do it all over again.

What instead should happen:

The maintainer of cat-egory/foo sees that 1.2.3 has a new dep,
which is =other-cat/bar-1.0.5. A quick check with equery* shows
that it isn't stable/keyworded for alpha and hppa.

Thus, the maintainer files a bug for bar-1.0.5 to be stable on
alpha and hppa, possibly/ideally checking with bar's maintainer.
The stabilization for foo-1.2.3 on amd64 can continue, just don't
CC alpha and hppa yet.

Once bar-1.0.5 is stable (or alpha/hppa have opted out), CC them
on the foo-1.2.3 bug.

*(An alternative is to add all the keywords you want and run
  repoman full. Just don't accidentally commit that edit.)

The bad case (ignoring the non-amd64 deptree) is not the
majority, but it's a very frustrating and time consuming
experience for archtesters. Often, the deptrees for the minor
archs are broken in subtly different ways, resulting in the time
wasting to be multiplied.

Option #3 above I have shied away from, since it would feel sort
of aggressive, pedantic and picky when that is not really in my
nature. If everyone is okay(ish) with it, I'll start doing it.

  Having every arch team chase the deps for every package is very,
  very frustrating, since it is so trivial a problem. We need a
  tool that answers the question: I want to mov cat/pkg-1.2.3 to
  stable for arches a, b and c, what do I need? for _every
  package_. Some groups seem to have tooling for this, but it is
  far from easily (obviously?) available, so every team gets to
  re-discover dependency hell. Ruby is especially bad since
  FEATURES=test make the depgraph explode (and sometimes circular).
 
 The only fear I have about CI, is that we turn into every other distro
 out there where it builds, ship it! - I know I prefer to have our arm
 team actually test the packages more than just doing FEATURES=test
 (assuming the tests aren't broken on arm) emerge, although I know there
 are some people on the team who feel that it's too much to actually test
 all of the arm boards. For a long time, certain binary distros were
 compiling anything and everything, and if it built for other arches it
 was available.  Even if there was no way it would possibly work on that
 arch.  

We're already partway down that road of IC,SI. For Alpha, it's
not because we don't want to, but rather because we know that if
we do it 100% properly, we will quickly fall even further behind.
I guess we do speculative testing: If it compiles+tests, great.
If the package actually breaks, a user will surely tell us.


Yes, CI is nice to have if you have the hardware to do it. But if
parts of our workflow start depending on it, we will quickly lose
the minor archs.

Regards,
Tobias

-- 
prom_printf(No VAC. Get some bucks and buy a real computer.);
 

Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread Alec Warner
On Thu, Jul 9, 2015 at 4:47 AM, Rich Freeman ri...@gentoo.org wrote:

 On Thu, Jul 9, 2015 at 5:31 AM, hasufell hasuf...@gentoo.org wrote:
 
  The quality problem is that we have too many developers. If you make
  community contributions easier, sane and more reliable (due to code
  review) then you solve several problems at once, because you need _less_
  developers. Are you aware that we could potentially pull in hundreds
  of contributors who chose to work on their personal overlay instead of
  the gentoo tree? Are you aware that there are a lot of those people?

 Yes and no.

 I'll agree that with a review workflow we might only need one reviewer
 for every 10 contributors, or something like that.  If we have 100
 active devs today, in theory we could instead turn 20 of them into
 reviewers, and now we can support 2000 contributors.

 There are some big assumptions with this kind of argument, though:
 1.  We might find that we don't even have 20 devs interested in doing
 a substantial amount of review.
 2.  The main repository is very diverse.  If 50% of our packages have
 only one person interested in maintaining them, then they get dropped
 since reviewers will ignore their contributions.  Or, they'll just
 rubber-stamp them which is adding valueless work.

 So, a review system could make manpower either more of an issue or
 less of one.  I suspect that trying to force it would basically end up
 putting the entire distro on hold until most of the current devs quit,
 and a new crop signs up who is interested in using the new workflow,
 and then they're starting with zero experience.

 I think a review model is best implemented by individual project
 teams.  They could use it to track changes in an overlay or branch in
 the main tree, and then move those into the main tree using whatever
 quality system seems best.  The team can figure out what is working
 best for it, and if over time a large number of devs feel that it is a
 good way to work we could then talk about doing it with the main tree.
 I still suspect we'll end up having problems with the 70% of packages
 that don't fall into a project though.


So basically Gentoo Sunrise? :)

-A



 --
 Rich




Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread wireless

On 07/09/2015 10:45 AM, Alec Warner wrote:



On Thu, Jul 9, 2015 at 4:47 AM, Rich Freeman ri...@gentoo.org
mailto:ri...@gentoo.org wrote:

On Thu, Jul 9, 2015 at 5:31 AM, hasufell hasuf...@gentoo.org
mailto:hasuf...@gentoo.org wrote:

 The quality problem is that we have too many developers. If you make
 community contributions easier, sane and more reliable (due to code
 review) then you solve several problems at once, because you need _less_
 developers. Are you aware that we could potentially pull in hundreds
 of contributors who chose to work on their personal overlay instead of
 the gentoo tree? Are you aware that there are a lot of those people?

Yes and no.

I'll agree that with a review workflow we might only need one reviewer
for every 10 contributors, or something like that.  If we have 100
active devs today, in theory we could instead turn 20 of them into
reviewers, and now we can support 2000 contributors.

There are some big assumptions with this kind of argument, though:
1.  We might find that we don't even have 20 devs interested in doing
a substantial amount of review.
2.  The main repository is very diverse.  If 50% of our packages have
only one person interested in maintaining them, then they get dropped
since reviewers will ignore their contributions.  Or, they'll just
rubber-stamp them which is adding valueless work.

So, a review system could make manpower either more of an issue or
less of one.  I suspect that trying to force it would basically end up
putting the entire distro on hold until most of the current devs quit,
and a new crop signs up who is interested in using the new workflow,
and then they're starting with zero experience.

I think a review model is best implemented by individual project
teams.  They could use it to track changes in an overlay or branch in
the main tree, and then move those into the main tree using whatever
quality system seems best.  The team can figure out what is working
best for it, and if over time a large number of devs feel that it is a
good way to work we could then talk about doing it with the main tree.
I still suspect we'll end up having problems with the 70% of packages
that don't fall into a project though.


I think everybody is getting a bit heated over CI/Quality/automation, 
when clearly there is no good reason to get so heated. Let me explain. 
YES industry, commercial, research, FOSS and everybody is moving to some 
sort of paradigm where as much automation of code examination is 
streamline. Surely these efforts are a work in progress and as such will 
evolved over time. It does not mean the existing, wonderfully manual 
processes are being replaced, it just means that the simple, routine, 
(scriptable if you like) filters are automated. In fact those manual 
processes still need to occur, because the next generation of coders 
have to learn how things work in order to extent the paradigm.



Resources. Surely the major arches are at an advantage. But the current 
cluster offerings are soon going to render very powerful processing so 
even gargantuan, single threaded codes can be automated for CI, quality, 
security etc etc. Both a cross-compile and native compile strategy needs 
to experimented with. Those smaller arches will follow the bigger 
arches; so in that we should just let x86 and other such arches blaze 
the path for gentoo (in a non binding manner) while the various other 
arches (with more humble resources) figure out how to build clusters on 
these other arches. Lots of folks are clustering smalller arches to get 
big tasks back into the realm of viability.



The big benefit for those other (more constrained arches) is that folks 
that build embedded products on those arches will be very, very 
interested in work on how to build a cluster, specific to those (sub) 
arches for CI/quality/security. In fact mesos-distcc does not limit the 
various arch types. So I would think all arches would get on-board and 
just follow this paradigm in an easy, non-stressful manner. But the 
Gentoo leadership does have a responsibility to include those other 
arches in just how this occurs, during some extended transition period, 
so that these other arch's still fell like they are part of this 
extended gentoo family. Loosing those arches would be a horrible damage 
to gentoo's reputation, imho. That is our diversity in arches is 
something gentoo is widely know for and sets us apart, imho.




hth,
James





Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread Rich Freeman
On Thu, Jul 9, 2015 at 11:45 AM, Alec Warner anta...@gentoo.org wrote:

 On Thu, Jul 9, 2015 at 4:47 AM, Rich Freeman ri...@gentoo.org wrote:

 Lots of stuff except for the part below.

 So basically Gentoo Sunrise? :)

 In any case, to some extent the review workflow already exists on the
 proxy maintainer project.  There is no limit to the number of packages
 they can maintain, or the number of reviewers they can have.

Answered and asked.  :)

-- 
Rich



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread Ciaran McCreesh
On Thu, 09 Jul 2015 00:11:34 -0500
Steev Klimaszewski st...@gentoo.org wrote:
 The only fear I have about CI, is that we turn into every other distro
 out there where it builds, ship it!

This would be an improvement over the current situation.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread hasufell
On 07/09/2015 01:47 PM, Rich Freeman wrote:
 On Thu, Jul 9, 2015 at 5:31 AM, hasufell hasuf...@gentoo.org wrote:

 The quality problem is that we have too many developers. If you make
 community contributions easier, sane and more reliable (due to code
 review) then you solve several problems at once, because you need _less_
 developers. Are you aware that we could potentially pull in hundreds
 of contributors who chose to work on their personal overlay instead of
 the gentoo tree? Are you aware that there are a lot of those people?
 
 Yes and no.
 
 I'll agree that with a review workflow we might only need one reviewer
 for every 10 contributors, or something like that.  If we have 100
 active devs today, in theory we could instead turn 20 of them into
 reviewers, and now we can support 2000 contributors.
 
 There are some big assumptions with this kind of argument, though:
 1.  We might find that we don't even have 20 devs interested in doing
 a substantial amount of review.
 2.  The main repository is very diverse.  If 50% of our packages have
 only one person interested in maintaining them, then they get dropped
 since reviewers will ignore their contributions.  Or, they'll just
 rubber-stamp them which is adding valueless work.
 
 So, a review system could make manpower either more of an issue or
 less of one.  I suspect that trying to force it would basically end up
 putting the entire distro on hold until most of the current devs quit,
 and a new crop signs up who is interested in using the new workflow,
 and then they're starting with zero experience.
 
 I think a review model is best implemented by individual project
 teams.  They could use it to track changes in an overlay or branch in
 the main tree, and then move those into the main tree using whatever
 quality system seems best.  The team can figure out what is working
 best for it, and if over time a large number of devs feel that it is a
 good way to work we could then talk about doing it with the main tree.
 I still suspect we'll end up having problems with the 70% of packages
 that don't fall into a project though.
 

I'm not sure if you followed my argumentation. I basically said that it
is unrealistic to enforce a review-only workflow and that it should/can
start within gentoo-internal projects. You are just repeating what I
already said.

My point was that I am not mixing up different issues as Andrew claimed,
because a review workflow can be seen in a different context.
And then, the repeated argument of not enough manpower for review
workflow doesn't make a lot of sense. The problem is the mindest/culture.

However, it makes sense to provide review workflow tools. And they have
been demanded quite a few times now I think, even from vapier afair.



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread Rich Freeman
On Thu, Jul 9, 2015 at 2:56 PM, hasufell hasuf...@gentoo.org wrote:

 I'm not sure if you followed my argumentation. I basically said that it
 is unrealistic to enforce a review-only workflow and that it should/can
 start within gentoo-internal projects. You are just repeating what I
 already said.

 My point was that I am not mixing up different issues as Andrew claimed,
 because a review workflow can be seen in a different context.
 And then, the repeated argument of not enough manpower for review
 workflow doesn't make a lot of sense. The problem is the mindest/culture.


To an extent I agree with you.  However, a workflow that works great
for a tight-knit group of 6 devs working on one set of packages that
were designed by upstream to work together might not work as well for
a set of 50 devs working on 300 packages that are completely
independent.  We should start with small teams, but I think it remains
to be seen if it ever grows to encompass most of the tree.

That said, it might grow to cover the core system components and that
might be good enough for most purposes.  Users might not notice if one
of the 15 reversi implementations in the tree breaks, but would prefer
that gcc, glibc, and qt be of a higher quality.

-- 
Rich



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread Andrew Savchenko
On Mon, 06 Jul 2015 19:20:14 +0200 hasufell wrote:
 On 07/05/2015 08:05 AM, Andrew Savchenko wrote:
  On Sat, 4 Jul 2015 20:20:23 +0200 Peter Stuge wrote:
  It's important that the review flow is well-understood and efficient.
  
  This is impossible in our case due to the lack of manpower.
  We already have a lot of bugs, patches, stabilization requests
  hanging over there for months and even years. Stabilization request
  will require at least two developers to participate in each commit.
  This will double manpower required at least. Such approach can kill
  the whole project.
  
 
 People misinterpret manpower. If we successfully switch to a
 code-review approach, then we will need _less_ manpower in the sense of
 actual gentoo developers.

You're mixing different issues here. Code review process for
contributors (outside of development team) will indeed save time
and manpower. But code review for each developer commit will kill
time and effort undoubtedly, while net quality will have little to
negligible improvement.

Best regards,
Andrew Savchenko


pgp40PFnATWYC.pgp
Description: PGP signature


Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread Alec Warner
On Wed, Jul 8, 2015 at 10:11 PM, Steev Klimaszewski st...@gentoo.org
wrote:

 On Wed, 2015-07-08 at 21:11 +0200, Tobias Klausmann wrote:
  Hi!
 
  On Wed, 08 Jul 2015, Ciaran McCreesh wrote:
   On Wed, 8 Jul 2015 20:07:34 +0200
   Tobias Klausmann klaus...@gentoo.org wrote:
In essence, assuming we can just scale to make CI work is
ignoring the matter of the slower archs. And I suspect the it
works on amd64, fuck everyone else is not something we want to
pick as a motto.
  
   It works on amd64 on a clean build system is a heck of a lot better
   than it may or may not work on one developer's heavily modified
   box... The point of testing is not to catch all problems. It's just
   there to catch some simple screwups, cheaply.
 
  Agreed. Still, in my experience, problems that are not seen on
  amd64 are the vast majority of timesinks. Usually, by the time
  non-amd64 shows up on a non-security bug, the Basic Bullshit™ has
  been sorted. And even if it isn't: Arches are usually quick to
  point it out and the rest of arches move on to the next bug. The
  truly arch-dependent bugs are what wastes my time:
 
  For example:
 
  - dependencies not being keyworded for arch or ~arch but only
amd64/~amd64
  - dependencies not even building on ~arch, but on ~amd64
  - package assuming availability of gcc/ghc/Python-X.Y when
arch/~arch only has something for Y or X
  - my favourite: assuming udev is at version X for arch/~arch when
it has been broken there for roughly twelve kernel versions due
to udev/systemd upstream not caring. The information is one
equery-y command line away, but no, let's file that bug.
 

 That's a failing of the arch team or the committer then - or whomever
 keyworded the package without testing the dependencies.  That's why the
 keywording bugs happen when dependencies change - and yes, occasionally
 a dependency loses it's keywords and that may be where the issue comes
 from, I'm not sure.  This used to be watched very closely, but I believe
 the tool being used broke at some point.

 What exactly do you mean, it's just one command line away but let's file
 the bug - yes a bug SHOULD be filed, so that the people know of the
 issue so it doesn't get repeated, over and over.


  Having every arch team chase the deps for every package is very,
  very frustrating, since it is so trivial a problem. We need a
  tool that answers the question: I want to mov cat/pkg-1.2.3 to
  stable for arches a, b and c, what do I need? for _every
  package_. Some groups seem to have tooling for this, but it is
  far from easily (obviously?) available, so every team gets to
  re-discover dependency hell. Ruby is especially bad since
  FEATURES=test make the depgraph explode (and sometimes circular).
 
  Regards,
  Tobias
 
 

 The only fear I have about CI, is that we turn into every other distro
 out there where it builds, ship it! - I know I prefer to have our arm
 team actually test the packages more than just doing FEATURES=test
 (assuming the tests aren't broken on arm) emerge, although I know there
 are some people on the team who feel that it's too much to actually test
 all of the arm boards. For a long time, certain binary distros were
 compiling anything and everything, and if it built for other arches it
 was available.  Even if there was no way it would possibly work on that
 arch.


So don't keyword or stabilize packages you don't test thoroughly. I see how
CI *could* be used to do bad things; but I don't see anyone proposing it be
used in that way; nor do you have to accept such suggestions (its your
arch, after all.)

-A


 Regards,
 Steev





Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread Rich Freeman
On Thu, Jul 9, 2015 at 5:31 AM, hasufell hasuf...@gentoo.org wrote:

 The quality problem is that we have too many developers. If you make
 community contributions easier, sane and more reliable (due to code
 review) then you solve several problems at once, because you need _less_
 developers. Are you aware that we could potentially pull in hundreds
 of contributors who chose to work on their personal overlay instead of
 the gentoo tree? Are you aware that there are a lot of those people?

Yes and no.

I'll agree that with a review workflow we might only need one reviewer
for every 10 contributors, or something like that.  If we have 100
active devs today, in theory we could instead turn 20 of them into
reviewers, and now we can support 2000 contributors.

There are some big assumptions with this kind of argument, though:
1.  We might find that we don't even have 20 devs interested in doing
a substantial amount of review.
2.  The main repository is very diverse.  If 50% of our packages have
only one person interested in maintaining them, then they get dropped
since reviewers will ignore their contributions.  Or, they'll just
rubber-stamp them which is adding valueless work.

So, a review system could make manpower either more of an issue or
less of one.  I suspect that trying to force it would basically end up
putting the entire distro on hold until most of the current devs quit,
and a new crop signs up who is interested in using the new workflow,
and then they're starting with zero experience.

I think a review model is best implemented by individual project
teams.  They could use it to track changes in an overlay or branch in
the main tree, and then move those into the main tree using whatever
quality system seems best.  The team can figure out what is working
best for it, and if over time a large number of devs feel that it is a
good way to work we could then talk about doing it with the main tree.
I still suspect we'll end up having problems with the 70% of packages
that don't fall into a project though.

-- 
Rich



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread Peter Stuge
Rich Freeman wrote:
 I suspect that trying to force it would basically end up putting
 the entire distro on hold until most of the current devs quit,

I think you're right. I also think those developers should quit right
here and now. I don't think they will.


//Peter



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread hasufell
On 07/09/2015 09:19 AM, Andrew Savchenko wrote:
 On Mon, 06 Jul 2015 19:20:14 +0200 hasufell wrote:
 On 07/05/2015 08:05 AM, Andrew Savchenko wrote:
 On Sat, 4 Jul 2015 20:20:23 +0200 Peter Stuge wrote:
 It's important that the review flow is well-understood and efficient.

 This is impossible in our case due to the lack of manpower.
 We already have a lot of bugs, patches, stabilization requests
 hanging over there for months and even years. Stabilization request
 will require at least two developers to participate in each commit.
 This will double manpower required at least. Such approach can kill
 the whole project.


 People misinterpret manpower. If we successfully switch to a
 code-review approach, then we will need _less_ manpower in the sense of
 actual gentoo developers.
 
 You're mixing different issues here. Code review process for
 contributors (outside of development team) will indeed save time
 and manpower. But code review for each developer commit will kill
 time and effort undoubtedly, while net quality will have little to
 negligible improvement.
 

No, I am not mixing issues here.

The quality problem is that we have too many developers. If you make
community contributions easier, sane and more reliable (due to code
review) then you solve several problems at once, because you need _less_
developers. Are you aware that we could potentially pull in hundreds
of contributors who chose to work on their personal overlay instead of
the gentoo tree? Are you aware that there are a lot of those people?

Yes, it will slow down random commits. And sometimes that is what you
need to keep good quality up.

But as I said, this is currently not realistic, but not because it
cannot be done. It can. And there are lots of projects that do. And I
don't mean small projects.

Most of the confusion comes from the fact that some gentoo devs have
been doing this broken workflow for so long that they can barely imagine
a workflow that is not broken. The other problems comes from the fact
that a huge potential contributor base has withdrawn from contributing
to the tree and now sticks to overlays. Those are our main problems, not
tools.

And because of that, a workflow transition will have to be executed
step-wise.



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-09 Thread Rich Freeman
On Thu, Jul 9, 2015 at 8:25 AM, Peter Stuge pe...@stuge.se wrote:
 Rich Freeman wrote:
 I suspect that trying to force it would basically end up putting
 the entire distro on hold until most of the current devs quit,

 I think you're right. I also think those developers should quit right
 here and now. I don't think they will.


The thing is that if a bunch of devs want to create a review-only
Gentoo fork they can just do it.  The result would be about the same.
Trying to force it on Gentoo would just result in most of the Gentoo
devs changing the name and proceeding basically as it is, and Gentoo
would just become another XFree86.

The way you change an FOSS project is to influence the current
contributions, or to make contributions of your own.  Trying to order
people around doesn't really change anything in the end.

Hence my suggestion to try something like this out in a project where
there is interest.  Build from success, and win people over.  In the
end the hard power of a body like the Council is just the power to
halt progress, not create it.  That power should be focused on
situations where the progress is self-destructive.  Obviously a body
like the Council also has soft powers like leadership/etc, but that
really isn't enough to just order change by fiat.  Plus, we're all
elected for our ability to generally represent the will of the
developer community, so you shouldn't be too surprised when we don't
try to push policies that most devs disagree with.

In any case, to some extent the review workflow already exists on the
proxy maintainer project.  There is no limit to the number of packages
they can maintain, or the number of reviewers they can have.

-- 
Rich



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-08 Thread Ciaran McCreesh
On Wed, 8 Jul 2015 20:07:34 +0200
Tobias Klausmann klaus...@gentoo.org wrote:
 In essence, assuming we can just scale to make CI work is
 ignoring the matter of the slower archs. And I suspect the it
 works on amd64, fuck everyone else is not something we want to
 pick as a motto.

It works on amd64 on a clean build system is a heck of a lot better
than it may or may not work on one developer's heavily modified
box... The point of testing is not to catch all problems. It's just
there to catch some simple screwups, cheaply.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-08 Thread Tobias Klausmann
Hi! 

This got a bit rambly, sorry 'bout that.

tl;dr: Continuous Integration is a neat idea if you have the
Hardware. The off-mainstream arch teams don't.


On Tue, 07 Jul 2015, Ciaran McCreesh wrote:
 On Tue, 07 Jul 2015 08:04:47 +0800
 Patrick Lauer patr...@gentoo.org wrote:
  I'll laugh about it next time I update OpenFOAM:
  
  Fri Jun 27 12:52:19 2014  sci-libs/openfoam-2.3.0
 merge time: 1 hour, 5 minutes and 8 seconds.
  or
  
  Sun Jun 29 20:36:09 2014  sci-mathematics/nusmv-2.5.4
 merge time: 2 hours, 58 minutes.
 
 What's the problem? Better the build bot wastes that time once than a
 whole bunch of users do.

Just be aware that that Just Won't Happen for the off-mainstream
archs. We just don't have the hardware to keep up with something
like that. Unless you want to employ several people reordering
the CI checks so a test for glibc doesn't make mutt, util-linux,
iptables and 55 other packages wait for hours.

'Cause invariably, if the CI system is delayed beyond the
expectation for the package itself, it will be ignored.

It would also mean that the other purposes the devboxes are used
for will be delayed non-trivially. In the case of Alpha, that
would for example be upstream gcc testing, and stage3 building. I
am sure arches like PPC64, IA64 and so on have the same problem.

  That's without dependencies, so from a clean minimal starting point
  (once you figure out what useflags are needed) you're looking at 12+
  hours of walltime to get that checked. (On a reasonably modern Xeon
  with SSDs ...)
 
 Uh, no, because you use binary packages for the dependencies, and you
 use a package mangler that can figure out the use flags for you.

Even with binary package usage (which is not as efficient as it
could be due to USE flags), testing Qt4 (as in compile it and run
the test suite, which is the bare minimum) took me close to 10
hours the other day. Not including fixing fetch problems halfway
through. During this time, very little else got done on the one
devbox we have.

  So thanks for your intentional comedy, but let's be serious here.
 
 Exherbo's been doing all this for years, and it works rather well. The
 only comedy is that Gentoo doesn't even realise this is trivial to do
 nowadays.

Exherbo is not supporting as many off-mainstream architectures as
we do, so the comparison is flawed at best. Yes, sure, let's run
CI for amd64 and maybe x86 and whoever else has the hardware. But
it will not speed up stabilization bugs regarding the long tail.
It might even lead to people completely ignoring the slow
architectures and the rift between amd64 and the rest becoming
yet wider.

Don't get me wrong, abandoning Alpha and other architectures is
an option, but remember that for some of these, we are the last
distro that still provides install media and a decent (as in:
current and complete-ish) set of packages. The very fact that we
are able to let amd64 and the rest drift a bit is the reason why
we can still pull it off.

I have considered dropping Alpha entirely (for myself, that is;
I'd resign as the arch team lead and stop working on it; the
devbox, which is soft-donated through me, would stay available).
But I would rather not, for various reasons, none of which are
technical. Then again, I'm not a Gentoo dev because it makes
sense rationally (it does, but it's not my reason).

In essence, assuming we can just scale to make CI work is
ignoring the matter of the slower archs. And I suspect the it
works on amd64, fuck everyone else is not something we want to
pick as a motto.

Regards,
Tobias`



-- 
Sent from aboard the Culture ship
GSV (System Class) Empiricist



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-08 Thread hasufell
On 07/08/2015 09:14 PM, Tobias Klausmann wrote:
 
 I explicitly point out that amd64
 is welcome to do whatever they want regarding CI, but that I
 suspect that the rift between it and the lesser architectures
 will become wider.
 

That is technically correct, but it's not really an argument. The
quality of the lesser arches will be the same as it was before, it will
not get worse. The quality of the different arches has _never_ been
consistent. Not even between x86 and amd64. It always depends on
manpower, resources and how much it is used in the community. I feel we
are drifting a bit offtopic.



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-08 Thread Steev Klimaszewski
On Wed, 2015-07-08 at 21:11 +0200, Tobias Klausmann wrote:
 Hi! 
 
 On Wed, 08 Jul 2015, Ciaran McCreesh wrote:
  On Wed, 8 Jul 2015 20:07:34 +0200
  Tobias Klausmann klaus...@gentoo.org wrote:
   In essence, assuming we can just scale to make CI work is
   ignoring the matter of the slower archs. And I suspect the it
   works on amd64, fuck everyone else is not something we want to
   pick as a motto.
  
  It works on amd64 on a clean build system is a heck of a lot better
  than it may or may not work on one developer's heavily modified
  box... The point of testing is not to catch all problems. It's just
  there to catch some simple screwups, cheaply.
 
 Agreed. Still, in my experience, problems that are not seen on
 amd64 are the vast majority of timesinks. Usually, by the time
 non-amd64 shows up on a non-security bug, the Basic Bullshit™ has
 been sorted. And even if it isn't: Arches are usually quick to
 point it out and the rest of arches move on to the next bug. The
 truly arch-dependent bugs are what wastes my time:
 
 For example:
 
 - dependencies not being keyworded for arch or ~arch but only
   amd64/~amd64
 - dependencies not even building on ~arch, but on ~amd64
 - package assuming availability of gcc/ghc/Python-X.Y when
   arch/~arch only has something for Y or X
 - my favourite: assuming udev is at version X for arch/~arch when
   it has been broken there for roughly twelve kernel versions due
   to udev/systemd upstream not caring. The information is one
   equery-y command line away, but no, let's file that bug.
 

That's a failing of the arch team or the committer then - or whomever
keyworded the package without testing the dependencies.  That's why the
keywording bugs happen when dependencies change - and yes, occasionally
a dependency loses it's keywords and that may be where the issue comes
from, I'm not sure.  This used to be watched very closely, but I believe
the tool being used broke at some point.

What exactly do you mean, it's just one command line away but let's file
the bug - yes a bug SHOULD be filed, so that the people know of the
issue so it doesn't get repeated, over and over.  


 Having every arch team chase the deps for every package is very,
 very frustrating, since it is so trivial a problem. We need a
 tool that answers the question: I want to mov cat/pkg-1.2.3 to
 stable for arches a, b and c, what do I need? for _every
 package_. Some groups seem to have tooling for this, but it is
 far from easily (obviously?) available, so every team gets to
 re-discover dependency hell. Ruby is especially bad since
 FEATURES=test make the depgraph explode (and sometimes circular).
 
 Regards,
 Tobias
 
 

The only fear I have about CI, is that we turn into every other distro
out there where it builds, ship it! - I know I prefer to have our arm
team actually test the packages more than just doing FEATURES=test
(assuming the tests aren't broken on arm) emerge, although I know there
are some people on the team who feel that it's too much to actually test
all of the arm boards. For a long time, certain binary distros were
compiling anything and everything, and if it built for other arches it
was available.  Even if there was no way it would possibly work on that
arch.  

Regards,
Steev




Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-08 Thread Alec Warner
On Wed, Jul 8, 2015 at 11:07 AM, Tobias Klausmann klaus...@gentoo.org
wrote:

 Hi!

 This got a bit rambly, sorry 'bout that.

 tl;dr: Continuous Integration is a neat idea if you have the
 Hardware. The off-mainstream arch teams don't.


Clearly because we cannot be perfect, we should not even try!
Realistically aside from the major arches none of the other arches have
large userbases. I think quality for the sake of quality is pretty silly;
but if we can improve the quality of arches where hardware is readily
available we should do so (regardless of minority architecture objections.)

-A




 On Tue, 07 Jul 2015, Ciaran McCreesh wrote:
  On Tue, 07 Jul 2015 08:04:47 +0800
  Patrick Lauer patr...@gentoo.org wrote:
   I'll laugh about it next time I update OpenFOAM:
  
   Fri Jun 27 12:52:19 2014  sci-libs/openfoam-2.3.0
  merge time: 1 hour, 5 minutes and 8 seconds.
   or
  
   Sun Jun 29 20:36:09 2014  sci-mathematics/nusmv-2.5.4
  merge time: 2 hours, 58 minutes.
 
  What's the problem? Better the build bot wastes that time once than a
  whole bunch of users do.

 Just be aware that that Just Won't Happen for the off-mainstream
 archs. We just don't have the hardware to keep up with something
 like that. Unless you want to employ several people reordering
 the CI checks so a test for glibc doesn't make mutt, util-linux,
 iptables and 55 other packages wait for hours.

 'Cause invariably, if the CI system is delayed beyond the
 expectation for the package itself, it will be ignored.

 It would also mean that the other purposes the devboxes are used
 for will be delayed non-trivially. In the case of Alpha, that
 would for example be upstream gcc testing, and stage3 building. I
 am sure arches like PPC64, IA64 and so on have the same problem.

   That's without dependencies, so from a clean minimal starting point
   (once you figure out what useflags are needed) you're looking at 12+
   hours of walltime to get that checked. (On a reasonably modern Xeon
   with SSDs ...)
 
  Uh, no, because you use binary packages for the dependencies, and you
  use a package mangler that can figure out the use flags for you.

 Even with binary package usage (which is not as efficient as it
 could be due to USE flags), testing Qt4 (as in compile it and run
 the test suite, which is the bare minimum) took me close to 10
 hours the other day. Not including fixing fetch problems halfway
 through. During this time, very little else got done on the one
 devbox we have.

   So thanks for your intentional comedy, but let's be serious here.
 
  Exherbo's been doing all this for years, and it works rather well. The
  only comedy is that Gentoo doesn't even realise this is trivial to do
  nowadays.

 Exherbo is not supporting as many off-mainstream architectures as
 we do, so the comparison is flawed at best. Yes, sure, let's run
 CI for amd64 and maybe x86 and whoever else has the hardware. But
 it will not speed up stabilization bugs regarding the long tail.
 It might even lead to people completely ignoring the slow
 architectures and the rift between amd64 and the rest becoming
 yet wider.

 Don't get me wrong, abandoning Alpha and other architectures is
 an option, but remember that for some of these, we are the last
 distro that still provides install media and a decent (as in:
 current and complete-ish) set of packages. The very fact that we
 are able to let amd64 and the rest drift a bit is the reason why
 we can still pull it off.

 I have considered dropping Alpha entirely (for myself, that is;
 I'd resign as the arch team lead and stop working on it; the
 devbox, which is soft-donated through me, would stay available).
 But I would rather not, for various reasons, none of which are
 technical. Then again, I'm not a Gentoo dev because it makes
 sense rationally (it does, but it's not my reason).

 In essence, assuming we can just scale to make CI work is
 ignoring the matter of the slower archs. And I suspect the it
 works on amd64, fuck everyone else is not something we want to
 pick as a motto.

 Regards,
 Tobias`



 --
 Sent from aboard the Culture ship
 GSV (System Class) Empiricist




Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-08 Thread Tobias Klausmann
Hi! 

On Wed, 08 Jul 2015, Ciaran McCreesh wrote:
 On Wed, 8 Jul 2015 20:07:34 +0200
 Tobias Klausmann klaus...@gentoo.org wrote:
  In essence, assuming we can just scale to make CI work is
  ignoring the matter of the slower archs. And I suspect the it
  works on amd64, fuck everyone else is not something we want to
  pick as a motto.
 
 It works on amd64 on a clean build system is a heck of a lot better
 than it may or may not work on one developer's heavily modified
 box... The point of testing is not to catch all problems. It's just
 there to catch some simple screwups, cheaply.

Agreed. Still, in my experience, problems that are not seen on
amd64 are the vast majority of timesinks. Usually, by the time
non-amd64 shows up on a non-security bug, the Basic Bullshit™ has
been sorted. And even if it isn't: Arches are usually quick to
point it out and the rest of arches move on to the next bug. The
truly arch-dependent bugs are what wastes my time:

For example:

- dependencies not being keyworded for arch or ~arch but only
  amd64/~amd64
- dependencies not even building on ~arch, but on ~amd64
- package assuming availability of gcc/ghc/Python-X.Y when
  arch/~arch only has something for Y or X
- my favourite: assuming udev is at version X for arch/~arch when
  it has been broken there for roughly twelve kernel versions due
  to udev/systemd upstream not caring. The information is one
  equery-y command line away, but no, let's file that bug.

Having every arch team chase the deps for every package is very,
very frustrating, since it is so trivial a problem. We need a
tool that answers the question: I want to mov cat/pkg-1.2.3 to
stable for arches a, b and c, what do I need? for _every
package_. Some groups seem to have tooling for this, but it is
far from easily (obviously?) available, so every team gets to
re-discover dependency hell. Ruby is especially bad since
FEATURES=test make the depgraph explode (and sometimes circular).

Regards,
Tobias


-- 
Sent from aboard the Culture ship
GSV (System Class) Empiricist



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-08 Thread Tobias Klausmann
Hi! 

On Wed, 08 Jul 2015, Alec Warner wrote:

 On Wed, Jul 8, 2015 at 11:07 AM, Tobias Klausmann klaus...@gentoo.org
 wrote:
 
  tl;dr: Continuous Integration is a neat idea if you have the
  Hardware. The off-mainstream arch teams don't.
 
 Clearly because we cannot be perfect, we should not even try!
 Realistically aside from the major arches none of the other arches have
 large userbases. I think quality for the sake of quality is pretty silly;
 but if we can improve the quality of arches where hardware is readily
 available we should do so (regardless of minority architecture objections.)

Read what I wrote further down. I explicitly point out that amd64
is welcome to do whatever they want regarding CI, but that I
suspect that the rift between it and the lesser architectures
will become wider.

Regards,
Tobias

-- 
Sent from aboard the Culture ship
GSV (System Class) Empiricist



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-07 Thread Andrew Savchenko
Hi,

On Tue, 7 Jul 2015 16:16:02 +1200 Kent Fredric wrote:
 It would be really nice if we could define some sort of variable in
 the ebuild itself with a relative cost metric for the ebuilds install
 time. It wouldn't need to be precise, just ballpark figures so the
 testing boxes can go Ok, a full build of this will block testing
 everything else for XUNIT time, is this worth it?.

there is no need to increase overhead for developers for a stuff
that can be easily generated: just fill a raw build time (without
ccache/distcc) during test runs themselves.

Best regards,
Andrew Savchenko


pgpf6H0T2HXJY.pgp
Description: PGP signature


Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-07 Thread Ciaran McCreesh
On Tue, 07 Jul 2015 08:04:47 +0800
Patrick Lauer patr...@gentoo.org wrote:
 On 07/07/15 01:27, Ciaran McCreesh wrote:
  On Mon, 06 Jul 2015 13:04:35 -0400
  Michael Orlitzky m...@gentoo.org wrote:
  I would love my commits to be reviewed, but I usually don't feel
  like reviewing anyone else's. That's... not uncommon.
  
  Well, you could at least get your commits reviewed by an automated
  build system that starts from a clean stage each time. That's
  better than nothing.
  
 I'll laugh about it next time I update OpenFOAM:
 
 Fri Jun 27 12:52:19 2014  sci-libs/openfoam-2.3.0
merge time: 1 hour, 5 minutes and 8 seconds.
 or
 
 Sun Jun 29 20:36:09 2014  sci-mathematics/nusmv-2.5.4
merge time: 2 hours, 58 minutes.

What's the problem? Better the build bot wastes that time once than a
whole bunch of users do.

 That's without dependencies, so from a clean minimal starting point
 (once you figure out what useflags are needed) you're looking at 12+
 hours of walltime to get that checked. (On a reasonably modern Xeon
 with SSDs ...)

Uh, no, because you use binary packages for the dependencies, and you
use a package mangler that can figure out the use flags for you.

 So thanks for your intentional comedy, but let's be serious here.

Exherbo's been doing all this for years, and it works rather well. The
only comedy is that Gentoo doesn't even realise this is trivial to do
nowadays.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-06 Thread hasufell
On 07/05/2015 08:05 AM, Andrew Savchenko wrote:
 On Sat, 4 Jul 2015 20:20:23 +0200 Peter Stuge wrote:
 It's important that the review flow is well-understood and efficient.
 
 This is impossible in our case due to the lack of manpower.
 We already have a lot of bugs, patches, stabilization requests
 hanging over there for months and even years. Stabilization request
 will require at least two developers to participate in each commit.
 This will double manpower required at least. Such approach can kill
 the whole project.
 

People misinterpret manpower. If we successfully switch to a
code-review approach, then we will need _less_ manpower in the sense of
actual gentoo developers.

However, this does not and cannot happen over night since it requires a
shift of thinking and a change of culture, involving the whole community.

But if we just want to add more independent committers to the core
gentoo tree, then we are definitely making quality worse.

I'm not particularly sure that an alternative review-based workflow can
work here, given that our workflow has been broken for quite a few
years. Such things become a strong habit and may leave some of our
developers in confusion.

But it could start (and already has, afaik) with project-internal
requirements (e.g. kde project demanding reviews). When the different
projects increase workflow strictness, it will increase overall
strictness as well.

 Code review is good at a limited scope, e.g. for non-developers
 where we have review anyway.
 

This is not enough to maintain high quality. I've seen some ebuilds in
user overlays which have higher quality than their gx86 counterpart.


However, that said... I don't think it currently makes sense to enforce
a strict global review workflow. However, we should encourage
gentoo-internal projects to become more strict (and e.g. only have one
or two pushers).



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-06 Thread Ciaran McCreesh
On Mon, 06 Jul 2015 07:25:03 +0800
Patrick Lauer patr...@gentoo.org wrote:
 On Sunday 05 July 2015 13:46:10 William Hubbs wrote:
  On Sun, Jul 05, 2015 at 09:05:59AM +0300, Andrew Savchenko wrote:
   On Sat, 4 Jul 2015 20:20:23 +0200 Peter Stuge wrote:
It's important that the review flow is well-understood and
efficient.
   
   This is impossible in our case due to the lack of manpower.
   We already have a lot of bugs, patches, stabilization requests
   hanging over there for months and even years. Stabilization
   request will require at least two developers to participate in
   each commit. This will double manpower required at least. Such
   approach can kill the whole project.
  
  Agreed. Forcing all commits from developers to go through a code
  review from another developer before they hit the tree would
  potentially kill the entire project. I would strongly veto
  something like this, because we flat out don't have the manpower to
  keep up with it.
  
 ... or you have some pranksters just ok-ing all commits during their
 morning coffee, independent of content, which would keep things
 working at the cost of quality ...

Spoken like someone who's never used a code review system. Pranksters
can no more ok all commits than they can commit whatever they
like, since you treat giving +2 permissions like you treat giving push
access.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-06 Thread Ciaran McCreesh
On Mon, 06 Jul 2015 19:34:05 +0200
hasufell hasuf...@gentoo.org wrote:
 On 07/06/2015 07:27 PM, Ciaran McCreesh wrote:
  On Mon, 06 Jul 2015 13:04:35 -0400
  Michael Orlitzky m...@gentoo.org wrote:
  I would love my commits to be reviewed, but I usually don't feel
  like reviewing anyone else's. That's... not uncommon.
  
  Well, you could at least get your commits reviewed by an automated
  build system that starts from a clean stage each time. That's
  better than nothing.
 
 That makes sense. But it will probably have to run on a gentoo infra
 server. Can you see the problem?

I dunno, maybe if you ask the Exherbo people nicely they might share
their setup.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-06 Thread hasufell
On 07/06/2015 07:27 PM, Ciaran McCreesh wrote:
 On Mon, 06 Jul 2015 13:04:35 -0400
 Michael Orlitzky m...@gentoo.org wrote:
 I would love my commits to be reviewed, but I usually don't feel like
 reviewing anyone else's. That's... not uncommon.
 
 Well, you could at least get your commits reviewed by an automated build
 system that starts from a clean stage each time. That's better than
 nothing.
 

That makes sense. But it will probably have to run on a gentoo infra
server. Can you see the problem?



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-06 Thread Alec Warner
On Sat, Jul 4, 2015 at 11:05 PM, Andrew Savchenko birc...@gentoo.org
wrote:

 On Sat, 4 Jul 2015 20:20:23 +0200 Peter Stuge wrote:
  It's important that the review flow is well-understood and efficient.

 This is impossible in our case due to the lack of manpower.
 We already have a lot of bugs, patches, stabilization requests
 hanging over there for months and even years. Stabilization request
 will require at least two developers to participate in each commit.
 This will double manpower required at least. Such approach can kill
 the whole project.

Code review is good at a limited scope, e.g. for non-developers
 where we have review anyway.


Manpower issues aside, my perception of the project is that speed is valued
over quality; and this has been the case for many many years. Its difficult
to make a large change like all commits require review, particularly for
long-time contributors who are expecting to move quickly.

I realize that a subset of the community wants quality and code review is
certainly one way to improve quality. I'd be curious how many subprojects
use review (I know infra did it informally, particularly when making
changes to parts of the infrastructure that we were unfamiliar with; for
learning purposes.)

I'd also be curious what adoption of a code review system would be like if
it was not required (but was available, and perhaps required for specific
subprojects that adopt it.)

-A


 And as was already told in this thread, the best is the enemy of
 the good. In no way we should delay git migration due to possible
 git review.

 Best regards,
 Andrew Savchenko



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-06 Thread Peter Stuge
Alec Warner wrote:
 Its difficult to make a large change like all commits require review,
 particularly for long-time contributors who are expecting to move quickly.

I think it's a character flaw (maybe hubris due to lack of experience
and/or ignorance?) to lack the humility to say that I would prefer my
commits to be reviewed by peers.

It is obviously easier to stick my head in the sand, but then I
should probably keep my crap in an overlay. (I do, and am happy!)

If I were committing to gentoo I would want help from my peers to
ensure that what I commit is not just done well but also done right.


 I'd be curious how many subprojects use review

I suspect that it's rare. Most developers are in my experience unable
to work with review.


 learning purposes.

Another significant benefit of review, besides the obvious quality benefit.


 I'd also be curious what adoption of a code review system would be
 like if it was not required (but was available, and perhaps
 required for specific subprojects that adopt it.)

I think this is a lovely idea! I'd really like that setup!


//Peter



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-06 Thread Michael Orlitzky
On 07/06/2015 12:42 PM, Peter Stuge wrote:
 Alec Warner wrote:
 Its difficult to make a large change like all commits require review,
 particularly for long-time contributors who are expecting to move quickly.
 
 I think it's a character flaw (maybe hubris due to lack of experience
 and/or ignorance?) to lack the humility to say that I would prefer my
 commits to be reviewed by peers.
 

I would love my commits to be reviewed, but I usually don't feel like
reviewing anyone else's. That's... not uncommon.

So what it comes down to is that I would rather have my work reviewed by
no one and get committed rather than be reviewed by no one and sit in a
review queue for months or years.

And while it's not quite as good, the stabilization process serves a
similar purpose.




Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-06 Thread Peter Stuge
hasufell wrote:
 that said... I don't think it currently makes sense to enforce
 a strict global review workflow.

For the record, neither do I, and I never proposed that it should
hold up starting to use Git.


//Peter



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-06 Thread Ciaran McCreesh
On Mon, 06 Jul 2015 13:04:35 -0400
Michael Orlitzky m...@gentoo.org wrote:
 I would love my commits to be reviewed, but I usually don't feel like
 reviewing anyone else's. That's... not uncommon.

Well, you could at least get your commits reviewed by an automated build
system that starts from a clean stage each time. That's better than
nothing.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-06 Thread Alec Warner
On Mon, Jul 6, 2015 at 9:42 AM, Peter Stuge pe...@stuge.se wrote:

 Alec Warner wrote:
  Its difficult to make a large change like all commits require review,
  particularly for long-time contributors who are expecting to move
 quickly.

 I think it's a character flaw (maybe hubris due to lack of experience
 and/or ignorance?) to lack the humility to say that I would prefer my
 commits to be reviewed by peers.


Oh I'm not making that argument (its a tough one anyway.)

I haven't done any research in Gentoo in terms of error rates (how many),
who makes errors (newbies? oldbies? everyone?), what the error impact is
(minor, major, data loss?), and so on.

On my old team at work we had code review, but it did not impact quality
very much because (manual) review catches a pretty specific set of
conditions some of the time. We had vastly superior quality by adopting
linters (to prevent really dumb mistakes that code review also didn't catch
consistently) and fast[1] enough automated testing that caught large
subsets of other really common errors. Of course, these are all quite low
hanging fruit.

[1] for some subset of fast; I think tests still took 5 minutes or so.


 It is obviously easier to stick my head in the sand, but then I
 should probably keep my crap in an overlay. (I do, and am happy!)

 If I were committing to gentoo I would want help from my peers to
 ensure that what I commit is not just done well but also done right.


I think the past has proven that not all Gentoo developers feel this way (I
never did; although I have not committed to the tree in some time.)




  I'd be curious how many subprojects use review

 I suspect that it's rare. Most developers are in my experience unable
 to work with review.


  learning purposes.

 Another significant benefit of review, besides the obvious quality benefit.


  I'd also be curious what adoption of a code review system would be
  like if it was not required (but was available, and perhaps
  required for specific subprojects that adopt it.)

 I think this is a lovely idea! I'd really like that setup!



 //Peter




Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-06 Thread Patrick Lauer
On 07/07/15 01:27, Ciaran McCreesh wrote:
 On Mon, 06 Jul 2015 13:04:35 -0400
 Michael Orlitzky m...@gentoo.org wrote:
 I would love my commits to be reviewed, but I usually don't feel like
 reviewing anyone else's. That's... not uncommon.
 
 Well, you could at least get your commits reviewed by an automated build
 system that starts from a clean stage each time. That's better than
 nothing.
 
I'll laugh about it next time I update OpenFOAM:

Fri Jun 27 12:52:19 2014  sci-libs/openfoam-2.3.0
   merge time: 1 hour, 5 minutes and 8 seconds.
or

Sun Jun 29 20:36:09 2014  sci-mathematics/nusmv-2.5.4
   merge time: 2 hours, 58 minutes.


That's without dependencies, so from a clean minimal starting point
(once you figure out what useflags are needed) you're looking at 12+
hours of walltime to get that checked. (On a reasonably modern Xeon with
SSDs ...)

So thanks for your intentional comedy, but let's be serious here.

Have fun,

Patrick



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-06 Thread Kent Fredric
On 7 July 2015 at 12:04, Patrick Lauer patr...@gentoo.org wrote:

 So thanks for your intentional comedy, but let's be serious here.


It would be really nice if we could define some sort of variable in
the ebuild itself with a relative cost metric for the ebuilds install
time. It wouldn't need to be precise, just ballpark figures so the
testing boxes can go Ok, a full build of this will block testing
everything else for XUNIT time, is this worth it?.

Then you could have the primary test box exclude things over a certain
unit size and adjust the text boxes unit until the workflow is right.

( and then have auxliary boxes that test XUNIT packages on demand or
something ).

I would also like a flying magical pony.

-- 
Kent

KENTNL - https://metacpan.org/author/KENTNL



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-05 Thread Andrew Savchenko
On Sat, 4 Jul 2015 20:20:23 +0200 Peter Stuge wrote:
 It's important that the review flow is well-understood and efficient.

This is impossible in our case due to the lack of manpower.
We already have a lot of bugs, patches, stabilization requests
hanging over there for months and even years. Stabilization request
will require at least two developers to participate in each commit.
This will double manpower required at least. Such approach can kill
the whole project.

Code review is good at a limited scope, e.g. for non-developers
where we have review anyway.

And as was already told in this thread, the best is the enemy of
the good. In no way we should delay git migration due to possible
git review.

Best regards,
Andrew Savchenko


pgpaeQblTgCEP.pgp
Description: PGP signature


Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-05 Thread William Hubbs
On Sun, Jul 05, 2015 at 09:05:59AM +0300, Andrew Savchenko wrote:
 On Sat, 4 Jul 2015 20:20:23 +0200 Peter Stuge wrote:
  It's important that the review flow is well-understood and efficient.
 
 This is impossible in our case due to the lack of manpower.
 We already have a lot of bugs, patches, stabilization requests
 hanging over there for months and even years. Stabilization request
 will require at least two developers to participate in each commit.
 This will double manpower required at least. Such approach can kill
 the whole project.

Agreed. Forcing all commits from developers to go through a code review
from another developer before they hit the tree would potentially
kill the entire project. I would strongly veto something like this,
because we flat out don't have the manpower to keep up with it.

 Code review is good at a limited scope, e.g. for non-developers
 where we have review anyway.
 
 Agreed; I could see something like this being beneficial.

 William



signature.asc
Description: Digital signature


Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-05 Thread Patrick Lauer
On Sunday 05 July 2015 13:46:10 William Hubbs wrote:
 On Sun, Jul 05, 2015 at 09:05:59AM +0300, Andrew Savchenko wrote:
  On Sat, 4 Jul 2015 20:20:23 +0200 Peter Stuge wrote:
   It's important that the review flow is well-understood and efficient.
  
  This is impossible in our case due to the lack of manpower.
  We already have a lot of bugs, patches, stabilization requests
  hanging over there for months and even years. Stabilization request
  will require at least two developers to participate in each commit.
  This will double manpower required at least. Such approach can kill
  the whole project.
 
 Agreed. Forcing all commits from developers to go through a code review
 from another developer before they hit the tree would potentially
 kill the entire project. I would strongly veto something like this,
 because we flat out don't have the manpower to keep up with it.
 
... or you have some pranksters just ok-ing all commits during their morning 
coffee, independent of content, which would keep things working at the cost of 
quality ...




Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-04 Thread Manuel Rüger
On 03.07.2015 22:22, Robin H. Johnson wrote:
 (Breaking the thread, because I believe this topic needs further
 discussion).
 
 On Fri, Jul 03, 2015 at 03:39:31PM +0200, Manuel Rüger wrote:
 Are there still any plans to use a code review system like gerrit that
 will avoid merges, rebases etc. to the tree by just accepting and
 serializing patches?
 Merges are a fact of life, they will be happening.
 This was included on:
 https://wiki.gentoo.org/wiki/Gentoo_git_workflow
 
 Rebases of already published commits must be avoided.
 
 But beyond that, the general discussion was that a code review system
 was not in the immediate future...
 
 If the merge workflow becomes too problematic due to the high rate of
 change, then we can revisit those systems, to take advantage of their
 auto-merging functionality, but probably only in combination with the QA
 testsuites.
 

Using a Code Review System and allowing direct commits are not mutually
exclusive.
If infra has got time to set it up, this could be an option in addition
to direct commits for developers and we could make it obligatory (e.g.
for the first month) for new developers.

It would also allow proxied maintainers to commit to the tree more
easily, as it will require just an additional ack by the proxy maintainer.

Manuel




signature.asc
Description: OpenPGP digital signature


Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-04 Thread Peter Stuge
William Hubbs wrote:
 If we do add a code review system, it should be fully accessible from
 the command line. Pybugz is almost there for bugzilla; the only thing it
 lacks is the ability to reply to specific comments.

Gerrit is also almost there, it has an ssh interface which is very
usable for most operations, but not so much for writing inline
comments within patches, which is a nice feature of Gerrit that I
would like to use. At the moment I have to revert to the web
interface to do it.


NP-Hardass wrote:
 I am unfamiliar with how other big projects that use code review
 systems. Do they generally make (almost) everyone participate,

In coreboot, which admittedly isn't such a big project, my impression
is that the introduction of Gerrit has lead to increased
participation. Previously patches and review went across the mailing
list, and many simply filtered the whole list into a folder.


 or do they typically restrict review to a certain class of users?

Hm, why would that end up happening? I'm not saying it can't, just
that I don't understand why it would. What do you have in mind?


//Peter



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-04 Thread NP-Hardass


On July 4, 2015 1:49:20 PM EDT, Peter Stuge pe...@stuge.se wrote: 

NP-Hardass wrote:
 I am unfamiliar with how other big projects that use code review
 systems. Do they generally make (almost) everyone participate,

In coreboot, which admittedly isn't such a big project, my impression
is that the introduction of Gerrit has lead to increased
participation. Previously patches and review went across the mailing
list, and many simply filtered the whole list into a folder.


 or do they typically restrict review to a certain class of users?

Hm, why would that end up happening? I'm not saying it can't, just
that I don't understand why it would. What do you have in mind?


//Peter

Well, it was just proposed earlier in the thread that it could be used for 
non-devs (primarily/only), hence two classes of users, those subjected to 
review and those not.

An alternative is a situation where all users, developer and non developer 
alike require review with the review requirements different between the two, 
e.g. devs need one signoff, non devs need two.

Additionally, for certain aspects, a hybrid of those two might be useful. A 
project or herd accepts direct commits to its packages from its members and has 
code review for non members (with the number of signoffs dependent on the 
group/content.

-- 
NP-Hardass



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-04 Thread Peter Stuge
NP-Hardass wrote:
  or do they typically restrict review to a certain class of users?
 
 Hm, why would that end up happening? I'm not saying it can't, just
 that I don't understand why it would. What do you have in mind?
 
 Well, it was just proposed earlier in the thread that it could be
 used for non-devs (primarily/only), hence two classes of users,
 those subjected to review and those not.

Ah I understand. Personally I think review is just as important for
devs as for non-devs. The big win with a review tool/flow is that it
becomes *at all possible* for non-devs to contribute efficiently to
the project, and if the review tool is good then giving review is
also efficient.

Some will always be more equal than others, but..


 An alternative is a situation where all users, developer and non
 developer alike require review

I feel that this is the only way to achieve the best quality.


 with the review requirements different between the two

I don't feel that this is as useful for quality. Devs produce crap too.

It's important that the review flow is well-understood and efficient.

It's important that everyone working is *motivated* to participate in
review. I've had plenty of experience with smart people who simply do
not want to participate in a review flow and that's all it takes for
the review flow to fail.


//Peter



Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-04 Thread NP-Hardass
I am unfamiliar with how other big projects that use code review systems. Do 
they generally make (almost) everyone participate, or do they typically 
restrict review to a certain class of users?

--
NP-Hardass

On July 4, 2015 4:14:14 AM EDT, Manuel Rüger mr...@gentoo.org wrote:
On 03.07.2015 22:22, Robin H. Johnson wrote:
 (Breaking the thread, because I believe this topic needs further
 discussion).
 
 On Fri, Jul 03, 2015 at 03:39:31PM +0200, Manuel Rüger wrote:
 Are there still any plans to use a code review system like gerrit
that
 will avoid merges, rebases etc. to the tree by just accepting and
 serializing patches?
 Merges are a fact of life, they will be happening.
 This was included on:
 https://wiki.gentoo.org/wiki/Gentoo_git_workflow
 
 Rebases of already published commits must be avoided.
 
 But beyond that, the general discussion was that a code review system
 was not in the immediate future...
 
 If the merge workflow becomes too problematic due to the high rate of
 change, then we can revisit those systems, to take advantage of their
 auto-merging functionality, but probably only in combination with the
QA
 testsuites.
 

Using a Code Review System and allowing direct commits are not mutually
exclusive.
If infra has got time to set it up, this could be an option in addition
to direct commits for developers and we could make it obligatory (e.g.
for the first month) for new developers.

It would also allow proxied maintainers to commit to the tree more
easily, as it will require just an additional ack by the proxy
maintainer.

Manuel

-- 
NP-Hardass

Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-04 Thread William Hubbs
On Sat, Jul 04, 2015 at 10:14:14AM +0200, Manuel Rüger wrote:
 On 03.07.2015 22:22, Robin H. Johnson wrote:
  (Breaking the thread, because I believe this topic needs further
  discussion).
  
  On Fri, Jul 03, 2015 at 03:39:31PM +0200, Manuel Rüger wrote:
  Are there still any plans to use a code review system like gerrit that
  will avoid merges, rebases etc. to the tree by just accepting and
  serializing patches?
  Merges are a fact of life, they will be happening.
  This was included on:
  https://wiki.gentoo.org/wiki/Gentoo_git_workflow
  
  Rebases of already published commits must be avoided.
  
  But beyond that, the general discussion was that a code review system
  was not in the immediate future...
  
  If the merge workflow becomes too problematic due to the high rate of
  change, then we can revisit those systems, to take advantage of their
  auto-merging functionality, but probably only in combination with the QA
  testsuites.
  
 
 Using a Code Review System and allowing direct commits are not mutually
 exclusive.
 If infra has got time to set it up, this could be an option in addition
 to direct commits for developers and we could make it obligatory (e.g.
 for the first month) for new developers.
 
 It would also allow proxied maintainers to commit to the tree more
 easily, as it will require just an additional ack by the proxy maintainer.

If we do add a code review system, it should be fully accessible from
the command line. Pybugz is almost there for bugzilla; the only thing it
lacks is the ability to reply to specific comments.

William



signature.asc
Description: Digital signature


Re: Code Review Systems Was: [gentoo-dev] Git Migration: launch plan schedule

2015-07-03 Thread Duncan
Robin H. Johnson posted on Fri, 03 Jul 2015 20:22:25 + as excerpted:

 On Fri, Jul 03, 2015 at 03:39:31PM +0200, Manuel Rüger wrote:
 Are there still any plans to use a code review system like gerrit [...]
 
 [T]he general discussion was that a code review system was not in the
 immediate future...

I believe the general sense of previous discussion was that the git 
switch has been delayed too long already, and while code review, etc, 
might be nice, in this case it's the perfect being the enemy of the good, 
in that it would likely result in another half-decade of gentoo on cvs 
while these /additional/ things were worked out, and that was simply 
judged to be an unacceptable tradeoff to make.

Which I (strongly!) agree with.  The switch to git won't be perfect, but 
we /can/ do it now, and we should.  If code review, etc, is to happen, 
once we're on git it can happen incrementally, but we're not losing 
anything we have already by not doing it with the switch to git, while 
just the switch to git alone is already a huge improvement, bringing us 
into the current era, at least.  And there's always going to be one more 
thing we could change to make things better... at the cost of putting off 
the big switch yet again... ultimately indefinitely, letting the perfect 
be the enemy of the good, to the benefit of the otherwise generally 
agreed to be unacceptable status quo.

-- 
Duncan - List replies preferred.   No HTML msgs.
Every nonfree program has a lord, a master --
and if you use the program, he is your master.  Richard Stallman