Contributing to CMake
*********************

Community
=========

CMake is maintained and supported by `Kitware`_ and developed in
collaboration with a productive community of contributors.

.. _`Kitware`: http://www.kitware.com/cmake

The preferred entry point for new contributors is the mailing list.
Please subscribe and post to the `CMake Developers List`_ to offer
contributions.  Regular and productive contributors may be invited
to gain direct push access.

.. _`CMake Developers List`: https://cmake.org/mailman/listinfo/cmake-developers

Patches
=======

Please base all new work on the ``master`` branch.  Then use
``git format-patch`` to produce patches suitable to post to
the mailing list.

License
=======

We do not require any formal copyright assignment or contributor license
agreement.  Any contributions intentionally sent upstream are presumed
to be offered under terms of the OSI-approved BSD 3-clause License.
See `Copyright.txt`_ for details.

.. _`Copyright.txt`: Copyright.txt
