• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1## Contributing to the Guideline Support Library
2
3The Guideline Support Library (GSL) contains functions and types that are suggested for use by the
4[C++ Core Guidelines](https://github.com/isocpp/CppCoreGuidelines). GSL design changes are made only as a result of modifications to the Guidelines.
5
6GSL is accepting contributions that improve or refine any of the types in this library as well as ports to other platforms. Changes should have an issue
7tracking the suggestion that has been approved by the maintainers. Your pull request should include a link to the bug that you are fixing. If you've submitted
8a PR, please post a comment in the associated issue to avoid duplication of effort.
9
10## Legal
11You will need to complete a Contributor License Agreement (CLA). Briefly, this agreement testifies that you are granting us and the community permission to
12use the submitted change according to the terms of the project's license, and that the work being submitted is under appropriate copyright.
13
14Please submit a Contributor License Agreement (CLA) before submitting a pull request. You may visit https://cla.microsoft.com to sign digitally.
15
16## Housekeeping
17Your pull request should:
18
19* Include a description of what your change intends to do
20* Be a child commit of a reasonably recent commit in the **master** branch
21    * Requests need not be a single commit, but should be a linear sequence of commits (i.e. no merge commits in your PR)
22* It is desirable, but not necessary, for the tests to pass at each commit. Please see [README.md](./README.md) for instructions to build the test suite.
23* Have clear commit messages
24    * e.g. "Fix issue", "Add tests for type", etc.
25* Include appropriate tests
26    * Tests should include reasonable permutations of the target fix/change
27    * Include baseline changes with your change
28    * All changed code must have 100% code coverage
29* To avoid line ending issues, set `autocrlf = input` and `whitespace = cr-at-eol` in your git configuration
30