Thanks for contributing to jsonrpc-spring-boot-starter.
This project provides JSON-RPC 2.0 server components for Spring Boot:
- core protocol/dispatch module
- Spring WebMVC transport module
- Spring Boot auto-configuration and starter
Protocol behavior should stay aligned with the JSON-RPC 2.0 specification.
- Check existing issues and pull requests to avoid duplicate work.
- For non-trivial changes, open an issue first and discuss the approach.
- Keep changes focused and small when possible.
Requirements:
- JDK 17+
- Gradle wrapper (
./gradlew)
Common commands:
./gradlew test
./gradlew check
./scripts/verify-consumer-smoke.sh
./gradlew -p samples/spring-boot-demo classesNull-safety gate:
- Production code (
compile*Javaexcept test source sets) is validated by NullAway duringcheck. - Test source sets are intentionally excluded from NullAway to keep tests focused on behavior assertions.
- If NullAway fails, fix nullable contracts (
@Nullable, guard clauses, fallback defaults) before opening a PR.
- Follow existing module boundaries and abstraction style.
- Preserve JSON-RPC 2.0 compliance.
- Add or update tests for:
- success paths
- failure paths
- exception/edge branches
- Keep public API behavior backward compatible unless a breaking change is intentional and documented.
This repository uses a two-axis label taxonomy:
type:*labels classify issue category (type: bug,type: feature, etc.).status:*labels represent workflow state (status: blocked,status: declined,status: duplicate,status: waiting-for-feedback).
Rules:
- Every issue template must define exactly one
type:*label and exactly onestatus:*label. - Only one
status:*label should be present on an issue at a time. - Automated triage keeps status labels normalized on open/reopen/label events and can remove
status: waiting-for-feedbackwhen the issue author replies.
- Write clear commit messages describing intent.
- Update docs when behavior/configuration changes.
- Add clear release notes in the GitHub Release for user-visible changes.
Before opening a PR, make sure:
- Tests pass locally.
- New behavior is covered by tests.
- Documentation is updated.
- The PR description explains motivation, approach, and trade-offs.
Do not open public issues for sensitive security vulnerabilities.
Share details privately with maintainers first.
See SECURITY.md for policy details.