Apache Cassandra doesn't use GitHub pull requests as part of the development process. In fact, this repository is a GitHub mirror of the official repo.
Use Cassandra JIRA to create an issue, then either attach a patch or post a link to a GitHub branch with your changes.
Apache Cassandra uses git submodules for a set of dependencies, this is to make cross cutting changes easier for developers. When working on such changes, there are a set of scripts to help with the process.
When starting a development branch, the following will change all submodules to a new branch based off the JIRA
$ .build/sh/development-switch.sh --jira CASSANDRA-<number>
When changes are made to a submodule (such as to accord), you need to commit and update the reference in Apache Cassandra
$ (cd modules/accord ; git commit -am 'Saving progress')
$ .build/sh/bump-accord.sh
Due to the nature of submodules, the changes to the submodules must be committed and pushed before the changes to Apache Cassandra; these are different repositories so git's --atomic
does not prevent conflicts from concurrent merges; the basic process is as follows:
- Follow the normal merge process for the submodule
- Update Apache Cassandra's submodule entry to point to the newly committed change; follow the Accord example below for an example
$ .build/sh/change-submodule-accord.sh
$ .build/sh/bump-accord.sh
- How you can contribute to Apache Cassandra presentation by Yuki Morishita
- Code style wiki page
- Running Cassandra in IDEA guide
- Running Cassandra in Eclipse guide
- Cassandra Cluster Manager - CCM and a guide blog post
- Cassandra Distributed Tests aka dtests
- Cassandra Testing Guidelines - see TESTING.md