Contributing
We welcome contributions to CoCache! Here's how to get started.
Quick Start
bash
# Clone the repository
git clone https://github.com/Ahoo-Wang/CoCache.git
cd CoCache
# Build without tests
./gradlew build -x test
# Run full check (tests + detekt)
./gradlew checkDevelopment Setup
- JDK 17+ required (configured via
jvmToolchainin build.gradle.kts) - Gradle 9.4.1 (wrapper included)
- Kotlin 2.3.20 with
-Xjsr305=strictand-Xjvm-default=all-compatibility
Code Style
- Detekt config at
config/detekt/detekt.yml - Run
./gradlew detektto check,./gradlew detektAutoFixto auto-fix - Key rules:
MaxLineLength= 300, wildcard imports allowed forjava.util.*
Testing
- JUnit 5 with mockk and fluent-assert
- Use
.assert()extension — never AssertJ'sassertThat()in Kotlin tests - New cache implementations should extend TCK specs in
cocache-test
Pull Request Process
- Fork the repository
- Create a feature branch from
main - Ensure
./gradlew checkpasses - Open a PR with a clear description of changes
Reporting Issues
Please use GitHub Issues to report bugs or request features.
For more details, see Contributing Guide.