tree 00b1b89c35f721fb3e7bb2578a54cf90c9755603
parent 51e46c7a4007d271b2d42dbc2df953ab968577a7
parent 0bfa52a43ec085c2f5eb2c35fcc6cf73bb802eae
author Jonathan Corbet <corbet@lwn.net> 1574696608 -0700
committer Jonathan Corbet <corbet@lwn.net> 1574696608 -0700

Merge branch 'maintainer-profile' into docs-next

Patch series from Dan Williams:

At last years Plumbers Conference I proposed the Maintainer Entry
Profile as a document that a maintainer can provide to set contributor
expectations and provide fodder for a discussion between maintainers
about the merits of different maintainer policies.

For those that did not attend, the goal of the Maintainer Entry Profile
is to provide contributors documentation of patch submission
considerations that may vary by subsystem. The session introduction was:

    The first rule of kernel maintenance is that there are no hard and
    fast rules. That state of affairs is both a blessing and a curse. It
    has served the community well to be adaptable to the different
    people and different problem spaces that inhabit the kernel
    community. However, that variability also leads to inconsistent
    experiences for contributors, little to no guidance for new
    contributors, and unnecessary stress on current maintainers.

To be clear, the proposed document does not impose or suggest new rules.
Instead it provides an outlet to document the existing unwritten
policies in effect for a given subsystem.  Over time the hope is that
some of this variability can be up-levelled to new global process
policy, but in the meantime it provides relief for communicating the
guidelines that are being imposed on contributors.

[jc: resolved merge conflicts with the MAINTAINERS file, added a patch
     to fix up various RST issues, and added a TOC section for the
     profiles.]
