Thank you for your interest in contributing to this project. This guide covers everything you need to get started.
- Getting Started
- Making Changes
- Submitting a Pull Request
- Reporting Issues
- Project Architecture
- Legal
| Requirement | Version | Notes |
|---|---|---|
| Java (JDK) | 21+ | Must be a JDK, not a JRE |
| Gradle | 9.4+ | Included via wrapper (./gradlew) |
| Git | 2.x+ | For version control |
-
Fork the repository on GitHub.
-
Clone your fork locally:
git clone https://github.com/<your-username>/<repo>.git cd <repo>
-
Build the project to verify your setup:
./gradlew build
This compiles all sources, runs tests, and produces the output JAR.
-
Open the project in your preferred IDE. IntelliJ IDEA with the Lombok plugin is recommended.
Tip
You do not need to install Gradle separately. The repository includes a
Gradle wrapper (gradlew / gradlew.bat) that downloads the correct version
automatically.
-
All development is based on the
masterbranch. -
Create a feature branch from
masterfor your changes:git checkout -b feature/your-feature master
-
Keep branches focused on a single change or closely related set of changes.
- Follow standard Java coding conventions.
- Use Lombok annotations where the project already uses them (e.g.,
@Getter,@RequiredArgsConstructor). Do not add Lombok to classes that do not already use it without discussion. - Use JetBrains
@NotNull/@Nullableannotations for parameter and return type nullability. - Write Javadoc for all public classes and methods.
- Omit braces on single-line
if/for/whilebodies; use braces when the body wraps to multiple lines.
- Use the imperative mood in the subject line (e.g., "Add feature" not "Added feature" or "Adds feature").
- Keep the subject line under 72 characters.
- Separate the subject from the body with a blank line if a body is needed.
- Reference related issues in the body (e.g.,
Closes #42).
# Run all unit tests
./gradlew test
# Run a specific test class
./gradlew test --tests "dev.simplified.*.YourTestClass"
# Full build with all checks
./gradlew buildNote
Ensure all existing tests pass before submitting your pull request. Add new tests for any new functionality.
-
Push your branch to your fork:
git push origin feature/your-feature
-
Open a Pull Request against
masteron the upstream repository. -
In the PR description:
- Summarize what the change does and why.
- Reference any related issues.
- Note any breaking changes.
-
Wait for review. Address any feedback by pushing additional commits to your branch.
- Use the GitHub Issues tab to report bugs or request features.
- For bugs, include:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Java version and OS
- For feature requests, describe the use case and proposed API if applicable.
This project is a single-module Gradle library built with java-library. The
source follows standard Gradle conventions:
src/
├── main/java/ # Library source code
├── test/java/ # Unit and integration tests (JUnit 5)
└── jmh/java/ # Benchmarks (if applicable)
All public API lives under the dev.simplified package namespace. The library
is published via JitPack as a master-SNAPSHOT artifact.
By submitting a pull request, you agree that your contributions are licensed under the Apache License 2.0, the same license that covers this project.