|
| 1 | +# Contributing to the Azure API Management DevOps Resource Kit |
| 2 | + |
| 3 | +We welcome community contributions to the DevOps Resource Kit. We do, however, ask that you follow some basic rules |
| 4 | +when contributing. |
| 5 | + |
| 6 | +## Filing Issues |
| 7 | + |
| 8 | +Filing issues is a great way to contribute to the SDK. Here are some guidelines: |
| 9 | + |
| 10 | +* If filing a bug or feature request for Creator or Extractor, ensure you use the appropriate template. |
| 11 | +* Include as much detail as you can be about the problem or feature. |
| 12 | +* Github supports markdown, so when filing bugs make sure you check the formatting before clicking submit. |
| 13 | + |
| 14 | +## Contributing Code |
| 15 | + |
| 16 | +We welcome code contributions via GitHub Pull Request (PR). |
| 17 | + |
| 18 | +* All code contributions must have an associated issue that provides detail on what your pull request is fixing. |
| 19 | +* All code contributions must include tests for the new or fixed functionality. |
| 20 | + |
| 21 | +## Development Environment Setup |
| 22 | + |
| 23 | +The Extractor and Creator are written in .NET Core. Our basic environment is: |
| 24 | + |
| 25 | +* .NET Core 3.1 LTS (we are intending on updating to .NET 6 in the near future). |
| 26 | +* Visual Studio 2022 |
| 27 | + |
| 28 | +You can open the solution as you would any other Visual Studio solution. |
| 29 | + |
| 30 | +## Coding Guidelines |
| 31 | + |
| 32 | +Just follow the existing patterns already present in the code. If we object to the style, we will say so during the code review. |
| 33 | + |
| 34 | +## Submitting Pull Requests |
| 35 | + |
| 36 | +Before we can accept your pull-request you'll need to sign a [Contribution License Agreement (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement). |
| 37 | +However, you don't have to do this up-front. You can simply clone, fork, and submit your pull-request as usual. |
| 38 | + |
| 39 | +The pull request must meet the following requirements: |
| 40 | + |
| 41 | +* One pull request per issue - do not fix multiple issues in the same pull request without talking to us. |
| 42 | +* Include tests for the new or updated functionality. |
| 43 | +* Title: `(#<issue>) <functionality>` - this ensures the issue and pull request are linked by GitHub. |
| 44 | +* Content: must include `Closes #<issue>` - this ensures the issue is closed when the PR is merged. |
| 45 | + |
| 46 | +Once the pull request is submitted, there are three phases: |
| 47 | + |
| 48 | +1. The build and test is automatically run. If the build/test fails, you need to correct the issues before proceeding. |
| 49 | +1. A human reviewer will ensure that you have added tests to cover the new functionality. We will ask for tests before proceeding. |
| 50 | +1. A human reviewer will do a code review, identifying any coding issues. Feel free to discuss and resolve any issues within the PR. |
| 51 | + |
| 52 | +Once a maintainer approves the PR, it will be merged. |
| 53 | + |
| 54 | +## Releases |
| 55 | + |
| 56 | +We release whenever there are significant changes. To release, a maintainer will generate a release tag. This will set off a |
| 57 | +build and test process that automatically uploads the artifacts to GitHub releases. You can always find the latest release on |
| 58 | +GitHub releases. |
| 59 | + |
| 60 | +If your issue is fixed but has not been released yet, you can run a build yourself. The Azure Pipelines configuration we use to |
| 61 | +build and release is in the `.azure-pipelines` directory within the repository. |
0 commit comments