Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# Contributing

Thank you for your interest in contributing to the Apache Cassandra Node.js Driver! This repository is now part of the Apache Software Foundation (ASF) and follows Apache contribution practices.

## Ways to Contribute

There are many ways to contribute, including:

- **Bug Reports**: Identify incorrect behavior, inconsistencies, or regressions in the driver. Provide reproduction steps when possible.
- **Feature Requests**: Propose improvements or new functionality. Please describe the use case (not just a proposed API).
- **Documentation Improvements**: Enhance guides, examples, javadocs, or configuration explanations.
- **Pull Requests**: Submit fixes, enhancements, performance improvements, or refactorings.
- **Testing Contributions**: Add missing tests, improve coverage, or enhance test infrastructure.
- **Support & Triage**: Help evaluate reported issues or contribute to discussions.
- **Verify Releases**: Verify the release artifacts work correctly in your environment, when a release is proposed in the mailing list.

### Communication
1. **Mailing List**:
- https://groups.google.com/a/lists.datastax.com/g/nodejs-driver-user
- Or https://lists.apache.org/list.html?dev@cassandra.apache.org
2. **JIRA**:
- https://issues.apache.org/jira/projects/CASSNODEJS
- Older issues before the donation can be found at:
- https://datastax-oss.atlassian.net/projects/NODEJS
3. **GitHub Repository**: https://github.com/apache/cassandra-nodejs-driver
4. **Slack**: #cassandar-drivers channel, if you are in the Apache Software Foundation [Slack](https://infra.apache.org/slack.html)

## Submitting changes

### Submitting Changes (Pull Requests)

All code changes require:

1. **A corresponding JIRA ticket**
Include the JIRA key in the PR title, e.g.:
`NODEJS-696: Migrate Travis CI to Github Action`

2. **A pull request on GitHub**
Repository: <https://github.com/apache/cassandra-nodejs-driver>

3. **Tests**
Every fix or feature should include or update tests. PRs without tests are rarely accepted.

4. **Documentation updates**
Update manual, javadocs, examples, or reference docs when applicable.

5. **Passing CI**
PRs must pass all CI jobs unless reviewers explicitly allow exceptions.

6. **Code Review**
All PRs require at least two approvals from Apache committers before merging.

7. **Squash after review**
After committers' approvals and before merging, please squash commits into one, with a commit message in the following format:
```
NODEJS-696: Migrate Travis CI to Github Action
patch by Jane He; reviewed by Abe Ratnofsky and Bret McGuire for NODEJS-696
```

## Development Setup

### Prerequisites
- Node.js v20 or later
- npm

### Running Tests Locally
1. Install Cassandra Cluster Manager (CCM) following its [README](https://github.com/apache/cassandra-ccm).
2. On MacOS only, enable loopback aliases:

```shell
for i in {2..255}; do sudo ifconfig lo0 alias 127.0.0.$i up; done
```
Note: This may slow down networking. To remove the aliases after testing:
```shell
for i in {2..255}; do sudo ifconfig lo0 -alias 127.0.0.$i up; done
```

3. Install project dependencies: `npm install`
4. Run the tests: `npx mocha test/unit test/integration/short --recursive --exit`.
You can specify the Cassandra version by the `CCM_VERSION` environment variable, e.g.:
`CCM_VERSION=5.0.2 npx mocha test/unit test/integration/short --recursive --exit`.

## License and CLA

All contributions are made under the Apache License, Version 2.0. The ASF requires a signed Contributor License Agreement (CLA) for non-trivial contributions.
28 changes: 19 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Node.js Driver for Apache Cassandra®

A modern, [feature-rich](#features) and highly tunable Node.js client library for Apache Cassandra and [DSE][dse] using
exclusively Cassandra's binary protocol and Cassandra Query Language.
A modern, [feature-rich](#features) and highly tunable Node.js client library for Apache Cassandra, [DSE][dse], [HCD][hcd], and [Astra DB][astra] using exclusively Cassandra's binary protocol and Cassandra Query Language.

## Installation

Expand Down Expand Up @@ -34,9 +33,19 @@ $ npm install cassandra-driver
- [API docs][doc-api]
- [FAQ][faq]

## Getting Help
## Contribution and Communication

You can use the [project mailing list][mailinglist] or create a ticket on the [Jira issue tracker][jira].
Please refer to the [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to contribute to the project.

1. **Mailing List**:
- https://groups.google.com/a/lists.datastax.com/g/nodejs-driver-user
- Or https://lists.apache.org/list.html?dev@cassandra.apache.org
2. **JIRA**:
- https://issues.apache.org/jira/projects/CASSNODEJS
- Older issues before the donation can be found at:
- https://datastax-oss.atlassian.net/projects/NODEJS
3. **GitHub Repository**: https://github.com/apache/cassandra-nodejs-driver
4. **Slack**: #cassandar-drivers channel, if you are in the Apache Software Foundation [Slack](https://infra.apache.org/slack.html)

## Basic usage

Expand Down Expand Up @@ -250,7 +259,7 @@ The current version of the driver offers support consistent with this policy for

- Apache Cassandra versions 3.0 and above.
- DataStax Enterprise versions 5.1 and 6.8.
- Node.js versions 18.x, 20.x, and 22.x.
- Node.js versions 20.x, 22.x, and 24.x.

Note: DataStax products do not support big-endian systems.

Expand All @@ -260,6 +269,8 @@ This driver is based on the original work of [Jorge Bay][jorgebay] on [node-cass

The development effort to provide an up to date, high performance, fully featured Node.js Driver for Apache Cassandra will continue on this project, while [node-cassandra-cql][old-driver] will be discontinued.

This project is donated to the Apache Software Foundation and is now maintained under the Apache Cassandra project.

## License

Copyright 2013 The Apache Software Foundation
Expand Down Expand Up @@ -291,9 +302,8 @@ Unless required by applicable law or agreed to in writing, software distributed
[project documentation]: https://github.com/nodejs/release#release-schedule
[jorgebay]: https://github.com/jorgebay
[drivers]: https://github.com/datastax
[mailinglist]: https://groups.google.com/a/lists.datastax.com/forum/#!forum/nodejs-driver-user
[jira]: https://datastax-oss.atlassian.net/projects/NODEJS/issues
[streams2]: https://nodejs.org/api/stream.html#stream_class_stream_readable
[cql-udt]: https://cassandra.apache.org/doc/latest/cql/types.html#udts
[dse]: https://www.datastax.com/products/datastax-enterprise
[astra]: https://www.datastax.com/products/datastax-astra
[dse]: https://docs.datastax.com/en/dse/6.9/get-started/get-started-dse.html
[hcd]: https://docs.datastax.com/en/hyper-converged-database/1.2/get-started/hcd-introduction.html
[astra]: https://docs.datastax.com/en/astra-db-serverless/index.html
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,6 @@
"eslint": "eslint lib test"
},
"engines": {
"node": ">=18"
"node": ">=20"
}
}