From: Jerin Jacob <jer...@marvell.com> Define qualification criteria for external library based on a techboard meeting minutes [1] and past learnings from mailing list discussion.
[1] http://mails.dpdk.org/archives/dev/2019-June/135847.html https://mails.dpdk.org/archives/dev/2024-January/284849.html Signed-off-by: Jerin Jacob <jer...@marvell.com> --- doc/guides/contributing/index.rst | 1 + .../contributing/library_dependency.rst | 45 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 doc/guides/contributing/library_dependency.rst v3: - Updated the content based on TB discussion which is documented at https://mails.dpdk.org/archives/dev/2024-January/284849.html v2: - Added "Meson build integration" and "Code readability" sections. diff --git a/doc/guides/contributing/index.rst b/doc/guides/contributing/index.rst index dcb9b1fbf0..e5a8c2b0a3 100644 --- a/doc/guides/contributing/index.rst +++ b/doc/guides/contributing/index.rst @@ -15,6 +15,7 @@ Contributor's Guidelines documentation unit_test new_library + library_dependency patches vulnerability stable diff --git a/doc/guides/contributing/library_dependency.rst b/doc/guides/contributing/library_dependency.rst new file mode 100644 index 0000000000..4242919475 --- /dev/null +++ b/doc/guides/contributing/library_dependency.rst @@ -0,0 +1,45 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright(c) 2024 Marvell. + +External Library dependency +=========================== + +This document defines the qualification criteria for external libraries that may be +used as dependencies in DPDK drivers or libraries. + +#. **Documentation:** + + - Must have adequate documentation for the steps to build it. + - Must have clear license documentation on distribution and usage aspects of external library. + +#. **Free availability:** + + - The library must be freely available to build in either source or binary form. + - It shall be downloadable from a direct link. There shall not be any requirement to explicitly + login or sign a user agreement. + +#. **Usage License:** + + - Both permissive (e.g., BSD-3 or Apache) and non-permissive (e.g., GPLv3) licenses are acceptable. + - In the case of a permissive license, automatic inclusion in the build process is assumed. + For non-permissive licenses, an additional build configuration option is required. + +#. **Distributions License:** + + - No specific constraints beyond documentation. + +#. **Compiler compatibility:** + + - The library must be able to compile with a DPDK supported compiler for the given execution + environment. For example, For Linux, the library must be able to compile with GCC and/or clang. + - Library may be limited to a specific OS. + +#. **Meson build integration:** + + - The library must have standard method like ``pkg-config`` for seamless integration with + DPDK's build environment. + +#. **Code readability:** + + - Optional dependencies should use stubs to minimize ``ifdef`` clutter, promoting improved + code readability. -- 2.43.0