DPDK community structure changes
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas.monjalon@6wind.com>
To: "Mcnamara, John" <john.mcnamara@intel.com>
Cc: moving@dpdk.org, ferruh.yigit@intel.com,
	yuanhan.liu@linux.intel.com, pablo.de.lara.guarch@intel.com
Subject: Re: [dpdk-moving] Proposal a Committer model
Date: Wed, 16 Nov 2016 11:45:55 +0100	[thread overview]
Message-ID: <1660077.mdFWPiNUk9@xps13> (raw)
In-Reply-To: <B27915DBBA3421428155699D51E4CFE20264F143@IRSMSX103.ger.corp.intel.com>

Hi,

2016-11-15 23:35, Mcnamara, John:
> Hi,
> 
> I'd like to propose a change to the DPDK committer model.
> Currently we have one committer for the master branch of the DPDK project.

Yes it's me. And we have three other committers (CC'ed) for the sub-trees
dpdk-next-net, dpdk-next-virtio and dpdk-next-crypto.

> One committer to master represents a single point of failure

For the release 16.11, 49% of the patches were committed by me.
Other patches came from sub-trees.

> and at times can be inefficient.
> There is also no agreed cover for times when the committer is
> unavailable such as vacation, public holidays, etc.
> I propose that we change to a multi-committer model for the DPDK
> project. We should have three committers for each release that can
> commit changes to the master branch.

Most of the critical work is done in the sub-trees which cover every drivers.
However I feel we could add more sub-trees and especially for EAL.
Ideally, the master branch should just gather commits from the sub-trees.
About long vacation, we may find backup committers for each git tree if
it's really needed.

> There are a number of benefits:
>  
> 1. Greater capacity to commit patches.
> 2. No single points of failure - a committer should always be
> available if we have three.
> 3. A more timely committing of patches. More committers should equal a
> faster turnaround - ideally, maintainers should also provide feedback
> on patches submitted within a 2-3 day period, as much as possible,
> to facilitate this. 
> 4. It follows best practice in creating a successful multi-vendor
> community - to achieve this we must ensure there is a level playing
> field for all participants, no single person should be required to
> make all of the decisions on patches to be included in the release.

Committing faster means making patches disappear from the radar faster.
It does improve neither the quality nor the multi-vendor cooperation.

DPDK is mainly a community of hardware vendors. At the beginning, there
was only one vendor (Intel). After being open on dpdk.org, more vendors
joined. Nowadays we are still working to be more and more vendor neutral.
Examples of current work: bus abstraction, filter API, event model, etc.

I think there are two major issues when working on neutrality in DPDK:

1/ The first challenge and priority for a developer/vendor is to
push access to new hardware features and achieving the best performance.
It is not his priority to think about the genericity of the design
or the API. And he generally doesn't take care of the performance on
other hardware.

2/ There are not enough reviews to challenge genericity of developments.

The only solution to these issues is to give some time for proper reviews.

I would like to highlight again that having more good reviews is a good
way of accelerating pace while improving quality.
It is not so hard or long to commit patches which are ready.
It is longer when the committer must play the reviewer role because of an
obvious lack of review.

About "no single person should be required to make all of the decisions
on patches to be included in the release", I totally agree.
That's why the reviews and discussions must make clear what is the
consensus, the community decision.

> Having multiple committers will require some degree of co-ordination
> but there are a number of other communities successfully following
> this model such as Apache, OVS, FD.io, OpenStack etc. so the approach
> is workable.

I won't play the game of listing and comparing other projects, though
there are a lot (and famous) counter-examples.
The other model is to promote some sub-trees.

The current model pushes people to discuss and decide publicly.
If we had a small committee of 3 persons coordinating to commit, it
means they may are willing to take some decisions privately instead of
relying on community consensus.
And the risk is greater if these people are working for hardware vendors.

  reply	other threads:[~2016-11-16 10:45 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-15 23:35 Mcnamara, John
2016-11-16 10:45 ` Thomas Monjalon [this message]
2016-11-16 15:13   ` Bruce Richardson
2016-11-16 16:23     ` Wiles, Keith
2016-11-16 19:42     ` Jerin Jacob
2016-11-17  9:27       ` Mcnamara, John
2016-11-17 13:43         ` Thomas Monjalon
2016-11-17 14:05           ` Wiles, Keith
2016-11-18 10:45             ` Hemant Agrawal
2016-11-18 17:14               ` Stephen Hemminger
2016-11-17 22:57         ` Ed Warnicke
2016-11-18 10:45         ` Hemant Agrawal
2016-11-16 20:16 ` Dave Neary
2016-11-17  8:14   ` Mcnamara, John

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1660077.mdFWPiNUk9@xps13 \
    --to=thomas.monjalon@6wind.com \
    --cc=ferruh.yigit@intel.com \
    --cc=john.mcnamara@intel.com \
    --cc=moving@dpdk.org \
    --cc=pablo.de.lara.guarch@intel.com \
    --cc=yuanhan.liu@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).