sigs.k8s.io/cluster-api-provider-azure@v1.14.3/CONTRIBUTING.md (about)

     1  # Contributing Guidelines
     2  <!-- START doctoc generated TOC please keep comment here to allow auto update -->
     3  <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
     4  
     5  
     6  - [Contributor License Agreements](#contributor-license-agreements)
     7  - [Finding Things That Need Help](#finding-things-that-need-help)
     8  - [Contributing a Patch](#contributing-a-patch)
     9  - [Backporting a Patch](#backporting-a-patch)
    10    - [Merge Approval](#merge-approval)
    11    - [Google Doc Viewing Permissions](#google-doc-viewing-permissions)
    12    - [Issue and Pull Request Management](#issue-and-pull-request-management)
    13  
    14  <!-- END doctoc generated TOC please keep comment here to allow auto update -->
    15  
    16  Read the following guide if you're interested in contributing to cluster-api.
    17  
    18  ## Contributor License Agreements
    19  
    20  We'd love to accept your patches! Before we can take them, we have to jump a couple of legal hurdles.
    21  
    22  Please fill out either the individual or corporate Contributor License Agreement (CLA). More information about the CLA and instructions for signing it [can be found here](https://github.com/kubernetes/community/blob/master/CLA.md).
    23  
    24  ***NOTE***: Only original source code from you and other people that have signed the CLA can be accepted into the repository.
    25  
    26  ## Finding Things That Need Help
    27  
    28  If you're new to the project and want to help, but don't know where to start, we have a semi-curated list of issues that should not need deep knowledge of the system. [Have a look and see if anything sounds interesting](https://github.com/kubernetes-sigs/cluster-api-provider-azure/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22). Alternatively, read some of the docs on other controllers and try to write your own, file and fix any/all issues that come up, including gaps in documentation!
    29  
    30  ## Contributing a Patch
    31  
    32  1. If you haven't already done so, sign a Contributor License Agreement (see details above).
    33  2. Fork the desired repo, develop and test your code changes.
    34      1. See the [Development Guide](https://capz.sigs.k8s.io/developers/development.html) for more instructions on setting up your environment and testing changes locally.
    35  3. Submit a pull request.
    36      1. All PRs should be labeled with one of the following kinds
    37           - `/kind feature` for PRs related to adding new features/tests
    38           - `/kind bug` for PRs related to bug fixes and patches
    39           - `/kind api-change` for PRs related to adding, removing, or otherwise changing an API
    40           - `/kind cleanup` for PRs related to code refactoring and cleanup
    41           - `/kind deprecation` for PRs related to a feature/enhancement marked for deprecation.
    42           - `/kind design` for PRs related to design proposals
    43           - `/kind documentation` for PRs related to documentation
    44           - `/kind failing-test` for PRs related to a consistently or frequently failing test.
    45           - `/kind flake` for PRs related to a flaky test.
    46           - `/kind other` for PRs related to updating dependencies, minor changes or other
    47       2. If the PR requires additional action from users switching to a new release, include the string "action required" in the PR release-notes.
    48       3. All code changes must be covered by unit tests and E2E tests.
    49       4. All new features should come with user documentation.
    50   4. Once the PR has been reviewed and is ready to be merged, commits should be [squashed](https://github.com/kubernetes/community/blob/master/contributors/guide/github-workflow.md#squash-commits).
    51      1. Ensure that commit message(s) are be meaningful and commit history is readable.
    52  
    53  All changes must be code reviewed. Coding conventions and standards are explained in the official [developer docs](https://github.com/kubernetes/community/tree/master/contributors/devel). Expect reviewers to request that you avoid common [go style mistakes](https://github.com/golang/go/wiki/CodeReviewComments) in your PRs.
    54  
    55  In case you want to run our E2E tests locally, please refer to [Testing](https://capz.sigs.k8s.io/developers/development.html#submitting-prs-and-testing) guide. An overview of our e2e-test jobs (and also all our other jobs) can be found in [Jobs](https://capz.sigs.k8s.io/developers/jobs.html).
    56  
    57  ## Backporting a Patch
    58  
    59  Cluster API ships older versions through `release-X.X` branches, usually backports are reserved to critical bug-fixes.
    60  Some release branches might ship with both Go modules and dep (e.g. `release-0.1`), users backporting patches should always make sure
    61  that the vendored Go modules dependencies match the Gopkg.lock and Gopkg.toml ones by running `dep ensure`
    62  
    63  ### Merge Approval
    64  
    65  Cluster API maintainers may add "LGTM" (Looks Good To Me) or an equivalent comment to indicate that a PR is acceptable. Any change requires at least one LGTM.  No pull requests can be merged until at least one Cluster API maintainer signs off with an LGTM.
    66  
    67  ### Google Doc Viewing Permissions
    68  
    69  To gain viewing permissions to google docs in this project, please join either the [kubernetes-dev](https://groups.google.com/forum/#!forum/kubernetes-dev) or [kubernetes-sig-cluster-lifecycle](https://groups.google.com/forum/#!forum/kubernetes-sig-cluster-lifecycle) google group.
    70  
    71  ### Issue and Pull Request Management
    72  
    73  Anyone may comment on issues and submit reviews for pull requests. However, in
    74  order to be assigned an issue or pull request, you must be a member of the
    75  [Kubernetes SIGs](https://github.com/kubernetes-sigs) GitHub organization.
    76  
    77  If you are a Kubernetes GitHub organization member, you are eligible for
    78  membership in the Kubernetes SIGs GitHub organization and can request
    79  membership by [opening an issue](https://github.com/kubernetes/org/issues/new?template=membership.md&title=REQUEST%3A%20New%20membership%20for%20%3Cyour-GH-handle%3E)
    80  against the kubernetes/org repo.
    81  
    82  However, if you are a member of any of the related Kubernetes GitHub
    83  organizations but not of the Kubernetes org, you will need explicit sponsorship
    84  for your membership request. You can read more about Kubernetes membership and
    85  sponsorship [here](https://github.com/kubernetes/community/blob/master/community-membership.md).
    86  
    87  Cluster API maintainers can assign you an issue or pull request by leaving a
    88  `/assign <your Github ID>` comment on the issue or pull request.
    89  
    90  ## Mentorship
    91  
    92  - [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers!
    93  
    94  ## Contact Information
    95  
    96  - [Slack channel](https://kubernetes.slack.com/messages/cluster-api-azure) - [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-cluster-lifecycle)