diff mbox

[PATCHv2] contributing: add user agreement and short log conventions

Message ID 1467067229-20605-1-git-send-email-bill.fischofer@linaro.org
State New
Headers show

Commit Message

Bill Fischofer June 27, 2016, 10:40 p.m. UTC
Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>
---
v2: Incorporate comments from Mike and Petri

 CONTRIBUTING | 141 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 137 insertions(+), 4 deletions(-)

Comments

Christophe Milard June 28, 2016, 8:15 a.m. UTC | #1
On 28 June 2016 at 00:40, Bill Fischofer <bill.fischofer@linaro.org> wrote:
> Signed-off-by: Bill Fischofer <bill.fischofer@linaro.org>
> ---
> v2: Incorporate comments from Mike and Petri
>
>  CONTRIBUTING | 141 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
>  1 file changed, 137 insertions(+), 4 deletions(-)
>
> diff --git a/CONTRIBUTING b/CONTRIBUTING
> index a81fd8d..5d76fb3 100644
> --- a/CONTRIBUTING
> +++ b/CONTRIBUTING
> @@ -11,15 +11,30 @@ in understanding the  contributing requirements for ODP
>  This document is intended to guide a new application developer in understanding
>  the  contributing requirements for ODP
>
> +== Contributor's Agreement
> +ODP is an open source project that follows the
> +https://opensource.org/licenses/BSD-3-Clause[BSD 3 Clause] license. Every
> +contributor to ODP must agree to comply by these licensing terms as well as
> +assert that they have the right to contribute the code they submit to the
> +project. No patches will be considered for acceptance without the contributor
> +having first executed either an
> +http://www.opendataplane.org/contributor/individual/[Individual Contributor
> +License Agreement] or being a member of an orgnaization that has executed
> +a http://www.opendataplane.org/contributor/corporate/[Corporate Contributor
> +License Agreement].
> +
> +These agreements are a one-time requirement and take only a few minutes to
> +perform by click-through.
> +
>  == New Development
>
>  ODP code shall be written with the kernel coding style https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/CodingStyle[Kernel Coding Style]
>
>  ODP code shall be documented using the doxygen style described in the
> -"Documenting the code" section.
> +<<Documenting the Code>> section.
>  Check patch script/checkpatch.pl shall be used before submitting a patch.
>
> -== ODP patch expectations as an  open source project
> +== ODP patch expectations as an open source project
>
>  While specific to the Linux kernel development, the following reference could
>  also be considered a general guide for any Open Source development
> @@ -42,6 +57,124 @@ which can be found in https://git.kernel.org/cgit/linux/kernel/git/torvalds/linu
>
>  Code without a proper signoff cannot be merged into the mainline.
>
> +== Short Log and Long Log Conventions
> +For ease of patch management, every submitted patch must have a short log
> +entry. The short log is a one-line summary of the patch and says where it
> +is intended to be applied and (briefly) its purpose. Following the short
> +log, submitters are free to add additional detail in the long log. Long log
> +entries are encouraged when appropriate. These should be relvant and

relevant

> +useful to potential reviewers in understanding the purpose and rationale
> +for the patch. See the above-referenced
> +https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/SubmittingPatches[Submitting Patches] for some useful suggestions and
> +guidelines.
> +
> +=== Short log format
> +ODP requires that the short log be a single line not exceeding 80 characters,

Is this construction proper english? do you mean "ODP requires the
short log to be a single... "? (if ok, ignore. I have more confidence
in your English than mine :-) )

> +be composed entirely in lower case, and be structured as follows:
> +
> +`area: component: brief description`
> +
> +Note that a single colon (:) should be used to separate each section of the
> +short log and be followed by a single space before beginning the next section.
> +
> +Area identifies the functional area that this patch addresses and in general
> +says where in the directory hierarchy the patch is intended to apply. This
> +should be taken from the following list:
> +
> +api::
> +Patch adds, deletes, or changes an ODP API. Any patch that applies to the

"the" application programing interface, not "an". I would like to see
"drv::" in this list as well for changes that applies to THE driver
interface of ODP (include/odp/drv/spec). (using "a" may lead to the
conclusion that the driver interface is an api, which it is not. There
is one single Application interface -made of different parts of
course, but still they define a single interface-)

> +`include` directory or its descendants is considered an API patch and must

should be /include/odp/api/spec

> +be identified as such. Moreover, any patch series containing an api patch
> +must be identified in the patch's `--subject-prefix` as API-NEXT.
> +
> +doc::
> +Patch applies to the ODP documentation library contained in the `doc` directory
> +
> +example::
> +Patch applies to the ODP examples contained in the `example` directory.
> +
> +helper::
> +Patch applies to the ODP helper library contained in the `helper` directory.
> +
> +linux-generic::
> +linux-gen::
> +Patch applies to the odp-linux reference implementation, specifically the
> +`platform/linux-generic/` directory that contains that implementation. The
> +alternate form `linux-gen` may be used to conserve line space if desired.
> +
> +performance::
> +Patch applies to the ODP performance test suite contained in the
> +`test/performance` directory.
> +
> +test::
> +Patch applies to the `test` directory. This can be used as a generic area
> +for non-specific test patches.
> +
> +validation::
> +Patch applies to the ODP validation test suite contained in the
> +`test/validation` directory.
> +
> +Any other patch that applies to some other top-level directory or file should
> +use that directory or file name as its area.
> +
> +The component portion of the short log identifies the ODP component that this
> +patch applies to. A component is required unless the area is a single file, in
> +which case it may be omitted. Components should be selected from the following

Is this list exhaustive?

/Christophe

> +list:
> +
> +buffer::
> +Buffers and buffer processing.
> +
> +classification::
> +cls::
> +Classification. `cls` may be used as an abbreviation for space if desired.
> +
> +crypto::
> +Crypto.
> +
> +packet::
> +Packets and packet processing.
> +
> +pktio::
> +Packet I/O (pktio) and its related sub-components
> +
> +pool::
> +Buffer pools and related processing.
> +
> +queue::
> +Queues and related processing.
> +
> +scheduler::
> +sched::
> +Scheduler and related processing. `sched` may be used as an abbreviation for
> +space if desired.
> +
> +time::
> +Time.
> +
> +timer::
> +Timers and related processing.
> +
> +tm::
> +Traffic Manager and related processing.
> +
> +Following the component the rest of the short log should describe the purpose
> +of this patch.
> +
> +=== Examples
> +To illustrate, here are some examples of good and bad short logs:
> +
> +Good::
> +* `api: pool: add new foo attribute to pools`
> +* `linux-generic: pool: implement new foo attribute for pools`
> +* `validation: pool: test new foo attribute for pools`
> +
> +Bad::
> +* `fix something` (doesn't follow required format)
> +* `api: propose a new api` (missing component)
> +* `validation: pool: a description that rambles on and on and never gets to
> +the point`
> +
>  == Common Errors in Patch and Commit Messages
>
>  - Avoid starting the summary line with a capital letter, unless the component
> @@ -92,7 +225,7 @@ Code without a proper signoff cannot be merged into the mainline.
>
>  - References to wikipedia are not permitted.
>
> -=== Documenting the code
> +=== Documenting the Code
>
>  - Allow doxygen to use all its default behaviors to identify tagged
>    information but where a doxygen tag must be specified use @
> @@ -154,6 +287,6 @@ Code without a proper signoff cannot be merged into the mainline.
>          image::../<image name>.svg[align="center"]
>  ----
>  - The images are stored in the doc/images directory as svg files, src for image
> -  generators such as .gv and .msg should also render to .svg
> +  generators such as .gv and .msc should also render to .svg
>  - Body text shall wrap at the 80 char point.
>  - No warnings may be generated by the asciidoctor tool.
> --
> 2.7.4
>
> _______________________________________________
> lng-odp mailing list
> lng-odp@lists.linaro.org
> https://lists.linaro.org/mailman/listinfo/lng-odp
diff mbox

Patch

diff --git a/CONTRIBUTING b/CONTRIBUTING
index a81fd8d..5d76fb3 100644
--- a/CONTRIBUTING
+++ b/CONTRIBUTING
@@ -11,15 +11,30 @@  in understanding the  contributing requirements for ODP
 This document is intended to guide a new application developer in understanding
 the  contributing requirements for ODP
 
+== Contributor's Agreement
+ODP is an open source project that follows the
+https://opensource.org/licenses/BSD-3-Clause[BSD 3 Clause] license. Every
+contributor to ODP must agree to comply by these licensing terms as well as
+assert that they have the right to contribute the code they submit to the
+project. No patches will be considered for acceptance without the contributor
+having first executed either an
+http://www.opendataplane.org/contributor/individual/[Individual Contributor
+License Agreement] or being a member of an orgnaization that has executed
+a http://www.opendataplane.org/contributor/corporate/[Corporate Contributor
+License Agreement].
+
+These agreements are a one-time requirement and take only a few minutes to
+perform by click-through.
+
 == New Development
 
 ODP code shall be written with the kernel coding style https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/CodingStyle[Kernel Coding Style]
 
 ODP code shall be documented using the doxygen style described in the
-"Documenting the code" section.
+<<Documenting the Code>> section.
 Check patch script/checkpatch.pl shall be used before submitting a patch.
 
-== ODP patch expectations as an  open source project
+== ODP patch expectations as an open source project
 
 While specific to the Linux kernel development, the following reference could
 also be considered a general guide for any Open Source development
@@ -42,6 +57,124 @@  which can be found in https://git.kernel.org/cgit/linux/kernel/git/torvalds/linu
 
 Code without a proper signoff cannot be merged into the mainline.
 
+== Short Log and Long Log Conventions
+For ease of patch management, every submitted patch must have a short log
+entry. The short log is a one-line summary of the patch and says where it
+is intended to be applied and (briefly) its purpose. Following the short
+log, submitters are free to add additional detail in the long log. Long log
+entries are encouraged when appropriate. These should be relvant and
+useful to potential reviewers in understanding the purpose and rationale
+for the patch. See the above-referenced
+https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/SubmittingPatches[Submitting Patches] for some useful suggestions and
+guidelines.
+
+=== Short log format
+ODP requires that the short log be a single line not exceeding 80 characters,
+be composed entirely in lower case, and be structured as follows:
+
+`area: component: brief description`
+
+Note that a single colon (:) should be used to separate each section of the
+short log and be followed by a single space before beginning the next section.
+
+Area identifies the functional area that this patch addresses and in general
+says where in the directory hierarchy the patch is intended to apply. This
+should be taken from the following list:
+
+api::
+Patch adds, deletes, or changes an ODP API. Any patch that applies to the
+`include` directory or its descendants is considered an API patch and must
+be identified as such. Moreover, any patch series containing an api patch
+must be identified in the patch's `--subject-prefix` as API-NEXT.
+
+doc::
+Patch applies to the ODP documentation library contained in the `doc` directory
+
+example::
+Patch applies to the ODP examples contained in the `example` directory.
+
+helper::
+Patch applies to the ODP helper library contained in the `helper` directory.
+
+linux-generic::
+linux-gen::
+Patch applies to the odp-linux reference implementation, specifically the
+`platform/linux-generic/` directory that contains that implementation. The
+alternate form `linux-gen` may be used to conserve line space if desired.
+
+performance::
+Patch applies to the ODP performance test suite contained in the
+`test/performance` directory.
+
+test::
+Patch applies to the `test` directory. This can be used as a generic area
+for non-specific test patches.
+
+validation::
+Patch applies to the ODP validation test suite contained in the
+`test/validation` directory.
+
+Any other patch that applies to some other top-level directory or file should
+use that directory or file name as its area.
+
+The component portion of the short log identifies the ODP component that this
+patch applies to. A component is required unless the area is a single file, in
+which case it may be omitted. Components should be selected from the following
+list:
+
+buffer::
+Buffers and buffer processing.
+
+classification::
+cls::
+Classification. `cls` may be used as an abbreviation for space if desired.
+
+crypto::
+Crypto.
+
+packet::
+Packets and packet processing.
+
+pktio::
+Packet I/O (pktio) and its related sub-components
+
+pool::
+Buffer pools and related processing.
+
+queue::
+Queues and related processing.
+
+scheduler::
+sched::
+Scheduler and related processing. `sched` may be used as an abbreviation for
+space if desired.
+
+time::
+Time.
+
+timer::
+Timers and related processing.
+
+tm::
+Traffic Manager and related processing.
+
+Following the component the rest of the short log should describe the purpose
+of this patch.
+
+=== Examples
+To illustrate, here are some examples of good and bad short logs:
+
+Good::
+* `api: pool: add new foo attribute to pools`
+* `linux-generic: pool: implement new foo attribute for pools`
+* `validation: pool: test new foo attribute for pools`
+
+Bad::
+* `fix something` (doesn't follow required format)
+* `api: propose a new api` (missing component)
+* `validation: pool: a description that rambles on and on and never gets to
+the point`
+
 == Common Errors in Patch and Commit Messages
 
 - Avoid starting the summary line with a capital letter, unless the component
@@ -92,7 +225,7 @@  Code without a proper signoff cannot be merged into the mainline.
 
 - References to wikipedia are not permitted.
 
-=== Documenting the code
+=== Documenting the Code
 
 - Allow doxygen to use all its default behaviors to identify tagged
   information but where a doxygen tag must be specified use @
@@ -154,6 +287,6 @@  Code without a proper signoff cannot be merged into the mainline.
         image::../<image name>.svg[align="center"]
 ----
 - The images are stored in the doc/images directory as svg files, src for image
-  generators such as .gv and .msg should also render to .svg
+  generators such as .gv and .msc should also render to .svg
 - Body text shall wrap at the 80 char point.
 - No warnings may be generated by the asciidoctor tool.