From patchwork Tue Jan 9 14:10:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob Kollanukkaran X-Patchwork-Id: 135808 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 17B0443873; Tue, 9 Jan 2024 15:10:31 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 57B524067A; Tue, 9 Jan 2024 15:10:30 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 919864013F; Tue, 9 Jan 2024 15:10:28 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 409BvaAw018241; Tue, 9 Jan 2024 06:10:27 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding:content-type; s= pfpt0220; bh=HE5p04cjCSNz1Q3MFmwmvSKlHF9aCZ/kdE/yZSu9fUo=; b=S+d IewXvnjpk9qBjJ0ctD5S/vDpwX3hHcszSXsgBKMrPrWvUMyysHsE1ETPChiOB9xw 5/IoIRTgy/v6NoOiOimdEiOtMpMvF+xUC76Qj5EUeLCRWMTD8Vuq1eCxWzGUArnD mO2PZe5jTgx9hirWZpPI2ZH7pJLNeDtoCdr5gSMdbQyl8RlfGq6Zu73OaAKX6QKp 96SIxtqC9vu+a+qmkKIOC3vxzsEvrd8ocYzeM7QbxvZclfhqaqtZQ+uqfIfamNhL 53AlZT23DIvY3Nud0jz5C2tIeP15xaFwoSxCvk7vv25Z6X8aNEGrOlq7d3pDbXiy g+7RY/8pPw8l+qWoMIg== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3vh5qt0edq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 09 Jan 2024 06:10:26 -0800 (PST) Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Tue, 9 Jan 2024 06:10:25 -0800 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Tue, 9 Jan 2024 06:10:25 -0800 Received: from jerin-lab.marvell.com (jerin-lab.marvell.com [10.28.34.14]) by maili.marvell.com (Postfix) with ESMTP id 54ABD3F7055; Tue, 9 Jan 2024 06:10:23 -0800 (PST) From: To: CC: , , Jerin Jacob , Thomas Monjalon Subject: [dpdk-dev] [v6] doc: define qualification criteria for external library Date: Tue, 9 Jan 2024 19:40:09 +0530 Message-ID: <20240109141009.497807-1-jerinj@marvell.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240108075850.4151361-1-jerinj@marvell.com> References: <20240108075850.4151361-1-jerinj@marvell.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: F1sXU0O0x-frxN42319di4O23oYyZFtW X-Proofpoint-GUID: F1sXU0O0x-frxN42319di4O23oYyZFtW X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-09_02,2023-12-07_01,2023-05-22_02 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Jerin Jacob 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 Acked-by: Thomas Monjalon Acked-by: Hemant Agrawal --- v6: - Address Morten's comments at https://mails.dpdk.org/archives/dev/2024-January/285029.html v5: - Added "Dependency nature" section based on Stephen's input v4: - Address Thomas comments from https://patches.dpdk.org/project/dpdk/patch/20240105121215.3950532-1-jerinj@marvell.com/ 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. doc/guides/contributing/index.rst | 1 + .../contributing/library_dependency.rst | 53 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 doc/guides/contributing/library_dependency.rst 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..3b275f1c52 --- /dev/null +++ b/doc/guides/contributing/library_dependency.rst @@ -0,0 +1,53 @@ +.. 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. +The final decision to accept or reject is at the discretion of the DPDK Project's Technical Board. + +#. **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. + +#. **Distribution License:** + + - No specific constraints, but clear documentation on distribution usage aspects is required. + +#. **Compiler compatibility:** + + - The library must be able to compile with a DPDK supported compiler for the given target + 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 and/or specific hardware. + +#. **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. + +#. **Dependency nature:** + + - The external library dependency must be optional. + i.e Missing external library must not impact the core functionality of the DPDK, specific + library and/or driver will not be built if dependencies are not met.