Contributing to BerryCrush
Thank you for your interest in contributing to BerryCrush! This guide will help you get started.
Getting Started
Fork the repository on GitHub
Clone your fork:
git clone https://github.com/YOUR_USERNAME/berrycrush.git cd berrycrush
Set up the development environment:
# Verify JDK 21 java -version # Build the project ./gradlew build
Development Workflow
1. Create a Branch
git checkout -b feature/my-new-feature
2. Make Changes
Follow the Kotlin coding conventions
Write tests for new functionality
Update documentation as needed
3. Format Code
./gradlew ktlintFormat
4. Run Tests
./gradlew test
5. Commit Changes
git commit -m "feat(scope): add new feature"
6. Push and Create PR
git push origin feature/my-new-feature
Then create a Pull Request on GitHub.
Code Quality Standards
Kotlin Style
Use ktlint for formatting
Follow official Kotlin conventions
Prefer immutability (
valovervar)Use meaningful names
Add KDoc comments for public APIs
Testing
Write unit tests for new code
Aim for high test coverage
Use descriptive test names
Include edge cases
Documentation
Update README if adding features
Add KDoc to public classes/methods
Update Sphinx docs for user-facing changes
Pull Request Guidelines
One feature per PR - Keep PRs focused
Clear description - Explain what and why
Reference issues - Link to related issues
Pass CI - All checks must pass
Respond to feedback - Address review comments
Reporting Issues
When reporting bugs:
Search existing issues first
Include reproduction steps
Provide version information
Attach relevant logs/output
License
By contributing, you agree that your contributions will be licensed under the project’s Apache 2.0 License.