7. #CASSANDRA13
$ git clone https://git-wip-us.apache.org/repos/asf/cassandra.git
Get the code with
git.apache.org/cassandra.git
github.com/apache/cassandra.git
mirror
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
8. #CASSANDRA13
*Just follow the coding style
http://wiki.apache.org/cassandra/CodeStyle
*For Eclipse users
https://github.com/tjake/cassandra-style-eclipse
Code with your favorite IDE
9. #CASSANDRA13
or you can run one test class
Test it
$ ant test -Dtest.name=IWantToRunOnlyThisTest
$ ant test
10. #CASSANDRA13
But wait, isn’t C* a distributed database?
*How do I test C* in distributed manner?
*Do I need boxes for that?
11. #CASSANDRA13
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
12. #CASSANDRA13
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
13. #CASSANDRA13
cassandra-dtest
*C* cluster functional test based on nose and ccm
*Get from https://github.com/riptano/cassandra-dtest
$ git clone git@github.com:riptano/cassandra-dtest.git
$ cd cassandra-dtest
# run all distributed test
$ nosetests
15. #CASSANDRA13
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
16. #CASSANDRA13
Got it? Start with “low-hanging fruits”
https://issues.apache.org/jira/issues/?jql=project%20%3D%20CASSANDRA%20AND%20labels%20%3D
%20lhf%20AND%20status%20!%3D%20Resolved
18. #CASSANDRA13
There are many ways you can contribute
*Report the bug
*Test the patches
*Tell about your use case
*Help others on mailing list
19. #CASSANDRA13
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.
20. #CASSANDRA13
Tell your experience to the world
*Blog and tweet with #cassandra
*Get listed on http://www.planetcassandra.org/
*Help others on the mailing list
21. #CASSANDRA13
* ask(don’t ask to ask) on irc (#cassandra, #cassandra-dev on freenode)
* post to mailing list (user@cassandra.apache.org)
* tweet with hash tag #cassandra
* or contact me yuki@datastax.com
Questions? You can always