Contribution Guidelines
#######################

As an open-source project, we welcome and encourage the community to submit
patches directly to the project.  In our collaborative open source environment,
standards and methods for submitting changes help reduce the chaos that can result
from an active development community.

This document briefly summarizes the full `Contribution
Guidelines <http://docs.zephyrproject.org/latest/contribute/index.html>`_
documentation.

* Zephyr uses the permissive open source `Apache 2.0 license`_
  that allows you to freely use, modify, distribute and sell your own products
  that include Apache 2.0 licensed software.

* There are some imported or reused components of the Zephyr project that
  use other licensing and are clearly identified.

* The Developer Certificate of Origin (DCO) process is followed to
  ensure developers are following licensing criteria for their
  contributions, and documented with a ``Signed-off-by`` line in commits.

* Zephyr development workflow is supported on Linux, macOS, and Windows,
  (with a few exceptions).

* Source code for the project is maintained in the GitHub repo:
  https://github.com/zephyrproject-rtos/zephyr

* Issue and feature tracking is done using GitHub issues in this repo.

* A Continuous Integration (CI) system runs on every Pull Request (PR)
  to verify several aspects of the PR including Git commit formatting,
  Coding Style, sanity checks builds, and documentation builds.

* The `Zephyr devel mailing list`_ is a great place to engage with the
  community, ask questions, discuss issues, and help each other.

.. _Zephyr devel mailing list: https://lists.zephyrproject.org/g/devel
