# Contributing We welcome contributions to our code, and will always endeavor to respond in a quick and helpful manner to Pull Requests. 1. **Please sign one of the contributor license agreements below** (simple and pain-free). 1. Fork the repo, develop and test your code changes, add docs. 1. A Pull Request should be a set of changes that addresses one issue in the issue tracker. Please file one Pull Request per issue, and address one issue per Pull Request. If you want to make a change that doesn't have a corresponding issue in the issue tracker, please [submit a new issue][issues] first. 1. Make sure that your commit messages clearly describe the changes. 1. Send a pull request. [issues]: https://github.com/googleapis/google-api-dotnet-client/issues ## Contributor License Agreements Before we can accept your pull requests you'll need to sign a Contributor License Agreement (CLA): - **If you are an individual writing original source code** and **you own the intellectual property**, then you'll need to sign an [individual CLA][individual-cla]. - **If you work for a company that wants to allow you to contribute your work**, then you'll need to sign a [corporate CLA][corporate-cla]. You can sign these electronically (just scroll to the bottom). After that, we'll be able to accept your pull requests. [individual-cla]: https://developers.google.com/open-source/cla/individual [corporate-cla]: https://developers.google.com/open-source/cla/corporate # Code Layout These libraries are split into: - [Generated client libraries][client-libs]: The per-service libraries as used by users. The source code for these is generated by the Client Generator. - [Client Generator][client-gen]: The code generator for the above. - [Support Libraries][support-libs]: Support code for the client libraries. [support-libs]: https://github.com/googleapis/google-api-dotnet-client/tree/main/Src/Support [client-libs]: https://github.com/googleapis/google-api-dotnet-client/tree/main/Src/Generated [client-gen]: https://github.com/googleapis/google-api-dotnet-client/tree/main/ClientGenerator ## Building and .NET Core We use Visual Studio 2022 to edit the Support Libraries. We use [dotnet cli][dotnetcli] for testing and building both the generated Client Libraries and the Support Libraries. [dotnetcli]: https://github.com/dotnet/cli ## Tests Support Library tests use [XUnit][xunit]. Tests are run using the `dotnet test` command in the relevant source directory. [xunit]: https://xunit.github.io/