Contributing¶
Thanks for your interest in api-log. This is a small, focused starter — contributions are welcome especially for the items on the Roadmap.
Before you start¶
- Check open issues at github.com/devslab-kr/api-log/issues — your problem may already be tracked
- For larger changes, open a discussion or issue first so we can agree on the approach before you spend time
- For small fixes (typos, doc improvements, obvious bugs), just open a PR
Development setup¶
Prerequisites¶
- Java 21+ (the project uses
<java.version>21</java.version>) - Maven 3.9+ (or use the bundled
./mvnwwrapper) - Docker (for Testcontainers — PostgreSQL integration tests)
- Python 3.12+ (for
mkdocs servelocal docs preview)
Clone and build¶
This compiles the library, runs unit tests, and runs the Testcontainers integration tests (Docker must be running).
Preview the docs locally¶
Visit http://localhost:8000. The site rebuilds on save.
Coding conventions¶
- Java style — Spring Boot defaults; 4-space indent; line width is flexible (no enforced limit)
- Lombok is used —
@Getter,@RequiredArgsConstructor,@Builder - Test naming —
<ClassUnderTest>Testfor unit tests,<ClassUnderTest>IntegrationTestfor Testcontainers-backed tests - Commit messages — short imperative subject (
Add WebClient adapter), explain the why in the body if non-obvious
Submitting a PR¶
- Fork the repo and create a feature branch off
master - Write tests — every behavior change ships with tests
- Update docs — if you add a public API or property, update the matching page in
docs/ - Update the changelog under
[Unreleased](see Changelog) - Open the PR against
masterand fill in the description
We'll review within a few days for small PRs, longer for substantial ones.
Roadmap¶
Items we'd love contributions on:
-
PUT,DELETE,PATCHmethods onRestApiClientUtil - WebClient (reactive) variant of
RestApiClientUtil - Per-call header override API
- Configurable async executor (separate from Spring's default)
- Pluggable serialization (currently Jackson-only)
- Table partitioning helper (monthly
api_log_YYYYMMpartitions)
Reporting bugs¶
Open an issue with:
- Spring Boot version, Java version, PostgreSQL version
- Minimal reproduction (smallest code/config that triggers the issue)
- Expected vs. actual behavior
- Full stack trace if applicable
Code of conduct¶
Be respectful. Devslab follows the Contributor Covenant — harassment, discrimination, and trolling are not tolerated.
License¶
By contributing, you agree your contributions are licensed under the Apache License 2.0.