xref: /dpdk/doc/guides/contributing/new_library.rst (revision 74913fd2e1579af164c81de3c109e9578d709e4d)
1.. SPDX-License-Identifier: BSD-3-Clause
2   Copyright(c) 2023 Marvell.
3
4Adding a new library
5====================
6
7Process for approval in principle
8---------------------------------
9
10Rationale
11~~~~~~~~~
12
13Adding a new library to DPDK with proper RFC and then full patch-sets is a significant work.
14In order to save effort, developers should get an early approval in principle,
15or an early feedback in case the library is not suitable for various reasons.
16
17Process
18~~~~~~~
19
20#. When a contributor would like to add a new library to DPDK code base,
21   the contributor must send the following items to DPDK mailing list
22   for Technical Board approval-in-principle.
23
24   * Purpose of the library.
25   * Scope of work: outline the various additional tasks planned for this library,
26     such as developing new test applications, adding new drivers,
27     and updating existing applications.
28   * Expected usage models of the library.
29   * Any licensing constraints.
30   * Justification for adding to DPDK.
31   * Any other implementations of the same functionality in other libraries/projects
32     and how this version differs.
33   * Public API specification header file as RFC.
34
35     * Optional and good to have.
36     * Technical Board may additionally request this specification collateral
37       if needed to get more clarity on scope and purpose.
38
39   * Any new library dependencies to DPDK.
40
41#. Technical Board to schedule discussion on this in upcoming Technical Board meeting
42   along with author.
43   Based on the Technical Board schedule and/or author availability,
44   Technical Board may need a maximum of **five** Technical Board meeting slots.
45
46#. Based on mailing list and Technical Board meeting discussions,
47   Technical Board to vote and share the decision in the mailing list.
48   The decision outcome can be any of the following:
49
50   * Approved in principle
51   * Not approved
52   * Further information needed
53
54#. Once the Technical Board approves the library in principle,
55   it is safe to start working on the implementation.
56   However, the patches will need to meet the usual quality criteria
57   in order to be effectively accepted.
58