The official Cassandra documentation lives in the project’s git repository. We use a static site generator, Sphinx, to create pages hosted at cassandra.apache.org. You’ll also find developer centric content about Cassandra internals in our retired wiki (not covered by this guide).
Using a static site generator often requires to use a markup language instead of visual editors (which some people would call good news). Sphinx, the tool-set we use to generate our documentation, uses reStructuredText for that. Markup languages allow you to format text by making use of certain syntax elements. Your document structure will also have to follow specific conventions. Feel free to take a look at existing documents to get a better idea how we use reStructuredText to write our documents.
So how do you actually start making contributions?
Recommended for shorter documents and minor changes on existing content (e.g. fixing typos or updating descriptions)
Follow these steps to contribute using GitHub. It’s assumed that you’re logged in with an existing account.
doc/sourceto find the
.rstfile to edit. The URL of the document should correspond to the directory structure. New files can be created using the “Create new file” button:
.rstfiles to get a better idea what format elements to use.
Make sure to preview added content before committing any changes.
Afterwards the GitHub Cassandra mirror will list your pull request and you’re done. Congratulations! Please give us some time to look at your suggested changes before we get back to you.
Recommended for major changes
Significant changes to the documentation are best managed through our Jira issue tracker. Please follow the same contribution guides as for regular code contributions. Creating high quality content takes a lot of effort. It’s therefor always a good idea to create a ticket before you start and explain what you’re planing to do. This will create the opportunity for other contributors and committers to comment on your ideas and work so far. Eventually your patch gets a formal review before it is committed.
Recommended for advanced editing
Using the GitHub web interface should allow you to use most common layout elements including images. More advanced formatting options and navigation elements depend on Sphinx to render correctly. Therefor it’s a good idea to setup Sphinx locally for any serious editing. Please follow the instructions in the Cassandra source directory at
doc/README.md. Setup is very easy (at least on OSX and Linux).
Please feel free to get involved and merge pull requests created on the GitHub mirror if you’re a committer. As this is a read-only repository, you won’t be able to merge a PR directly on GitHub. You’ll have to commit the changes against the Apache repository with a comment that will close the PR when the committ syncs with GitHub.
You may use a git work flow like this:
git remote add github https://github.com/apache/cassandra.git git fetch github pull/<PR-ID>/head:<PR-ID> git checkout <PR-ID>
Now either rebase or squash the commit, e.g. for squashing:
git reset --soft origin/trunk git commit --author <PR Author>
Make sure to add a proper commit message including a “Closes #<PR-ID>” text to automatically close the PR.