You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
3.2 KiB

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