Skip to content

Latest commit

 

History

History
81 lines (49 loc) · 5.08 KB

CONTRIBUTING.md

File metadata and controls

81 lines (49 loc) · 5.08 KB

Contributing to the Operator

Percona welcomes and encourages community contributions to help improve Percona Operator for MySQL based on Percona XtraDB Cluster. The Operator automates the creation, modification, or deletion of items in your Percona XtraDB Cluster environment, and contains the necessary Kubernetes settings to maintain a consistent Percona XtraDB Cluster instance.

Prerequisites

Before submitting code or documentation contributions, you should first complete the following prerequisites.

1. Sign the CLA

Before you can contribute, we kindly ask you to sign our Contributor License Agreement (CLA). You can do this using your GitHub account and one click.

2. Code of Conduct

Please make sure to read and observe the Contribution Policy.

Submitting a pull request

Improvement and bugfix tasks for the Operator are tracked in Jira. Although not mandatory, it is a good practice to examine already open Jira issues before submitting a pull request. For bigger contributions, we suggest creating a Jira issue first and discussing it with the engineering team and community before proposing any code changes.

Another good place to discuss Percona Operator for MySQL based on Percona XtraDB Cluster with developers and other community members is the community forum.

1. Contributing to the source tree

Contributions to the source tree should follow the workflow described below:

  1. First, you need to fork the repository on GitHub, clone your fork locally, and then sync your local fork to upstream. After that, before starting to work on changes, make sure to always sync your fork with upstream.

  2. Create a branch for changes you are planning to make. If there is a Jira ticket related to your contribution, it is recommended to name your branch in the following way: <Jira issue number>-<short description>, where the issue number is something like K8SPXC-622.

    Create the branch in your local repo as follows:

    git checkout -b K8SPXC-622-fix-feature-X
    

    When your changes are ready, make a commit, mentioning the Jira issue in the commit message, if any:

    git add .
    git commit -m "K8SPXC-622 fixed by ......"
    git push -u origin K8SPXC-622-fix-feature-X
    
  3. Create a pull request to the main repository on GitHub.

  4. When the reviewer makes some comments, address any feedback that comes and update the pull request.

  5. When your contribution is accepted, your pull request will be approved and merged to the main branch.

2. Contributing to documentation

The workflow for documentation is similar, but we store source code for the Percona Operator for MySQL documentation in a separate repository. See the Documentation Contribution Guide for more information.

3. Container images

Find Operator Dockerfile in build folder.

Our Operator uses various container images - databases, proxies, other. You can find the Dockerfiles in percona-docker repository.

Code review

1. Automated code review

Your pull request will go through an automated build and testing process, and you will have a comment with the report once all tests are over (usually, it takes about 3 hours).

2. Code review by the Operator developers

Your contribution will be reviewed by other developers contributing to the project. The more complex your changes are, the more experts will be involved. You will receive feedback and recommendations directly on your pull request on GitHub, so keep an eye on your submission and be prepared to make further amendments. The developers might even provide some concrete suggestions on how to modify your code to better match the project’s expectations.

Building and automated testing

See e2e-tests/README.md to find out how to build the Operator and run tests.