Skip to content

Commit

Permalink
doc: move dev_model and add contribution guide
Browse files Browse the repository at this point in the history
Moved the development model section to top level.
Added contributions guide for the NCS on the top level next to it.
NCSDK-23303.

Signed-off-by: Grzegorz Ferenc <[email protected]>
  • Loading branch information
greg-fer authored and carlescufi committed Dec 19, 2023
1 parent dfe22d4 commit 1fdf022
Show file tree
Hide file tree
Showing 13 changed files with 75 additions and 14 deletions.
2 changes: 1 addition & 1 deletion doc/nrf/create_application.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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 <zephyr:application>`.

.. 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

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
.. _dev-model:
.. _contributions:

Development model
#################
Development model and contributions
###################################

.. contents::
:local:
Expand All @@ -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 <contributions_ncs>`.
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
59 changes: 59 additions & 0 deletions doc/nrf/dev_model_and_contributions/contributions.rst
Original file line number Diff line number Diff line change
@@ -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 <dm_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 <zephyr:contribute_guidelines>`.
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 <zephyr:licensing_requirements>`
- Apache 2.0 in Zephyr.
- `LicenseRef-Nordic-5-Clause <LICENSE file_>`_ in the |NCS|.
* - Respect :ref:`Copyright notices <zephyr:copyrights>`
- 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 <zephyr:DCO>`
- 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 <zephyr:developing_with_zephyr>`
- | 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 <dm_code_base>`.
* - 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 <zephyr:Continuous Integration>` 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 <zephyr:coding_style>` 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 <zephyr:zephyr_doc>`.
- 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|.
1 change: 1 addition & 0 deletions doc/nrf/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ Varied reference designs
libraries/index
scripts
integrations
dev_model_and_contributions
releases_and_maturity
documentation

Expand Down
3 changes: 3 additions & 0 deletions doc/nrf/links.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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/
1 change: 0 additions & 1 deletion doc/nrf/releases_and_maturity.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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:

Expand Down

0 comments on commit 1fdf022

Please sign in to comment.