KWSys is kept in its own Git repository and shared by several projects via copies in their source trees. Changes to KWSys should not be made directly in a host project, except perhaps in maintenance branches.
KWSys uses Kitware's GitLab Instance to manage development and code review. To contribute patches:
- Fork the upstream KWSys Repository into a personal account.
- Base all new work on the upstream
master
branch. - Run
./SetupForDevelopment.sh
in new local work trees. - Create commits making incremental, distinct, logically complete changes.
- Push a topic branch to a personal repository fork on GitLab.
- Create a GitLab Merge Request targeting the upstream
master
branch.
Once changes are reviewed, tested, and integrated to KWSys upstream then copies of KWSys within dependent projects can be updated to get the changes.
We use clang-format version 15 to define our style for C++ code in
the KWSys source tree. See the .clang-format configuration file for
our style settings. Use the clang-format.bash script to format source
code. It automatically runs clang-format
on the set of source files
for which we enforce style. The script also has options to format only
a subset of files, such as those that are locally modified.
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.