Home | History | Annotate | Download | only in Microsoft-GSL
      1 ## Contributing to the Guideline Support Library
      2 
      3 The 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 
      6 GSL 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 
      7 tracking 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 
      8 a PR, please post a comment in the associated issue to avoid duplication of effort.
      9 
     10 ## Legal
     11 You will need to complete a Contributor License Agreement (CLA). Briefly, this agreement testifies that you are granting us and the community permission to 
     12 use the submitted change according to the terms of the project's license, and that the work being submitted is under appropriate copyright.
     13 
     14 Please submit a Contributor License Agreement (CLA) before submitting a pull request. You may visit https://cla.microsoft.com to sign digitally.
     15 
     16 ## Housekeeping
     17 Your 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