Lines Matching +full:open +full:- +full:source

1 .. _external-contributions:
6 In some cases it is desirable to leverage existing, external source code in
7 order to avoid re-implementing basic functionality or features that are readily
8 available in other open source projects.
10 This section describes the circumstances under which external source code can be
21 :ref:`external-tooling` section at the end of the page.
28 External source code licensed under the Apache-2.0 license is not subject to
35 have not been approved by the `Open Source Initiative (OSI)`_. See the
36 :ref:`external-src-process` section for more details.
42 https://www.zephyrproject.org/wp-content/uploads/2023/08/LF-Zephyr-Charter-2023.08.21.pdf
44 .. _Open Source Initiative (OSI):
59 Committee and evaluated carefully before the external source code is accepted
62 - Is this the most optimal way to introduce the functionality to the project?
65 - Is the external project being actively maintained? This is particularly
66 important for source code that deals with security or cryptography.
67 - Have alternatives to the particular implementation proposed been considered?
68 Are there other open source project that implement the same functionality?
73 There are two ways of integrating external source code into the Zephyr Project,
80 The first way to integrate external source code into the project is to simply
81 import the source code files into the main ``zephyr`` repository. This
82 automatically implies that the imported source code becomes part of the
85 - The code is formatted according to the Zephyr :ref:`coding_style`
86 - The code adheres to the project's :ref:`coding_guidelines`
87 - The code is subject to the same checks and verification requirements as the
89 - All files contain an SPDX tag if not already present
90 - If the source is not Apache 2.0 licensed,
99 The second way of integrating external source code into the project is to import
100 the whole or parts of the third-party open source project into a separate
107 ---------------------------------------------
120 -------------------------------
140 -------------------------------
143 documentation using a pre-defined template. This type of modules exists outside the
150 Regardless of the mode of integration, external source code that is integrated
152 integrate external source code must therefore commit to maintain the integration
157 .. _external-src-process:
162 Before external source code can be included in the project, it must be reviewed
166 A request for external source code integration must be made by creating a new
168 about the source code and how it integrates into the project.
172 #. Make sure to read through the :ref:`external-contributions` section in
175 #. Use the :github:`New External Source Code Issue
176 <new?assignees=&labels=RFC&template=007_ext-source.md&title=>` to open an issue
179 Request that demonstrates the integration of the external source code and
185 source code is the best solution, and the external source code is licensed under
186 the Apache-2.0 license, the submission process is complete and the external
187 source code can be integrated.
189 If, however, the external source code uses a license other than Apache-2.0,
197 - If there are no objections, the matter is closed. Approval can be
201 - If a governing board member raises an objection that cannot be resolved
211 .. figure:: media/ext-src-flowchart.svg
216 .. _external-tooling:
228 apply to 3rd-party tooling such as toolchains, simulators or others, which may
233 `Open Source Initiative (OSI)`_.
237 project <west-workspace>`. Note that in this case the corresponding west project
240 :ref:`modules-vs-projects` for additional information on the differences.
245 hosted outside the zephyrproject-rtos GitHub organization, provided that the
246 project is made optional via the ``group-filter:`` field in the main
248 :ref:`this section <west-manifest-groups>`.
251 component. This will be done on a case-by-case, individual analysis of the
261 - Adding and removing groups and group filters
262 - Adding and removing projects
263 - Adding and removing ``import`` statements
266 https://github.com/zephyrproject-rtos/zephyr/blob/main/west.yml