On Mon, 27 Jun 2016, Martin Winter wrote:

The difference is between a automated ‘proposed’ tree (no manual ACK)

What does this 'Ack' buy? It's just over 1 bit of information - except that the lack of an Ack can mean either:

- People read it but didn't Ack it, cause

  * Didn't really like it

  * Have no opinion on it

  * Like it, but didn't have time to Ack it then and/or forgot

- It slipped through the cracks

An Ack can mean:

- I read the patch and reviewed every line, and found no issues

- I glanced through the patch, and generally like the idea, though
  I didn't really do a code review

- I read the message and liked it based just on that, I didn't read
  further

- I like the person who submitted it!

If I'm integrating stuff into master, these 'Acks' are mildly interesting but they're really not anything I base my decision on - as per today. They don't convey much useful information.

So what problem is this supposed to achieve?

Further, if there's meant to be a group of people looking out for patches, how is it clear who is responsible for tending to patches that {day,week,month}?

There is _reason_ why I tried to introduce an explicit, unitary 'roundskeeper' hat. It is because one issue with the group approach is that it isn't clear who should do the (boring) job of making sure every patch is looked after in some way. It's easy - as one of a group of integrators - to just look after the stuff you find interesting, and avoid dealing with other stuff. Stuff falls through the cracks.

There are reasons.

and a tree with patches which have been ACK’ed by at least one other person.

Your suggested way may work partially - but it’s still not clear on how things move from that proposed to the master (I just use “master” as the main development tree.

By a fast-forward merge. How would an Acked patch be committed?

I do NOT imply that this has to be the master branch. I could be another branch, but “master” for development seems to be common)

The name doesn't matter, but let's just call any central integration nexus branch 'master', as it is now.

It would be less than the ‘proposed’ tree you suggest. But yes, reverting or fixing previous commits might happen. Hopefully not too many times if the people who send a ACK get used to do some decent code review. But nothing stops us to modify the rule later if the quality of the ACKs are not good enough.

So why not just have a staging branch? Like any many other perfectly healthy projects have?

Also, at the same time anyone can send a NACK - which would stop the patch to go in until the NACK is either resolved or (in the current proposed maintainer doc) agreed by the maintainers.

This is all very manual. Manual processes are tedious and error-prone.

Why not get rid of this manual Ack + commit and automate that?

If you have to have manual processes, then they should be batchable.

Beside, your (or the current widely understood model) is that patches go it if there is no NACK - so no active code review or any ACK required. So this is nearly the same, just now REQUIRING an ACK. A single NACK is still stopping the whole process until resolved or overruled by some group (the maintainers in the current version) I honestly fail to see how you think that this is making it worse. If your only suggestion is to wait a min of 3, 7 or 14 days after an ACK, then this can certainly be discussed.

I thought the development process _must_ speed up, but it seems the proposal is to _add_ another manual step - on top of the existing ones? :)

I want _fewer_ tedious manual steps in the integration process.

A good chunk of patches are uncontraversial fixes that should need minimal actions to get in. Having to have people notice them on list, hit reply and type "ack" (or whatever) sounds like needless extra overhead?

What problem is this trying to solve?

Very few. I agree. I think this is a problem, you seem to be ok on it (unless I misunderstand)

It's a huge problem. More people should take the time to review things.

Having contributors need to push others for a review will only work if they spend some time reviewing patches from others as well. I think that’s the beauty on this.

'Ack' doesn't convey review though.

Scaling issue at this time? Sorry, my feeling is that we don’t have enough _full_ maintainers today with the time to be involved. Only you seem to be regularly active (again).

The integration role, I had hoped to have had rotated around on a monthly basis.

I think it needs a certain number of regularly active maintainers, i.e. 3..5 minimum.

I don't think there's any issue quickly scaling out to 3..5 people actively involved in integration.

Though, first, we have to agree.

No. But you made it clear that you have the final say (as a maintainer).

Where? Another person's objections are as valid as any others - least, if they give somewhat plausible reasoning. Have you not noticed that I'm still honouring NACKs from, e.g., David?

If what you were saying were true, there are at least 2 patches I'd just go commit now.

And anyone sending a ACK doesn’t seem to trigger any action of the patch moving forward - at least that’s the impression.

We were caught up (least in the forward direction) with patchwork by November or so. When I last did an integration round.

What happened after that?

The next integration round, r8, should have us more or less forward caught up, as well as nearly all the backlog dealt with.

There are various other groups who tried to push small (and large) fixes into Quagga and got rejected.

What is wrong with rejecting patches?

But Cumulus did some really good enhancements and fixes to Quagga. Their patches might not be perfect (i.e. cases for non-linux systems like *BSD), but I think the good stuff fairly outweighs the not so perfect or broken part by a wide margin.

Yes _absolutely_. I never said otherwise. Indeed, I'm sure I explicitly said several times. You've quoted one instance even.


Nobody says that it needs to be released unchanged. By blocking based on some non-perfect commits, we are blocking all the good stuff they did at a later stage.

See, this is the *fundamental* issue. Who did the blocking?

I was integrating stuff *ALONG WITH* working through their backlog, while I was doing the rounds.

*Donald* blocked the normal process with r7 on "all the take-3 should go in".


With all the good stuff now missing, I personally would rather open the floodgates, get their stuff in

Exactly what I'm doing. Except 'get their good stuff in' - and I'm still going to push-back the stuff that has nits, problems or needs discussion. Which is NOT that much. And they/we can figure out how to address that too, and maybe some of it goes in later.

Cause _THATS HOW OPEN SOURCE SOFTWARE DEVELOPMENT SHOULD WORK_.

There are at least another choices: You could reconsider. I rather have just one community and have all the parties working together. This community isn’t just you. Yes, you’ve started Quagga and yes, you own some of the essential resources (i.e. domain name), but there are countless people which contributed or tried to contribute in the hope to move this project forward. I do believe they should have a voice as well.

When have I denied people a voice?

All I'm trying to do is point out some practical, reality based issues:

- on ACKs, that seems like it adds more overhead

- On having 2 branches, one for paul, one with voting so we can get
  around paul, and releases from each, with no specified way of how they
  stay coherent - that's just wanting to have a fork without having a
  fork. We'll just end up with incompatibilities between them, and
  confusion for distributors and users.

  I think in such a case it'd be better for everyone to just properly
  fork. We'll all be happier. We might even get on better.

My way or the highway seems to be your view… Sad.

What do you disagree with me on though?

You want stuff to be reviewed, but then you want a weird branch where you can vote in a branch from one contributor with commits which one of the most _active reviewers_ (I think I am anyway) has pointed out issues of various kinds with or has other queries on? Some of which the contributor has _ignored_ for nearly 2 years? Some of which are on relatively recent patches, which have also been ignored?

Am _I_ really being unreasonable then in objecting to proposals to allow contributors who've been ignoring comments to club together with others (inc. some who don't realise that this is the driving issue) to vote and override the comments?

I don't think I am being that unreasonable.

You’ve started a different way (introduced the proposed branches), then handed it over to Donald, stepped back into inactivity, didn’t ack him as full maintainer to allow making decisions and now blaming him? Did I get this right?

I think he did an awesome job.

He was doing great, sure.

If you think I was being inactive, then you're unaware that I went through the _entire_ take-3 branch in february or march and reviewed it. Some of the issues I had, I even just provided the fixes for. We had conference calls about one or two patches as well - e.g. to figure out the UI issues of the triggered-route-map reprocessing patch.

It seemd to be going well. Though, after I'd given Donald my list of review comments, he seemed to come back with arguments that perhaps the branch should go in as is.

Not exactly sure what happened after that. There was probably some more rebasing and practical code suggestions I could have done and sent him - but there was also stuff I thought Donald / Cumulus was going to do (e.g. look into the triggered-route-map reprocessing changes we'd discussed and, I thought, agreed on).

I know Donald was going to have David do the next round (which I'd had no issue with), and I presume there was some communication between them. David posts to say r7 will be based on the take-3 branch - I point out I had sent comments. Next thing is Donald is doing r7 as a bare minimum bug-fix round, and there's this whole "development is broken! let's vote through changes!" stuff.

So yeah, doing fine, still he stopped doing it. Apparently deliberately because he wanted /all/ of take-3 in.

I have nothing against Donald personally, but "one branch for paul; one branch to vote through massive branches, despite paul" doesn't work for me.

I understand Donald is acting in Cumulus' interests. Don't hold it against him. I don't think that was the best approach to take. I will act in my interests so.

But he is only one person and he had to work on 2 branches (the public and the internal cumulus). I would assume you understand the strain as I assume you work currently on 2 branches

There was r6 too - screwy. Also, I believe Cumulus had a release at some point.

In that case, get someone else to do the next round.

Also, integration work is very boring. Some of the motivating factors for the 'roundskeeper' role are to try allow people to not get stuck for too long with that, and be able to do other stuff too. Hence:

- Doing it in a batched way, so there's X time (e.g. 1 or 2 weeks) of
  the boring, tedious, annoying patch-herding work; then Y time (maybe
  also 1 to 2 weeks) of 'quiet' time for the integrator where /others/
  do work (reviews) and the integrator can do something more
  interesting, before doing the final collating based on review comments
  to create the tentative 'accepted' - another little 'quiet' period
  for testing, before final pushing.

- Rotating it around. If there's 3..5 others, then each potentially only
  needs to do the intensive 'on roundskeeper duty' thing - that will
  suck 2 to 4 weeks of time over the course of 4 to 6 weeks - once or
  twice a year.

There are reasons for this stuff you know.

And he didn’t try to push the Cumulus branch in - at least not yet. But I can see his frustration dealing with problems which he has long fixed in the cumulus internal branch - but he is blocked by pushing this into the community edition because some commits which you disagree on.

And the answer to that is to block pretty much *everything*, until he gets to be able to shove the whole thing in, inc. commmits I have comments or queries on?

Again: Good chunk of it is perfectly fine to go in. No disagreement.

Hell, that good chunk would have been in _months_ ago, if we'd just done this the sensible way and gone with the suggested rebase of take-3 for round-7 + _everyone elses_ outstanding patches, and addressed the comments on the remainder for the next or later round.

That'd have been much better, but hey.

Thanks for the summary, but to be honest, I thought we are talking
about governance, not actual patches.

Except, that's the driving factor behind why Donald stopped integrating patches generally (except for a weird minimal bugfix-only r7).

Tease out the strands of the problem and address them one by one - often the best way to go.

All the proposed scenarios allow to NACK patches and discuss them. The current proposed maintainer even requires a ACK by a 2rd party for it to move forward.

This sounds slower, more manual, and more bureaucratic than what we have today!

What may change is (in the current proposed maintainer doc) that you
can’t VETO it anymore, but the maintainers together in a collective
can still decide against it if any NACK (from maintainer or not) is
not resolved first.

See, I think this is a crappy way to resolve the Cumulus backlog issue.

I don't see how this is a reasonable way to tackle that. Indeed, this is a _huge_ diversion of time and energy from what is required:

  Work through the backlog.

There are 2 issues here:
1) Backlog

How to deal with Backlog may require a special exception. At least I can’t think about any reasonable way to review the large amount of the backlog just from Cumulus alone.

I *DID REVIEW IT* _months_ ago.

Indeed, some of the patches I reviewed YEARS AGO!

Do you see the issue?

2) New submissions

If we can’t speed up the review cycle, then this situation will happen again and again. The maintainer (and tools and community) doc try to address these shortcomings.

I'm not convinced those involved understand the issues, least they don't seem aware of even the very recent past. You can't tackle shortcomings without that.

E.g., how does _adding _manual steps speed things up????

 - As far as I know, at no stage does Donald communicate to others that
   the nub of the issue is he wanted take-3 to go in without further
   discussion and without addressing my comments - some of which
 Cumulus
   have had nearly *years* to act on.

You seem to like picking on Donald. He is only one of the community members which would like to fix the process.

I'm "picking on" Donald because he is the one who started this process of agitating for majority votes, because he (or others in Cumulus) want to have take-3 shoved in as is - and they don't want to have to deal with community reviews (some outstanding for over a year).

That's what has driven us to here. I simply can not fail to mention the facts of this, because this is the _prime point of disagreement_ between us. And Donald has _not_ communicated this to others in this process, as far as I know.

I could say "Cumulus" instead of "Donald".

Nothing personal against Donald.

My impression was that everyone (except you) wants change.

Funnily enough, when I explain the prime point of disagreement, Lou and Jafar seemed to indicate it should _not_ be the case that contributors get to rewarded for ignoring comments. Least in principle.

However, it speeds up sorting the differences over the slower email. So I think this helps to get to a agreeable solution.

Sure, you can use it to augment and help form. That's fine.

 Why work with people you find troublesome? I honestly don't want anyone
 who thinks that of me to have to suffer further so.


Again, you are saying that you are unwilling to discuss any changes… Sad.

I didn't say _any_ changes. Indeed, some of the stuff in the document may be perfectly agreeable. What changes do you want to make?

However, voting through branches cause the contributor has ignored comments for long they find it too bothersome to address any?

Having two branches with a weird status to each other?

regards,
--
Paul Jakma | p...@jakma.org | @pjakma | Key ID: 0xD86BF79464A2FF6A
Fortune:
Aberdeen was so small that when the family with the car went
on vacation, the gas station and drive-in theatre had to close.
_______________________________________________
Quagga-dev mailing list
Quagga-dev@lists.quagga.net
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to