SiyaoIsHiding commented on code in PR #2041:
URL: 
https://github.com/apache/cassandra-java-driver/pull/2041#discussion_r2886928544


##########
CONTRIBUTING.md:
##########
@@ -17,42 +17,154 @@ specific language governing permissions and limitations
 under the License.
 -->
 
-# Contributing guidelines
+# Contributing to the Cassandra Java Driver
 
-## Code formatting
+Thank you for your interest in contributing!  
 
-### Java
+## Table of Contents
+- [Ways to Contribute](#ways-to-contribute)
+- [Contribution Process](#contribution-process)
+  - [Reporting Issues](#reporting-issues)
+  - [Submitting Changes (Pull Requests)](#submitting-changes-pull-requests)
+- [Development Setup](#development-setup)
+  - [Prerequisites](#prerequisites)
+  - [Building the Project](#building-the-project)
+  - [Running Tests](#running-tests)
+- [Coding Guidelines](#coding-guidelines)
+  - [General](#general)
+  - [Code Formatting and License Headers](#code-formatting-and-license-headers)
+  - [Javadoc](#javadoc)
+  - [Logging](#logging)
+  - [Don't abuse the stream API](#dont-abuse-the-stream-api)
+  - [Never assume a specific format for 
toString()](#never-assume-a-specific-format-for-tostring)
+  - [Concurrency annotations](#concurrency-annotations)
+  - [Nullability annotations](#nullability-annotations)
+- [Coding Guidelines for Tests](#coding-guidelines-for-tests)
+  - [Coding style -- test code](#coding-style----test-code)
+  - [Unit tests](#unit-tests)
+  - [Integration tests](#integration-tests)
 
-We follow the [Google Java Style 
Guide](https://google.github.io/styleguide/javaguide.html). See
-https://github.com/google/google-java-format for IDE plugins. The rules are 
not configurable.
+## Ways to Contribute
 
-The build will fail if the code is not formatted. To format all files from the 
command line, run:
- 
-```
-mvn fmt:format
-```
+There are many ways to contribute, including:
 
-Some aspects are not covered by the formatter: braces must be used with `if`, 
`else`, `for`, `do`
-and `while` statements, even when the body is empty or contains only a single 
statement.
+- **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.
 
-### XML
+### Communication
+1. **Mailing List**: 
https://groups.google.com/a/lists.datastax.com/g/java-driver-user
+2. **JIRA**: https://issues.apache.org/jira/projects/CASSJAVA
+3. **GitHub Repository**: https://github.com/apache/cassandra-java-driver
+4. **Slack**: #cassandar-drivers channel, if you are in the Apache Software 
Foundation [Slack](https://infra.apache.org/slack.html)
 
-The build will fail if XML files are not formatted correctly. Run the 
following command before you
-commit:
 
-```java
-mvn xml-format:xml-format
+## Contribution Process
+
+### Reporting Issues
+
+All issues must be tracked in **Apache JIRA**:  
+<https://issues.apache.org/jira/projects/CASSJAVA>
+
+When filing an issue:
+
+- Clearly describe the problem, expected behavior, and actual behavior.
+- Include driver version, Java version, and Cassandra cluster details.
+- Add reproduction steps or a minimal test case if possible.
+- Use the appropriate issue type (Bug, Improvement, New Feature, etc.).
+- Set the correct components (e.g., `core`, `mapper-runtime`, `quarkus`).
+
+Committers will help refine the ticket if needed.
+
+### Submitting Changes (Pull Requests)
+
+All code changes require:
+
+1. **A corresponding JIRA ticket**  
+   Include the JIRA key in the PR title, e.g.:  
+   `CASSJAVA-40: Driver testing against Java 21`
+   
+2. **A pull request on GitHub**  
+   Repository: <https://github.com/apache/cassandra-java-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.
+
+**Do not** mix unrelated changes in one PR—keep contributions focused.
+
+**Do not** base a PR on another one.
+
+**Do not** squash commits before the PR is ready to merge.
+
+---
+
+## Development Setup
+
+### Prerequisites
+
+- **Java 8+** 
+- **Maven**
+
+### Building the Project
+
+- Ensure Maven is installed and you are using Java 8.
+- Build the project with:
+  ```
+  mvn clean package -DskipTests
+  ```
+- If using an IDE like IntelliJ and encountering issues with guava-shaded 
classes:
+   - Run:
+     ```
+     mvn clean install -DskipTests
+     ```
+   - If IntelliJ uses a different Maven version, use the Maven window in 
IntelliJ: under `Lifecycle`, click `clean` and then `install`.

Review Comment:
   From my experience, I didn't need to ignore the IntelliJ built-in maven, I 
just had to make the IntelliJ built-in maven to install the cache, too.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to