Merge topic 'test-ExternalProject' into release-3.30
[kiteware-cmake.git] / CONTRIBUTING.rst
blob81f26f59f11ab4930ea47e66897a47aee5c36736
1 Contributing to CMake
2 *********************
4 The following summarizes the process for contributing changes.
5 See documentation on `CMake Development`_ for more information.
7 .. _`CMake Development`: Help/dev/README.rst
9 Community
10 =========
12 CMake is maintained and supported by `Kitware`_ and developed in
13 collaboration with a productive community of contributors.
14 Please post to the ``Development`` category of the `CMake Forum`_ to raise
15 discussion of development topics.
17 .. _`Kitware`: https://www.kitware.com/cmake
18 .. _`CMake Forum`: https://discourse.cmake.org
20 Patches
21 =======
23 CMake uses `Kitware's GitLab Instance`_ to manage development and code review.
24 To contribute patches:
26 #. Fork the upstream `CMake Repository`_ into a personal account.
27 #. Run `Utilities/SetupForDevelopment.sh`_ for local git configuration.
28 #. See `Building CMake`_ for building CMake locally.
29 #. See the `CMake Source Code Guide`_ for coding guidelines.
30 #. Create a topic branch named suitably for your work.
31    Base all new work on the upstream ``master`` branch.
32    Base work on the upstream ``release`` branch only if it fixes a
33    regression or bug in a feature new to that release.
34    If in doubt, prefer ``master``.  Reviewers may simply ask for
35    a rebase if deemed appropriate in particular cases.
36 #. Create commits making incremental, distinct, logically complete changes
37    with appropriate `commit messages`_.
38 #. Push the topic branch to a personal repository fork on GitLab.
39 #. Create a GitLab Merge Request targeting the upstream ``master`` branch
40    (even if the change is intended for merge to the ``release`` branch).
41    Check the box labeled "Allow commits from members who can merge to the
42    target branch".  This will allow maintainers to make minor edits on your
43    behalf.
45 The merge request will enter the `CMake Review Process`_ for consideration.
47 .. _`Kitware's GitLab Instance`: https://gitlab.kitware.com
48 .. _`CMake Repository`: https://gitlab.kitware.com/cmake/cmake
49 .. _`Utilities/SetupForDevelopment.sh`: Utilities/SetupForDevelopment.sh
50 .. _`Building CMake`: README.rst#building-cmake
51 .. _`CMake Source Code Guide`: Help/dev/source.rst
52 .. _`commit messages`: Help/dev/review.rst#commit-messages
53 .. _`CMake Review Process`: Help/dev/review.rst
55 CMake Dashboard Client
56 ======================
58 The *integration testing* step of the `CMake Review Process`_ uses a set of
59 testing machines that follow an integration branch on their own schedule to
60 drive testing and submit results to the `CMake CDash Page`_.  Anyone is
61 welcome to provide testing machines in order to help keep support for their
62 platforms working.
64 See documentation on `CMake Testing Process`_ for more information.
66 .. _`CMake CDash Page`: https://open.cdash.org/index.php?project=CMake
67 .. _`CMake Testing Process`: Help/dev/testing.rst
69 License
70 =======
72 We do not require any formal copyright assignment or contributor license
73 agreement.  Any contributions intentionally sent upstream are presumed
74 to be offered under terms of the OSI-approved BSD 3-clause License.
75 See `Copyright.txt`_ for details.
77 .. _`Copyright.txt`: Copyright.txt