This page provides instructions for contributing code to the K8ssandra project. For documentation changes, see the docs contribution guide. Please follow the code of conduct in all your interactions with the project

You’ll find many helpful suggestions for working with the source code in this blog post by Jeff Banks: Kubernetes Data Simplicity: Getting started with K8ssandra.

Contributor License Agreement

Acceptance of the DataStax contributor license agreement (CLA) is required in order for us to be able to accept your code contribution. You will see this on the standard pull request checklist for the K8ssandra repositories.

Submitting Issues

If you find a bug in the source code or a mistake in the documentation, you can help us by submitting an issue. Even better, submit a Pull Request with a fix. 

Before you submit an issue, we ask that you search the archive to see if your issue has already been discovered or even fixed.

Filling out the fields in the issue template will increase the chances of your issue being dealt with quickly:

  • Overview of the Issue – if an error is being thrown a non-minified stack trace helps
  • Motivation for or Use Case – explain what are you trying to do and why the current behavior is a bug for you
  • Reproduce the Error – provide a live example or a unambiguous set of steps
  • Suggest a Fix – if you can’t fix the bug yourself, perhaps you can point to what might be causing the problem (line of code or commit)

If you’re not sure about any of these details, please ask for help on the forum. We’re glad to receive your feedback and want to help you be successful.

Finding an issue to work on

We love to have contributions from new community members. If you aren’t sure where to jump in, have a look at issues marked with the “good first issue” tag. 

Requesting new features

You can request a new feature by submitting an issue to the appropriate GitHub Repository. If you would like to implement a new feature, please submit an issue with a proposal for your work first, to be sure that we can use it. You may also want to check the project roadmap for alignment.

Submitting pull requests

If you intend to submit changes to one of the repositories in the K8ssandra GitHub organization, we recommend the following workflow:

  1. Fork the repo in question under your personal GitHub account.
  1. Using Git, you can now pull the K8ssandra source code and documentation to your local machine. You can do this via the GitHub plugin-in in an IDE or from the command line. For example: git clone https://github.com/your-github-repo-name/k8ssandra.git
  2. Create a new branch to capture your work. For example: git checkout -b your-branch-name
  3. Commit changes to the branch.
  4. Make sure to test your changes using the unit and integration tests.
  5. When you’re ready to submit your changes, push them to your fork. For example: git push origin your-branch-name
  6. Create a pull request. The easiest way is to navigate to your forked repository on GitHub.com. The webpage will helpfully ask if you want to create a PR for the main K8ssandra repo and guide you through the steps. See also: github.com – Creating a pull request from a fork.   
  7. After your pull request is created, automated tests will run via GitHub Actions. Reviewers for your PR will be assigned automatically based on the portion of the codebase you’re working on.
  8. Make sure to follow through on your PR by responding to any comments made by the reviewer in a timely manner.
  9. Celebrate when your PR is merged!