Improving CONTRIBUTING.md for new contributors

patch by jcshepherd; reviewed by Maxwell-Guo, Michael Semb Wever for CASSANDRA-20852
This commit is contained in:
Joel Shepherd 2025-08-21 17:21:45 +00:00 committed by maxwellguo
parent 9c93d52ac9
commit eeb227be2f
1 changed files with 34 additions and 7 deletions

View File

@ -18,16 +18,43 @@
# #
--> -->
# Apache Cassandra and Pull Requests
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](https://gitbox.apache.org/repos/asf/cassandra.git).
# How to Contribute # How to Contribute
Use [Cassandra JIRA](https://issues.apache.org/jira/browse/CASSANDRA/) to create an issue, then either attach a patch or post a link to a GitHub branch with your changes. There are many opportunities to contribute code to Apache Cassandra, including documentation updates, test improvements,
bug fixes, changes to the Java code base, and tooling improvements.
# Working with submodules Before getting started, please read about [Contributing Code Changes](https://cassandra.apache.org/_/development/patches.html), and familiarize yourself with Cassandra's [code style guidelines](https://cassandra.apache.org/_/development/code_style.html), [testing](https://cassandra.apache.org/_/development/testing.html) and [code review checklist](https://cassandra.apache.org/_/development/how_to_review.html).
A recommended workflow to get started is:
1. Find or create an issue in the [Cassandra JIRA](https://issues.apache.org/jira/browse/CASSANDRA/) that describes the work you plan to do.
2. Create a personal fork of the [Apache Cassandra GitHub repo](https://github.com/apache/cassandra).
3. Clone your fork into your development environment.
4. Create your feature branch. Please see the branch naming suggestion, below.
5. Make, build, test and self-review your changes on your feature branch.
6. Submit the patch, either by creating a GitHub pull request, attaching a patch file to your JIRA, or posting a
link to a GitHub branch with your changes.
Branch naming: To ease collaboration, consider naming your feature branch like `your-name/jira-id/base-branch`. For
example, `jcshepherd/CASSANDRA-12345/trunk`. This convention will help with managing multiple collaborators on a shared
fork, and managing patches which differ across different Cassandra versions.
Note: [Committers](https://projects.apache.org/committee.html?cassandra) follow additional processes for handling patches, pull requests, and committing directly to [the official repo](https://gitbox.apache.org/), which the Apache Cassandra GitHub repo mirrors.
## Contributing to Related Projects
There are a number of [Cassandra-related projects](https://github.com/apache?q=cassandra&type=all&language=&sort=) where
contributions may be welcomed, including:
- [Cassandra Website](https://github.com/apache/cassandra-website)
- [Cassandra Sidecar](https://github.com/apache/cassandra-sidecar)
- [Cassandra Analytics](https://github.com/apache/cassandra-analytics)
- Cassandra drivers for [Java](https://github.com/apache/cassandra-java-driver) and [Go](https://github.com/apache/cassandra-gocql-driver)
- [Cassandra Spark Connector](https://github.com/apache/cassandra-spark-connector)
- [Cassandra DTests (distributed tests)](https://github.com/apache/cassandra-dtest)
... and [more](https://github.com/apache?q=cassandra&type=all&language=&sort=). Visit those repositories and their related
JIRA issues for more information on making contributions.
# Working with Submodules
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. 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.