================================
Getting Started Developing KUnit
================================

Setting Up Your Work Environment
================================

Follow the instructions at :doc:`../usage/index`.

Familiarize Yourself with KUnit's Design
========================================

KUnit's design is discussed in the :doc:`design` section.

Contributing to code in the Linux kernel
========================================

Please follow the guide in the Linux kernel:
https://www.kernel.org/doc/html/latest/#introduction-to-kernel-development

In addition, remember to CC kunit-dev@googlegroups.com and
linux-kselftest@vger.kernel.org.

Contributing to code outside of the Linux kernel
================================================

This section is for contributing code to repos that live outside of
https://git.kernel.org.

Why is there a distinction?
---------------------------

The Linux kernel has been around a lot longer than KUnit, and thus has rules
that we have no say on. However, any code that lives outside of the kernel is
managed by Google; it's open source and everyone has equal right to it, but
because it is under the Google umbrella and not the Linux Foundation's umbrella
it means that there are certain rules we have to follow in one place, and
different rules in the other.

The details are not important, all you have to know is that if you send code to
the Linux kernel you should follow the rules above, and if you are contributing
to any other KUnit repos, you should follow the rules here.

If you still have confusion, feel free to reach out to us.

Sign the Contributor License Agreement
--------------------------------------

For any contributions not sent directly to the Linux kernel via the Linux
kernel mailing lists, we require contributors to sign our Contributor License
Agreement (CLA).

You may sign our CLA here: https://cla.developers.google.com/

.. note::
   Your company may already have a CLA on file with Google.

Submitting Changes
------------------

We use `Gerrit <https://kunit-review.googlesource.com>`_ for all non-upstream
code reviews.

In order for Gerrit to accept your change, you must first make sure your commit
messages are formatted correctly. It should have a:

- ``Change-Id`` - see
  https://gerrit-review.googlesource.com/Documentation/user-changeid.html for
  more information.
- ``Signed-off-by`` - see
  https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin

Now you are ready to send your change for review:

.. code-block:: bash

   git push -u origin HEAD:refs/for/master

For more information on submitting changes through Gerrit, please see the
following section :doc:`gerrit-workflow`.
