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