blob: a6c2998a818556130da92bb1108dc713a432c8ee [file] [log] [blame]
Anas Nashiff09948b2022-04-05 09:25:00 -04001.. _contribute_to_zephyr:
David B. Kinder2d4728d2017-07-27 17:04:04 -07002
Anas Nashiff09948b2022-04-05 09:25:00 -04003Contributing to Zephyr
4######################
Anas Nashif541b2612021-04-16 10:15:06 -04005
Benjamin Cabé6db5d842023-10-04 21:51:16 +02006Contributions from the community are the backbone of the project. Whether it is by submitting code,
7improving documentation, or proposing new features, your efforts are highly appreciated. This page
8lists useful resources and guidelines to help you in your contribution journey.
9
10General Guidelines
11==================
12
Anas Nashifdd41aca2021-05-05 20:16:14 -040013.. toctree::
14 :maxdepth: 1
Benjamin Cabé6db5d842023-10-04 21:51:16 +020015 :hidden:
Anas Nashifdd41aca2021-05-05 20:16:14 -040016
Anas Nashiff09948b2022-04-05 09:25:00 -040017 guidelines.rst
Anas Nashif4cecaf02025-01-16 07:44:44 -050018 contributor_expectations.rst
Anas Nashif09a0beb2025-01-19 13:07:22 -050019 reviewer_expectations.rst
Anas Nashifdd41aca2021-05-05 20:16:14 -040020 coding_guidelines/index.rst
Anas Nashifb1043de2025-01-22 07:58:28 -050021 style/index.rst
Benjamin Cabé6db5d842023-10-04 21:51:16 +020022 proposals_and_rfcs.rst
Anas Nashif831a0182025-01-16 12:21:12 -050023 modifying_contributions.rst
24
Benjamin Cabé6db5d842023-10-04 21:51:16 +020025
26:ref:`contribute_guidelines`
27 Learn about the overall process and guidelines for contributing to the Zephyr project.
28
29 This page is a mandatory read for first-time contributors as it contains important information on
30 how to ensure your contribution can be considered for inclusion in the project and potentially
31 merged.
32
33:ref:`contributor-expectations`
Benjamin Cabédf294e32024-09-10 19:51:57 +020034 This document is another mandatory read that describes the expected behavior of *all*
Benjamin Cabé6db5d842023-10-04 21:51:16 +020035 contributors to the project.
36
Anas Nashif09a0beb2025-01-19 13:07:22 -050037:ref:`reviewer-expectations`
38 This document is another mandatory read that describes the expected behavior when revieweing
39 contributions to the project.
40
Benjamin Cabé6db5d842023-10-04 21:51:16 +020041:ref:`coding_guidelines`
42 Code contributions are expected to follow a set of coding guidelines to ensure consistency and
43 readability across the code base.
44
Anas Nashif22b1e702025-01-20 08:33:28 -050045:ref:`coding_style`
46 Code contributions are expected to follow a set of style guidelines to ensure consistency and
47 readability across the code base.
Benjamin Cabé6db5d842023-10-04 21:51:16 +020048
49:ref:`rfcs`
50 Learn when and how to submit RFCs (Request for Comments) for new features and changes to the
51 project.
52
Anas Nashif831a0182025-01-16 12:21:12 -050053:ref:`modifying_contributions`
54 Guidelines for modifying contributions made by other developers and how to deal with stale pull
55 requests.
56
Benjamin Cabé6db5d842023-10-04 21:51:16 +020057Documentation
58=============
59
60The Zephyr project thrives on good documentation. Whether it is as part of a code contribution or
61as a standalone effort, contributing documentation is particularly valuable to the project.
62
63.. toctree::
64 :maxdepth: 1
65 :hidden:
66
67 documentation/guidelines.rst
68 documentation/generation.rst
69
70:ref:`doc_guidelines`
71 This page provides some simple guidelines for writing documentation using the reSTructuredText
72 (reST) markup language and Sphinx documentation generator.
73
74:ref:`zephyr_doc`
75 As you write documentation, it can be helpful to see how it will look when rendered.
76
77 This page describes how to build the Zephyr documentation locally.
78
79
80Dealing with external components
81================================
82
83.. toctree::
84 :maxdepth: 1
85 :hidden:
86
Carles Cufif938cc42021-02-17 17:31:12 +010087 external.rst
Carles Cufi2c301fe2022-06-28 16:21:58 +020088 bin_blobs.rst
Benjamin Cabé6db5d842023-10-04 21:51:16 +020089
90:ref:`external-contributions`
91 Basic functionality or features that would make useful addition to Zephyr might be readily
92 available in other open source projects, and it is recommended and encouraged to reuse such code.
93 This page describes in more details when and how to import external source code into Zephyr.
94
95:ref:`external-tooling`
96 Similarly, external tooling used during compilation, code analysis, testing or simulation, can be
97 beneficial and is covered in this section.
98
99:ref:`bin-blobs`
100 As some functionality might only be made available with the help of executable code distributed
101 in binary form, this page describes the process and guidelines for :ref:`contributing binary
102 blobs <blobs-process>` to the project.
103
Benjamin Cabé6db5d842023-10-04 21:51:16 +0200104Need help along the way?
105========================
106
107If you have questions related to the contribution process, the Zephyr community is here to help.
108You may join our Discord_ channel or use the `Developer Mailing List`_.
109
110
111.. _Discord: https://chat.zephyrproject.org
112.. _Developer Mailing List: https://lists.zephyrproject.org/g/devel