Contributing¶
Thanks for your interest! easy-paging is small enough that the contribution flow is intentionally minimal.
For the canonical contributor guide (including the maintainer release procedure), see CONTRIBUTING.md in the repository.
Quick start¶
git clone https://github.com/devslab-kr/easy-paging-spring-boot-starter.git
cd easy-paging-spring-boot-starter
./gradlew build
Requires JDK 21+. The Gradle wrapper handles everything else.
How to contribute¶
- Open an issue first for non-trivial changes — it lets us check whether the change fits the library's scope before you spend time on it.
- Branch from
mainwith a descriptive name:feature/keyset-reverse-direction,fix/sort-null-handling,docs/clarify-cursor-signing. - Write the test first. Especially for security-touching changes (sort validation, cursor codec, etc.) — see existing tests under
src/test/java/.../it/for the integration patterns we use. - Run
./gradlew buildlocally before pushing. CI runs the same command on Linux; passing locally usually means passing in CI. - Open a PR describing what changed and why. Reference the issue.
Code style¶
- 4-space indent, UTF-8, LF line endings (
.editorconfigenforces this). - Compiler runs with
-Werrorand-Xlint:all(minusclassfile,processing,serial). Passing local builds means CI agrees. - Javadoc on every public type and non-trivial public method. Explain why, not what — the what is in the code.
Tests¶
- Unit tests for pure types (
Sort,Cursor,PageResponse,KeysetPage) live alongside their target undersrc/test/java/.../coreorsupport. - Integration tests (Spring Boot + H2 + MyBatis + PageHelper) live under
src/test/java/.../itand share a single test application (TestApplication).
Reporting issues¶
Use the templates under .github/ISSUE_TEMPLATE/ and include:
- Output of
./gradlew --version - Your Spring Boot version
- A minimal reproduction (a small public repo is ideal)
Documentation contributions¶
This site is built with MkDocs Material. Pages live in docs/, with .md for English and .ko.md for Korean. To preview locally:
Then open http://localhost:8000. CI auto-deploys to easy-paging.devslab.kr on every push to main.