diff --git a/doc/nrf/create_application.rst b/doc/nrf/create_application.rst index 5db5ba7b06a..4aab767ed10 100644 --- a/doc/nrf/create_application.rst +++ b/doc/nrf/create_application.rst @@ -182,7 +182,7 @@ Use the following steps depending on the application type: This recommended process for command line takes advantage of Nordic Semiconductor's example application template repository, similar to the example application used for :ref:`creating an application in Zephyr `. - .. include:: /releases_and_maturity/developing/adding_code.rst + .. include:: /dev_model_and_contributions/adding_code.rst :start-after: example_app_start :end-before: example_app_end diff --git a/doc/nrf/releases_and_maturity/dev_model.rst b/doc/nrf/dev_model_and_contributions.rst similarity index 59% rename from doc/nrf/releases_and_maturity/dev_model.rst rename to doc/nrf/dev_model_and_contributions.rst index 29ff0e7e349..74a1569cebc 100644 --- a/doc/nrf/releases_and_maturity/dev_model.rst +++ b/doc/nrf/dev_model_and_contributions.rst @@ -1,7 +1,8 @@ .. _dev-model: +.. _contributions: -Development model -################# +Development model and contributions +################################### .. contents:: :local: @@ -12,18 +13,16 @@ The |NCS| follows a development model that gives users access to both stable rel The |NCS| is an SDK that is openly developed and maintained by Nordic Semiconductor. It is based both on code developed by Nordic Semiconductor engineers and on open-source software projects, which in turn are developed collaboratively by many contributors. -Users can continuously track the development progress of the |NCS| and even contribute to it. +Users can continuously track the development progress of the |NCS| and even :ref:`contribute to it `. This includes both the Nordic-specific and the open-source portions of the SDK. -Any individual or company can choose to contribute to the |NCS| codebase. -Contributions are welcome but entirely optional, as the licenses used by the |NCS| allow for free modification of the source code without a requirement to contribute the changes back. - .. toctree:: :maxdepth: 2 :caption: Subpages: - developing/code_base - developing/managing_code - developing/adding_code - developing/ncs_distro - developing/licenses + dev_model_and_contributions/code_base + dev_model_and_contributions/managing_code + dev_model_and_contributions/adding_code + dev_model_and_contributions/ncs_distro + dev_model_and_contributions/licenses + dev_model_and_contributions/contributions diff --git a/doc/nrf/releases_and_maturity/developing/adding_code.rst b/doc/nrf/dev_model_and_contributions/adding_code.rst similarity index 100% rename from doc/nrf/releases_and_maturity/developing/adding_code.rst rename to doc/nrf/dev_model_and_contributions/adding_code.rst diff --git a/doc/nrf/releases_and_maturity/developing/code_base.rst b/doc/nrf/dev_model_and_contributions/code_base.rst similarity index 100% rename from doc/nrf/releases_and_maturity/developing/code_base.rst rename to doc/nrf/dev_model_and_contributions/code_base.rst diff --git a/doc/nrf/dev_model_and_contributions/contributions.rst b/doc/nrf/dev_model_and_contributions/contributions.rst new file mode 100644 index 00000000000..574ca53365d --- /dev/null +++ b/doc/nrf/dev_model_and_contributions/contributions.rst @@ -0,0 +1,59 @@ +.. _contributions_ncs: + +Contribution guidelines in the |NCS| +#################################### + +.. contents:: + :local: + :depth: 2 + +Any individual or company can choose to contribute to the |NCS| codebase. +Contributions are welcome but entirely optional, as the :ref:`licenses ` used by the |NCS| allow for free modification of the source code without a requirement to contribute the changes back. + +The |NCS| contribution guidelines are modelled on :ref:`those adopted in Zephyr `. +The following table lists the major contribution guidelines and summarizes the similarities and differences between Zephyr and the |NCS|. + +.. note:: + If you want to contribute to the Zephyr codebase, create a PR upstream in the `official Zephyr repository`_ instead of a PR that targets the `sdk-zephyr`_ :term:`downstream fork` repository. + +.. list-table:: Contribution guidelines in Zephyr and the |NCS| + :widths: auto + :header-rows: 1 + + * - :ref:`zephyr:contribute_guidelines` in Zephyr + - Description + - Differences with the |NCS| + * - Check :ref:`Licensing ` + - Apache 2.0 in Zephyr. + - `LicenseRef-Nordic-5-Clause `_ in the |NCS|. + * - Respect :ref:`Copyright notices ` + - Recognize the ownership of the original work according to the Linux Foundation's `Community Best Practice for Copyright Notice`_. + - Zephyr guidelines valid in the |NCS|. + * - Include :ref:`Developer Certification of Origin ` + - The DCO is required for every contribution made by every developer. + - Zephyr guidelines valid in the |NCS|. + * - Gain familiarity with :ref:`development environment and tools ` + - | The environment should be set up as recommended in the official documentation and you should use tools that are supported and compatible with the project, such as Git and CMake. + | You also need to create an account on `GitHub`_. + - The |NCS| also requires familiarity with the :ref:`requirements_toolchain` and :ref:`app_build_additions` to the configuration and build system. + * - Gain familiarity with source tree structure + - In Zephyr, this means respecting the :ref:`zephyr:source_tree_v2` and the purpose of main files and directories in order to avoid redundancy. + - While the guidelines are valid for the |NCS|, the SDK uses a different :ref:`repository organization `. + * - Check issues before contributing + - When contributing, check the existing pull requests and issues in the respective repository in order to avoid redundancy. + - In the |NCS|, verify also the existing :ref:`known_issues`. + * - Run local scripts before contributing + - :ref:`Run a series of local scripts ` to verify the code changes that are to be contributed. + - Zephyr guidelines valid in the |NCS|. + * - Respect the coding style + - Follow a series of :ref:`coding style recommendations ` and :ref:`zephyr:coding_guidelines`. + - Zephyr guidelines valid in the |NCS|. + * - Document changes to code and API + - Follow :ref:`zephyr:doc_guidelines` and instructions for :ref:`testing changes to documentation locally `. + - In the |NCS|, documentation guidelines are more detailed than in Zephyr, as described in :ref:`documentation`. + * - Make small, controlled changes + - Follow a :ref:`zephyr:Contribution workflow` based on small, incremental changes. See also :ref:`zephyr:contributor-expectations`. + - Zephyr guidelines valid in the |NCS|. + * - Write clear commit messages + - See Zephyr's :ref:`zephyr:commit-guidelines` for more information. + - Zephyr guidelines valid in the |NCS|. diff --git a/doc/nrf/releases_and_maturity/developing/images/ncs-west-repos.svg b/doc/nrf/dev_model_and_contributions/images/ncs-west-repos.svg similarity index 100% rename from doc/nrf/releases_and_maturity/developing/images/ncs-west-repos.svg rename to doc/nrf/dev_model_and_contributions/images/ncs-west-repos.svg diff --git a/doc/nrf/releases_and_maturity/developing/licenses.rst b/doc/nrf/dev_model_and_contributions/licenses.rst similarity index 100% rename from doc/nrf/releases_and_maturity/developing/licenses.rst rename to doc/nrf/dev_model_and_contributions/licenses.rst diff --git a/doc/nrf/releases_and_maturity/developing/managing_code.rst b/doc/nrf/dev_model_and_contributions/managing_code.rst similarity index 100% rename from doc/nrf/releases_and_maturity/developing/managing_code.rst rename to doc/nrf/dev_model_and_contributions/managing_code.rst diff --git a/doc/nrf/releases_and_maturity/developing/ncs_distro.rst b/doc/nrf/dev_model_and_contributions/ncs_distro.rst similarity index 100% rename from doc/nrf/releases_and_maturity/developing/ncs_distro.rst rename to doc/nrf/dev_model_and_contributions/ncs_distro.rst diff --git a/doc/nrf/index.rst b/doc/nrf/index.rst index 7bdfa28e700..ec9d9d76825 100644 --- a/doc/nrf/index.rst +++ b/doc/nrf/index.rst @@ -51,6 +51,7 @@ Varied reference designs libraries/index scripts integrations + dev_model_and_contributions releases_and_maturity documentation diff --git a/doc/nrf/links.txt b/doc/nrf/links.txt index 56a74f894f8..af95d6f2b49 100644 --- a/doc/nrf/links.txt +++ b/doc/nrf/links.txt @@ -83,6 +83,7 @@ .. _`nrf9160dk_nrf9160_partition_conf.dts`: https://github.com/nrfconnect/sdk-zephyr/blob/main/boards/arm/nrf9160dk_nrf9160/nrf9160dk_nrf9160_partition_conf.dts .. _`west manifest file`: https://github.com/nrfconnect/sdk-nrf/blob/main/west.yml +.. _`LICENSE file`: https://github.com/nrfconnect/sdk-nrf/blob/main/LICENSE .. _`tests/unity/example_test/CMakeLists.txt`: https://github.com/nrfconnect/sdk-nrf/blob/main/tests/unity/example_test/CMakeLists.txt @@ -1345,3 +1346,5 @@ .. _`Sidewalk documentation`: https://nrfconnect.github.io/sdk-sidewalk/ .. _`Setting up the SDK for Amazon Sidewalk`: https://nrfconnect.github.io/sdk-sidewalk/setting_up_sidewalk_environment/setting_up_sdk.html + +.. _`Community Best Practice for Copyright Notice`: https://www.linuxfoundation.org/blog/copyright-notices-in-open-source-software-projects/ diff --git a/doc/nrf/releases_and_maturity.rst b/doc/nrf/releases_and_maturity.rst index 9e6ca05ad1e..83505d50be4 100644 --- a/doc/nrf/releases_and_maturity.rst +++ b/doc/nrf/releases_and_maturity.rst @@ -22,7 +22,6 @@ If an issue is found in a release after it has taken place, those issues are lis :maxdepth: 1 :caption: Subpages: - releases_and_maturity/dev_model releases_and_maturity/release_notes releases_and_maturity/migration_guides releases_and_maturity/repository_revisions diff --git a/doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst b/doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst index 1d766ddc9c8..52d0d224cad 100644 --- a/doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst +++ b/doc/nrf/releases_and_maturity/releases/release-notes-changelog.rst @@ -742,8 +742,8 @@ Documentation * A page on :ref:`ug_nrf70_developing_debugging` in the :ref:`ug_nrf70_developing` user guide. * A page on :ref:`ug_nrf70_developing_fw_patch_ext_flash` in the :ref:`ug_nrf70_developing` user guide. - * A page on :ref:`ug_nrf70_developing_raw_ieee_80211_packet_transmission` in the :ref:`ug_nrf70_developing` user guide. + * :ref:`contributions_ncs` page in a new :ref:`contributions` section that also includes the development model pages, previously listed under :ref:`releases_and_maturity`. * Updated: