DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
To: "Morten Brørup" <mb@smartsharesystems.com>, techboard@dpdk.org
Cc: dev@dpdk.org, "Jim St. Leger" <jim.st.leger@intel.com>
Subject: Re: [dpdk-dev] Consider improving the DPDK contribution processes
Date: Mon, 25 May 2020 12:12:49 +0100	[thread overview]
Message-ID: <6d59a42a-915b-47fc-60e6-94a4600d4bff@intel.com> (raw)
In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35C60FEA@smartserver.smartshare.dk>

On 25-May-20 10:34 AM, Morten Brørup wrote:
> Dear DPDK Techboard,
> 
> I am writing this to raise awareness about the environment for contributing to DPDK, as I feel that it could be improved. This is not a personal thing - I have thick skin - but a general observation. I urge the DPDK Techboard to spend some time to focus on the process, and not only on the technology.
> 
> Contributing to DPDK is not easy for infrequent contributors:
> 
> 1. Infrequent contributors are limited by not being deeply familiar with the coding style and the commit style, so their style is not always 100 % spot on.
> 2. Infrequent contributors are limited by not having built trust by the maintainers and frequent contributors, and thus their contributions undergo more detailed reviews and get more negative (or: perceived negative) feedback, where trusted contributors are given more slack. (In theory, every contribution should be treated equal, but in reality it makes sense allocating fewer resources to review contributions from developers with a proven track record.)
> 3. Infrequent contributors may not be deeply familiar with the development/contribution tools. E.g. how to use git the "DPDK way".
> 
> Additionally, when contributing to old DPDK code, checkpatch complains about coding style violations stemming from the existing old code. This also raises the barrier and decreases the motivation to contribute - a contributor getting negative feedback about something he didn't even do.
> 
> 
> Here are a couple of anonymous examples from the mailing list:
> 
> An infrequent contributor got minor coding style suggestions to a patch, although the coding style was similar to that of a closely related function in the same library, but not perfectly matching the official coding style. I think we could be more lax about coding style, except if the coding style directly violates automatic coding style validation tools.
> 

A lot of that could simply be fixed by codifying our Coding Style into a 
.clang-format file, and make this process (semi-)automatic. A lot of 
IDE's/editors now have either built-in support for clang-format, or have 
plugins enabling said support.

I've investigated this in the past and found that our coding style 
guidelines are very specific in some places, and neither clang-format 
nor other options have that kind of detailed control over source code 
formatting. The only other option would be to adjust our coding style to 
fit the options available in clang-format.

IMO this would cut down a lot on complaints about mixing indents, wrong 
alignment, (lack of) newlines before function name, etc.

> Another infrequent contributor got patch style feedback about a small patch, suggesting to split it up into three patches. The official contributing guide says that small changes should be kept together in the same patch. The patch in question could be considered three bug fixes, so splitting it up might be appropriate, or it could be considered fixing three variations of the same bug, so keeping it together as one would be appropriate. I think we could be more lax about patch style, except if the patches are completely incomprehensible.

In my experience, this has been up to individual maintainers. I 
generally split up my patches not to follow a guideline, but to make 
reviewing code easier for others. Sometimes that means splitting up the 
patch, sometimes that means keeping everything together, and sometimes 
either one is OK so i don't insist on either.

But perhaps it would be a good idea to clarify some of these guidelines.

Then again, we should also remember that coding guidelines are there to 
help us all, and to avoid wasting maintainers' time: David/Thomas/Ferruh 
manually fixing every patch before applying just because we are "lax" in 
reviews doesn't really scale. So, it's really a double edged sword IMO.

> 
> It is not all bad, though! I have more than once seen excellent feedback to a suggested patch, where an expert reviewer took the time and effort to explain - in an educational and welcoming tone - what was wrong about the patch and the contributor's assumptions.
> 
> 
> In summary, I think that DPDK has grown to a point where we hopefully will see more contributions from outsiders and newcomers, and we need to adapt to it, so that they get a positive experience from contributing, and keep coming back with more.
> 
> Improving the process should be an ongoing discussion. Here are two areas for discussion:
> 
> 1. Keep expanding the contributor documentation. It is already far better than for most projects, but there is always room for improvement. Assume that the reader is intelligent, but has limited information in advance. E.g. Patchwork and Bugzilla are barely mentioned, and it is only described how to use them when submitting a patch.
> 
> 2. When giving feedback on the mailing list, consider how it may be received, weighing the balance between accepting imperfection and educating the contributor.

I would add a third area: the process itself is arcane and inaccessible. 
The current consensus among the community seems to be that IRC + mailing 
list are "the most accessible" because "everyone has email" and "getting 
on IRC is easy".

However, the truth is, they aren't "accessible", they are low tech, and 
thus *in*accessible to those who aren't veteran command-line Linux 
coders. No one uses IRC any more except OSS projects (so a new 
contributor isn't likely to have an IRC set up unless they're already a 
habitual contributor to other projects), and sending patches over an 
email as opposed to a well-integrated web interface workflow is so alien 
to most people that it definitely does discourage new contributions.

I understand the advantages of mailing lists (vendor independence, 
universal compatibility, etc.), but after doing reviews in Github/Gitlab 
for a while (we use those internally), going through DPDK mailing list 
and reviewing code over email fills me with existential dread, as the 
process feels so manual and 19th century to me.

> 
> 
> DPDK is a great project, and the contribution process described above sounds a lot worse than it actually is. But I just can't get enough rainbows and unicorns! :-)
> 
> 
> Med venlig hilsen / kind regards
> 
> Morten Brørup
> CTO
> 
> 
> SmartShare Systems A/S
> Tonsbakken 16-18
> DK-2740 Skovlunde
> Denmark
> 
> Office      +45 70 20 00 93
> Direct      +45 89 93 50 22
> Mobile     +45 25 40 82 12
> 
> mb@smartsharesystems.com
> www.smartsharesystems.com
> 


-- 
Thanks,
Anatoly

  parent reply	other threads:[~2020-05-25 11:12 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-25  9:34 Morten Brørup
2020-05-25 11:00 ` Jerin Jacob
2020-05-25 11:12 ` Burakov, Anatoly [this message]
2020-05-25 11:58   ` Jerin Jacob
2020-05-25 12:53     ` Thomas Monjalon
2020-05-25 14:28       ` Burakov, Anatoly
2020-05-25 14:55         ` Wiles, Keith
2020-05-25 15:22         ` Thomas Monjalon
2020-05-25 15:35           ` Jerin Jacob
2020-05-25 15:52             ` [dpdk-dev] [dpdk-techboard] " Maxime Coquelin
2020-05-25 15:59               ` Burakov, Anatoly
2020-05-25 16:04                 ` Maxime Coquelin
2020-05-25 16:09                   ` Burakov, Anatoly
2020-05-25 16:28                     ` Thomas Monjalon
2020-05-25 16:57                       ` Wiles, Keith
2020-05-25 17:32                         ` Thomas Monjalon
2020-05-25 17:50                           ` Wiles, Keith
     [not found]                             ` <068c6367-b233-07f9-c038-4bddc4f48106@kth.se>
2020-05-26  9:33                               ` Burakov, Anatoly
2020-05-26 13:12                                 ` Wiles, Keith
2020-05-26 13:10                               ` Wiles, Keith
2020-05-25 18:44                       ` [dpdk-dev] [dpdk-techboard] Consider improving the DPDKcontribution processes Morten Brørup
2020-05-25 20:34                         ` Thomas Monjalon
2020-05-26  7:06                           ` Tom Barbette
2020-05-26  7:31                             ` Maxime Coquelin
2020-05-26  9:13                               ` Burakov, Anatoly
2020-05-26  9:43                         ` Burakov, Anatoly
2020-05-26 10:16                           ` Jerin Jacob
2020-05-26 10:33                             ` Thomas Monjalon
2020-05-26 10:52                               ` Burakov, Anatoly
2020-05-26 12:45                                 ` Thomas Monjalon
2020-05-26 13:57                                   ` Burakov, Anatoly
2020-05-26 14:01                                     ` Thomas Monjalon
2020-05-26 10:53                               ` Jerin Jacob
2020-05-25 16:01               ` [dpdk-dev] [dpdk-techboard] Consider improving the DPDK contribution processes Jerin Jacob
2020-05-25 15:43           ` [dpdk-dev] " Burakov, Anatoly
2020-05-25 14:55       ` Wiles, Keith
2020-05-25 12:08   ` [dpdk-dev] [dpdk-techboard] " Bruce Richardson
2020-05-25 15:04     ` Burakov, Anatoly
2020-05-25 15:28       ` Jerin Jacob
2020-05-25 15:47     ` Stephen Hemminger
2020-05-25 16:21       ` Bruce Richardson

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=6d59a42a-915b-47fc-60e6-94a4600d4bff@intel.com \
    --to=anatoly.burakov@intel.com \
    --cc=dev@dpdk.org \
    --cc=jim.st.leger@intel.com \
    --cc=mb@smartsharesystems.com \
    --cc=techboard@dpdk.org \
    /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).