incubator-nuttx/Documentation/contributing/workflow.rst

58 lines
2.8 KiB
ReStructuredText

.. todo:: update when workflow is settled
====================
Development Workflow
====================
NuttX development workflow is based around contributions submitted in the form
of GitHub Pull Requests (PR). This is true both for external contributors and
NuttX maintainers, as direct pushes to the repository are not allowed as a
general rule. Once submitted, your PR will be reviewed and checked using
Continuous Integration (CI) practices.
You should be aware of the following:
- All contributions must adhere to the :doc:`Coding Standard <coding_style>`.
You can check your files using ``nxstyle`` or complete patchsets using
``checkpatch`` script (both found in ``tools`` subdirectory of NuttX
prepository). This check will also run automatically during CI to ensure
conformance.
Note that not all existing files in the repository are already adapted to
conform to the standard as this is an ongoing effort. Thus, if you're
submitting a patch to an existing file you may have to make the file conform
to the standard, even if you are not responsible for those standard violations.
It is also appreciated that you separate any styling fixes in a separate
commit from the functional changes so that these are more easily readable
during review.
- Before starting work on any given non trivial contribution, do subscribe to
the mailing list and ask about your idea to avoid wasted effort by going the
wrong-route.
- If you are submitting an original contribution (you wrote the code yourself
from scratch) it will have to be submitted under the terms of the Apache 2.0
License using the corresponding :ref:`header <contributing/coding_style:Appendix>`.
Note that if you are working as an employee in a company, usually copyright
belongs to the company and thus this means the company will have to authorize
this and submit the appropriate license agreements.
- If you are submitting third-party code:
- Code from actively developed projects is not accepted to be included in
NuttX (i.e.: creating a fork). It is expected that changes required in
third-party code for NuttX support are to be implemented in these projects.
As an intermediate solution, it is acceptable to include a patch to be applied
to this third-party code, which will be pulled during built.
- If this is from an inactive project, it may be considered for inclusion in
NuttX, provided that licensing terms allow to do so and it is deemed of
sufficient value to be included, considering that this code will have to
be maintained in NuttX afterwards.
Note that it is undesirable to included non Apache 2.0 Licensed code inside
the repository, even if the license itself allows it (for example BSD License).