1Contributing to KWSys
2*********************
3
4Patches
5=======
6
7KWSys is kept in its own Git repository and shared by several projects
8via copies in their source trees.  Changes to KWSys should not be made
9directly in a host project, except perhaps in maintenance branches.
10
11KWSys uses `Kitware's GitLab Instance`_ to manage development and code review.
12To contribute patches:
13
14#. Fork the upstream `KWSys Repository`_ into a personal account.
15#. Base all new work on the upstream ``master`` branch.
16#. Run ``./SetupForDevelopment.sh`` in new local work trees.
17#. Create commits making incremental, distinct, logically complete changes.
18#. Push a topic branch to a personal repository fork on GitLab.
19#. Create a GitLab Merge Request targeting the upstream ``master`` branch.
20
21Once changes are reviewed, tested, and integrated to KWSys upstream then
22copies of KWSys within dependent projects can be updated to get the changes.
23
24.. _`Kitware's GitLab Instance`: https://gitlab.kitware.com
25.. _`KWSys Repository`: https://gitlab.kitware.com/utils/kwsys
26
27Code Style
28==========
29
30We use `clang-format`_ version **6.0** to define our style for C++ code in
31the KWSys source tree.  See the `.clang-format`_ configuration file for
32our style settings.  Use the `clang-format.bash`_ script to format source
33code.  It automatically runs ``clang-format`` on the set of source files
34for which we enforce style.  The script also has options to format only
35a subset of files, such as those that are locally modified.
36
37.. _`clang-format`: http://clang.llvm.org/docs/ClangFormat.html
38.. _`.clang-format`: .clang-format
39.. _`clang-format.bash`: clang-format.bash
40
41License
42=======
43
44We do not require any formal copyright assignment or contributor license
45agreement.  Any contributions intentionally sent upstream are presumed
46to be offered under terms of the OSI-approved BSD 3-clause License.
47See `Copyright.txt`_ for details.
48
49.. _`Copyright.txt`: Copyright.txt
50