Lines Matching +full:merge +full:- +full:commit
7 order to avoid reinventing the wheel and to reuse as much well-established,
14 modules, an external project is required to have its own life-cycle outside
29 - Debugger integration
30 - Silicon vendor Hardware Abstraction Layers (HALs)
31 - Cryptography libraries
32 - File Systems
33 - Inter-Process Communication (IPC) libraries
36 references to optional :ref:`binary blobs <bin-blobs>`.
41 .. _modules-vs-projects:
47 <west-workspace>`. In fact, modules :ref:`do not require west
55 :ref:`West projects <west-manifests-projects>` are entries in the ``projects:``
71 under the zephyrproject-rtos GitHub organization.
104 beginning with the module-name. (E.g., mcuboot should expose its
120 ----------------------------------
125 *Rebase and merge*, or *Create a merge commit* option using Github UI). This
134 Force-pushing to a module's main branch is not allowed.
137 -----------------
146 Upstream changes brought as a single *snapshot* commit (manual diff) in a
148 the *Rebase & merge* operation. This approach is simple and
157 The commit message is expected to identify the upstream project URL, the
158 version to which the module is updated (upstream version, tag, commit SHA,
162 Upstream changes brought in by performing a Git merge of the intended upstream
165 the *Create a merge commit* operation.
168 (that is, the original commit SHAs) is preserved in the module repository. The
169 downside of this approach is that two additional merge commits are generated in
197 * be the default assignee in pull-requests against the repository's
217 responsibility to merge approved pull requests in the main branch of a
255 Non-trivial changes to a module's codebase, including changes in the module
264 -----------------------
305 and they contain a permissive OSI-compliant license. Main license files
336 --------------
350 * synchronization information with the external project (commit, SHA, version etc.)
433 ``-DEXTRA_ZEPHYR_MODULES=/<path>/foo`` then the module given by the command
444 See :ref:`west-basics` for more on west workspaces.
449 .. _module-yml:
464 ensure the module name is not changeable through user-defined directory names
467 .. code-block:: yaml
478 converted to uppercase and all non-alphanumeric characters are converted
480 As example, the module ``foo-bar`` must be referred to as
485 .. code-block:: yaml
496 Module integration files (in-module)
502 .. code-block:: yaml
505 cmake: <cmake-directory>
508 The ``cmake: <cmake-directory>`` part specifies that
509 :file:`<cmake-directory>` contains the :file:`CMakeLists.txt` to use. The
518 .. code-block:: yaml
533 sysbuild-specific build files, :file:`CMakeLists.txt` and :file:`Kconfig`, can
536 .. code-block:: yaml
539 sysbuild-cmake: <cmake-directory>
540 sysbuild-kconfig: <directory>/Kconfig
542 The ``sysbuild-cmake: <cmake-directory>`` part specifies that
543 :file:`<cmake-directory>` contains the :file:`CMakeLists.txt` to use. The
544 ``sysbuild-kconfig: <directory>/Kconfig`` part specifies the Kconfig file to
551 .. code-block:: yaml
554 sysbuild-cmake: sysbuild
555 sysbuild-kconfig: sysbuild/Kconfig
563 .. code-block:: yaml
566 sysbuild-cmake-ext: True
567 sysbuild-kconfig-ext: True
572 .. _modules-vulnerability-monitoring:
581 It contains the field ``external-references`` that contains a list of references that needs to
584 - CPE (Common Platform Enumeration)
585 - PURL (Package URL)
587 .. code-block:: yaml
590 external-references:
591 - <module-related-cpe>
592 - <an-other-module-related-cpe>
593 - <module-related-purl>
597 .. code-block:: yaml
600 external-references:
601 - cpe:2.3:a:arm:mbed_tls:3.5.2:*:*:*:*:*:*:*
602 - pkg:github/Mbed-TLS/mbedtls@V3.5.2
606 <https://csrc.nist.gov/projects/security-content-automation-protocol/specifications/cpe>`_.
608 <https://github.com/package-url/purl-spec/blob/master/PURL-SPECIFICATION.rst>`_.
619 --------------
639 - In CMake: use ``${ZEPHYR_FOO_MODULE_DIR}`` for the module's top level directory, and ``${ZEPHYR_F…
640 - In Kconfig: use ``$(ZEPHYR_FOO_MODULE_DIR)`` for the module's top level directory
648 .. code-block:: cmake
657 .. code-block:: kconfig
664 - the current module's name: ``${ZEPHYR_CURRENT_MODULE_NAME}``
665 - the current module's top level directory: ``${ZEPHYR_CURRENT_MODULE_DIR}``
666 - the current module's :file:`CMakeLists.txt` directory: ``${ZEPHYR_CURRENT_CMAKE_DIR}``
672 .. code-block:: cmake
682 .. code-block:: cmake
691 ----------------
702 - In CMake: use ``${SYSBUILD_CURRENT_MODULE_DIR}`` for the module's top level
705 - In Kconfig: use ``$(SYSBUILD_CURRENT_MODULE_DIR)`` for the module's top level
711 .. code-block:: kconfig
718 .. code-block:: cmake
728 .. code-block:: cmake
734 ----------------------
737 a function which will be invoked by sysbuild at a pre-defined point in the
742 - ``<module-name>_pre_cmake(IMAGES <images>)``: This function is called for each
744 - ``<module-name>_post_cmake(IMAGES <images>)``: This function is called for each
746 - ``<module-name>_pre_domains(IMAGES <images>)``: This function is called for each
748 - ``<module-name>_post_domains(IMAGES <images>)``: This function is called for each
753 - ``<images>`` is the list of Zephyr images that will be created by the build system.
764 .. code-block:: cmake
782 .. code-block:: yaml
786 - <module>
791 .. code-block:: yaml
796 - bar
812 ----------------------------------
819 .. code-block:: none
828 ---------------------------------------------
835 .. code-block:: none
844 and then build your application by specifying ``-DMODULE_EXT_ROOT`` parameter to
873 .. code-block:: none
884 .. code-block:: cmake
890 --------------------------------------------
898 .. code-block:: yaml
901 cmake-ext: True
902 kconfig-ext: True
921 - ``board_root``: Contains additional boards that are available to the build
924 - ``dts_root``: Contains additional dts files related to the architecture/soc
927 - ``snippet_root``: Contains additional snippets that are available for use.
931 :file:`snippet.yml` files in :file:`<your-module>/foo/snippets` or any
933 - ``soc_root``: Contains additional SoCs that are available to the build
935 - ``arch_root``: Contains additional architectures that are available to the
938 - ``module_ext_root``: Contains :file:`CMakeLists.txt` and :file:`Kconfig` files
940 - ``sca_root``: Contains additional :ref:`SCA <sca>` tool implementations
948 .. code-block:: yaml
961 .. code-block:: none
963 <zephyr-module-root>
981 .. code-block:: yaml
986 - samples
988 - tests
990 - boards
992 .. _modules-bin-blobs:
997 Zephyr supports fetching and using :ref:`binary blobs <bin-blobs>`, and their
1002 Binary blobs are fetched using :ref:`west blobs <west-blobs>`. If ``west`` is
1009 - ``path``: The path to the binary blob, relative to the :file:`zephyr/blobs/`
1011 - ``sha256``: `SHA-256 <https://en.wikipedia.org/wiki/SHA-2>`_ checksum of the
1013 - ``type``: The :ref:`type of binary blob <bin-blobs-types>`. Currently limited
1015 - ``version``: A version string
1016 - ``license-path``: Path to the license file for this blob, relative to the root
1018 - ``url``: URL that identifies the location the blob will be fetched from, as
1020 - ``description``: Human-readable description of the binary blob
1021 - ``doc-url``: A URL pointing to the location of the official documentation for
1036 ----------
1039 Passing ``--install`` installs these if there's an active virtual environment.
1045 .. code-block:: yaml
1047 package-managers:
1049 requirement-files:
1050 - scripts/requirements-build.txt
1051 - scripts/requirements-doc.txt
1054 .. _modules-runners:
1059 If a module has out of tree boards that require custom :ref:`runners <west-runner>`,
1063 .. code-block:: yaml
1066 - file: scripts/my-runner.py
1078 ----------
1082 those. It does this by running :ref:`west list <west-built-in-misc>` to get
1088 - If the project contains a file named :file:`zephyr/module.yml`, then the
1092 - Otherwise (i.e. if the project has no :file:`zephyr/module.yml`), the
1097 - If neither of those checks succeed, the project is not considered a module,
1103 ------------
1114 .. code-block:: console
1116 cmake -DZEPHYR_MODULES=<path-to-module1>[;<path-to-module2>[...]] ...
1120 .. code-block:: cmake
1122 set(ZEPHYR_MODULES <path-to-module1> <path-to-module2> [...])
1128 #. In a separate CMake script which is pre-loaded to populate the CMake cache,
1131 .. code-block:: cmake
1133 # Put this in a file with a name like "zephyr-modules.cmake"
1134 set(ZEPHYR_MODULES <path-to-module1> <path-to-module2>
1135 CACHE STRING "pre-cached modules")
1137 You can tell the build system to use this file by adding ``-C
1138 zephyr-modules.cmake`` to your CMake command line.
1141 -----------------
1154 of the tree we use the commit hash, a tag, or a branch name. For pull requests
1160 request should be marked as ``DNM`` (Do Not Merge) or preferably a draft pull
1162 be merged first and be assigned a permanent commit hash. Drafts reduce noise by
1166 maintainer to the commit hash of the module which reflects the changes.
1177 Please follow the process in :ref:`external-src-process` and obtain the TSC
1195 .. code-block:: console
1197 - name: <name of repository>
1204 .. code-block:: console
1206 - name: my_module
1213 revision needs to be changed to the commit hash from the module repository.
1222 :ref:`expectations <contributor-expectations>`.
1227 .. code-block:: console
1229 - name: <name of repository>
1236 .. code-block:: console
1238 - name: my_module
1244 revision needs to be changed to the commit hash from the module repository.
1248 .. _CMake list: https://cmake.org/cmake/help/latest/manual/cmake-language.7.html#lists
1250 .. _GitHub issues: https://github.com/zephyrproject-rtos/zephyr/issues
1251 .. _requirement files: https://pip.pypa.io/en/stable/reference/requirements-file-format/