Search or create an issue on Search issues starting with ‘CASSANDRA’ Create an issue
Get the code with $ git clone https://git-wip-us.apache.org/repos/asf/cassandra.git git.apache.org/cassandra.git mirror github.com/apache/cassandra.git mirror of mirror # It’s a good practice to always work on topic branch $ git checkout -b CASSANDRA-4315 origin/cassandra-1.2 # to build, simply run $ ant
Test it $ ant test or you can run one test class $ ant test -Dtest.name=IWantToRunOnlyThisTest
But wait, isn’t C* a distributed database? *How do I test C* in distributed manner? *Do I need boxes for that?
Enter “ccm” *Cassandra Cluster Manager on your computer. *You can launch C* cluster from released version or local src tree. # create 3-node cluster of v1.2.5 $ ccm create my-test-cluster -n 3 -v 1.2.5 # launch all 3 nodes $ ccm start # show ring $ ccm node1 ring # do stress test $ ccm stress
Enter “ccm” *Hosted on https://github.com/pcmanus/ccm *You can even write your own test scenario using python import os from ccmlib.cluster import Cluster os.mkdir(‘test_dir’) cluster = Cluster(‘test_dir’, ‘Test Cluster’, cassandra_version=‘1.2.5’) cluster.populate(3) for node in cluster.nodelist(): print node.name
cassandra-dtest *C* cluster functional test based on nose and ccm *Get from https://github.com/riptano/cassandra-dtest $ git clone firstname.lastname@example.org:riptano/cassandra-dtest.git $ cd cassandra-dtest # run all distributed test $ nosetests
Ready to submit patch? $ git diff origin/cassandra-1.2 > CASSANDRA-XXXX.txt # or you can submit a patch created by following command too $ git format-patch origin/cassandra-1.2 *Now, upload your patch using JIRA *Don’t forget to “Submit Patch” after upload
There are many ways you can contribute *Report the bug *Test the patches *Tel about your use case *Help others on mailing list
Reporting bug/Testing patches *JIRA is your friend. Feel free to “Create Issue”. But don’t ask the question on JIRA. Post it to user mailing list. *You always can be a reviewer/tester too. Grab, apply the patch, build and deploy to your testing environment.