| Contributing to CMake | |
| ********************* | |
| The following summarizes the process for contributing changes. | |
| See documentation on `CMake Development`_ for more information. | |
| .. _`CMake Development`: Help/dev/README.rst | |
| Community | |
| ========= | |
| CMake is maintained and supported by `Kitware`_ and developed in | |
| collaboration with a productive community of contributors. | |
| Please post to the ``Development`` category of the `CMake Forum`_ to raise | |
| discussion of development topics. | |
| .. _`Kitware`: https://www.kitware.com/cmake | |
| .. _`CMake Forum`: https://discourse.cmake.org | |
| Patches | |
| ======= | |
| CMake uses `Kitware's GitLab Instance`_ to manage development and code review. | |
| To contribute patches: | |
| #. Fork the upstream `CMake Repository`_ into a personal account. | |
| #. Run `Utilities/SetupForDevelopment.sh`_ for local git configuration. | |
| #. See `Building CMake`_ for building CMake locally. | |
| Optionally, see the `CMake Dev Container Guide`_ for a ready-made | |
| development environment. | |
| #. See the `CMake Source Code Guide`_ for coding guidelines | |
| and the `CMake Testing Guide`_ for testing instructions. | |
| #. Create a topic branch named suitably for your work. | |
| Base all new work on the upstream ``master`` branch. | |
| Base work on the upstream ``release`` branch only if it fixes a | |
| regression or bug in a feature new to that release. | |
| If in doubt, prefer ``master``. Reviewers may simply ask for | |
| a rebase if deemed appropriate in particular cases. | |
| #. Create commits making incremental, distinct, logically complete changes | |
| with appropriate `commit messages`_. | |
| #. Push the topic branch to a personal repository fork on GitLab. | |
| #. Create a GitLab Merge Request targeting the upstream ``master`` branch | |
| (even if the change is intended for merge to the ``release`` branch). | |
| Check the box labeled "Allow commits from members who can merge to the | |
| target branch". This will allow maintainers to make minor edits on your | |
| behalf. | |
| The merge request will enter the `CMake Review Process`_ for consideration. | |
| Please note `CMake's AI policy`_ if using AI tools or services as part of | |
| preparing or submitting a change. | |
| .. _`Kitware's GitLab Instance`: https://gitlab.kitware.com | |
| .. _`CMake Repository`: https://gitlab.kitware.com/cmake/cmake | |
| .. _`Utilities/SetupForDevelopment.sh`: Utilities/SetupForDevelopment.sh | |
| .. _`Building CMake`: README.rst#building-cmake | |
| .. _`CMake Dev Container Guide`: Help/dev/devcontainer.rst | |
| .. _`CMake Source Code Guide`: Help/dev/source.rst | |
| .. _`CMake Testing Guide`: Help/dev/testing.rst | |
| .. _`commit messages`: Help/dev/review.rst#commit-messages | |
| .. _`CMake Review Process`: Help/dev/review.rst | |
| .. _`CMake's AI policy`: Help/dev/ai-policy.rst | |
| CMake Dashboard Client | |
| ====================== | |
| The *integration testing* step of the `CMake Review Process`_ uses a set of | |
| testing machines that follow an integration branch on their own schedule to | |
| drive testing and submit results to the `CMake CDash Page`_. Anyone is | |
| welcome to provide testing machines in order to help keep support for their | |
| platforms working. | |
| See documentation on `CMake Integration Testing`_ for more information. | |
| .. _`CMake CDash Page`: https://open.cdash.org/index.php?project=CMake | |
| .. _`CMake Integration Testing`: Help/dev/integration-testing.rst | |
| 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 `LICENSE.rst`_ for details. | |
| .. _`LICENSE.rst`: LICENSE.rst |