Skip to content

Commit 4b7e95a

Browse files
committed
Improving CONTRIBUTING.md for new contributors (CASSANDRA-20852).
Initial pass at fleshing out CONTRIBUTING.md to make it more welcoming for new contributors and provide pointers to basic development documentation. Planning on a second pass through website docs to clarify patch guidance from discussion thread: https://lists.apache.org/thread/5718pqmxzn5dwzswrlls75o2gtg1szf3 patch by jcshepherd, reviewed by Maxwell-Guo,michaelsembwever
1 parent 4a548b0 commit 4b7e95a

File tree

1 file changed

+33
-6
lines changed

1 file changed

+33
-6
lines changed

CONTRIBUTING.md

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,43 @@
1818
#
1919
-->
2020

21-
# Apache Cassandra and Pull Requests
21+
# How to Contribute
2222

23-
Apache Cassandra doesn't use GitHub pull requests as part of the development process.
24-
In fact, this repository is a GitHub mirror of [the official repo](https://gitbox.apache.org/repos/asf/cassandra.git).
23+
There are many opportunities to contribute code to Apache Cassandra, including documentation updates, test improvements,
24+
bug fixes, changes to the Java code base, and tooling improvements.
2525

26-
# How to Contribute
26+
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).
27+
28+
A recommended workflow to get started is:
29+
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.
30+
2. Create a personal fork of the [Apache Cassandra GitHub repo](https://github.com/apache/cassandra).
31+
3. Clone your fork into your development environment.
32+
4. Create your feature branch. Please see the branch naming suggestion, below.
33+
5. Make, build, test and self-review your changes on your feature branch.
34+
6. Submit the patch, either by creating a GitHub pull request, attaching a patch file to your JIRA, or posting a
35+
link to a GitHub branch with your changes.
36+
37+
Branch naming: To ease collaboration, consider naming your feature branch like `your-name/jira-id/base-branch`. For
38+
example, `jcshepherd/CASSANDRA-12345/trunk`. This convention will help with managing multiple collaborators on a shared
39+
fork, and managing patches which differ across different Cassandra versions.
40+
41+
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.
42+
43+
## Contributing to Related Projects
44+
45+
There are a number of [Cassandra-related projects](https://github.com/apache?q=cassandra&type=all&language=&sort=) where
46+
contributions may be welcomed, including:
47+
- [Cassandra Website](https://github.com/apache/cassandra-website)
48+
- [Cassandra Sidecar](https://github.com/apache/cassandra-sidecar)
49+
- [Cassandra Analytics](https://github.com/apache/cassandra-analytics)
50+
- Cassandra drivers for [Java](https://github.com/apache/cassandra-java-driver) and [Go](https://github.com/apache/cassandra-gocql-driver)
51+
- [Cassandra Spark Connector](https://github.com/apache/cassandra-spark-connector)
52+
- [Cassandra DTests (distributed tests)](https://github.com/apache/cassandra-dtest)
2753

28-
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.
54+
... and [more](https://github.com/apache?q=cassandra&type=all&language=&sort=). Visit those repositories and their related
55+
JIRA issues for more information on making contributions.
2956

30-
# Working with submodules
57+
# Working with Submodules
3158

3259
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.
3360

0 commit comments

Comments
 (0)