how you can contribute to apache cassandra

21
#CASSANDRA13 Yuki Morishita | Apache Cassandra Committer, Software Developer@DataStax How you can contribute to Apache Cassandra

Upload: yuki-morishita

Post on 11-May-2015

6.220 views

Category:

Technology


2 download

DESCRIPTION

Lightening talk I did on Cassandra Summit 2013 about contributing to Apache Cassandra project.

TRANSCRIPT

Page 1: How you can contribute to Apache Cassandra

#CASSANDRA13

Yuki Morishita | Apache Cassandra Committer, Software Developer@DataStax

How you can contribute to Apache Cassandra

Page 2: How you can contribute to Apache Cassandra

#CASSANDRA13

*Apache Cassandra committer since May, 2012

*Also a software developer at DataStax

*Tokyo ✈ Austin, TX

Hi, my name is Yuki.

@yukim

Page 3: How you can contribute to Apache Cassandra

#CASSANDRA13

Today, I want to (quickly) talk about* How to get started writing and submit a patch

* Non-programmer’s guide to contribute

Page 4: How you can contribute to Apache Cassandra

#CASSANDRA13

Programmer’s (quick) guide to submit patch

Page 5: How you can contribute to Apache Cassandra

#CASSANDRA13

Tools*Java SDK (>= 7 preferred)

*Apache Ant

*git

*(optionally) python

Page 6: How you can contribute to Apache Cassandra

#CASSANDRA13

Search or create an issue on

Search issues starting with ‘CASSANDRA’

Create an issue

Page 7: How you can contribute to Apache Cassandra

#CASSANDRA13

$ git clone https://git-wip-us.apache.org/repos/asf/cassandra.gitGet 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

Page 8: How you can contribute to Apache Cassandra

#CASSANDRA13

*Just follow the coding stylehttp://wiki.apache.org/cassandra/CodeStyle

*For Eclipse users

https://github.com/tjake/cassandra-style-eclipse

Code with your favorite IDE

Page 9: How you can contribute to Apache Cassandra

#CASSANDRA13

or you can run one test class

Test it

$ ant test -Dtest.name=IWantToRunOnlyThisTest

$ ant test

Page 10: How you can contribute to Apache Cassandra

#CASSANDRA13

But wait, isn’t C* a distributed database?*How do I test C* in distributed manner?

*Do I need boxes for that?

Page 11: How you can contribute to Apache Cassandra

#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

Page 12: How you can contribute to Apache Cassandra

#CASSANDRA13

Enter “ccm”*Hosted on https://github.com/pcmanus/ccm

*You can even write your own test scenario using pythonimport osfrom 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

Page 13: How you can contribute to Apache Cassandra

#CASSANDRA13

cassandra-dtest*C* cluster functional test based on nose and ccm

*Get from https://github.com/riptano/cassandra-dtest$ git clone [email protected]:riptano/cassandra-dtest.git$ cd cassandra-dtest# run all distributed test$ nosetests

Page 14: How you can contribute to Apache Cassandra

#CASSANDRA13

cassandra-dtest*Too much for running long test? We got you covered.

http://buildbot.datastax.com:8010/waterfall

Page 15: How you can contribute to Apache Cassandra

#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

Page 17: How you can contribute to Apache Cassandra

#CASSANDRA13

Not a programmer? You can contribute too.

Page 18: How you can contribute to Apache Cassandra

#CASSANDRA13

There are many ways you can contribute*Report the bug

*Test the patches

*Tell about your use case

*Help others on mailing list

Page 19: How you can contribute to Apache Cassandra

#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.

Page 20: How you can contribute to Apache Cassandra

#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

Page 21: How you can contribute to Apache Cassandra

#CASSANDRA13

* ask(don’t ask to ask) on irc (#cassandra, #cassandra-dev on freenode)

* post to mailing list ([email protected])

* tweet with hash tag #cassandra

* or contact me [email protected]

Questions? You can always