Skip to content

Latest commit

 

History

History
45 lines (31 loc) · 4.21 KB

CONTRIBUTING.md

File metadata and controls

45 lines (31 loc) · 4.21 KB

Contributing to Express Cassandra

If you have a question about express-cassandra (not a bug report) or having trouble using it, please post your question to StackOverflow.

Reporting bugs

  • Before opening a new issue, look for existing issues to avoid duplication. If the issue does not yet exist, then create one.
    • Please post any relevant code samples, preferably a standalone script that reproduces your issue. Do not describe your issue in prose, keep structure and show your code.
    • If the bug involves an error, please post the stack trace.
    • Please mention the version of express-cassandra and cassandra that you're using.
    • For elassandra or janusgraph related issues, please mention the respective versions.
    • Please write bug reports in JavaScript (ES5 or ES2015), not coffeescript, typescript, etc.

Requesting new features or enhancements

  • Before opening a new issue, look for existing issues to avoid duplication. If the issue does not yet exist, create one.
  • Please describe a use case for it
  • it would be ideal to include test cases as well

Fixing bugs / Adding features

  • Before starting to write code, look for existing issues. That way you avoid working on something that might not be of interest or that has been addressed already in a different branch. You can create a new issue here. If you like to work on an already open issue, then please let us know by commenting on that issue, so we can keep track of the progress and avoid multiple people working on the same problem.
    • The source of this project is written in javascript, not coffeescript/typescript, therefore your bug reports should be reported using javascript.
  • Fork the repo or for small documentation changes, navigate to the source on github and click the Edit button.

Coding Convention and Linting

  • Follow the general coding style of the rest of the project. We use eslint and follow the airbnb presets for javascript coding style with some configured exceptions.
  • Make sure your code passes the eslint coding convention and linting test. To see if your code has any linting errors, execute the npm run lint command.

Running the tests

  • Write tests and make sure they pass (tests are in the test directory).
  • Open a terminal and navigate to the root of the project
  • Execute npm install to install the necessary dependencies
  • Run an instance of cassandra or scylladb with materialized_views_enabled, sasi_indexes_enabled and user_defined_functions_enabled configurations set to true
  • Now execute npm test to run the tests (we're using mocha)

To test elassandra and janusgraph related functionalities, download the preconfigured elassandra+janusgraph for running tests. Some of the test cases require configuration changes in cassandra, elassandra and janusgraph. Elassandra and JanusGraph is required for test cases that are related to supporting them.

Writing Documentation

To contribute to the documentation just make your changes to the relevant *.md file in the docs directory in the master branch and submit a pull request. You might also use the github Edit button.