This document is for project maintainers and details the processes and tools used for maintaining the project.
-
Required Tools
- JDK 11
- Gradle
- Git
- GPG for signing releases
-
IDE Configuration
- Install Spotless plugin
- Configure auto-formatting
- Set up import optimization
-
Pull Request Review Checklist
- Code follows style guidelines
- Tests are included and passing
- Documentation is updated
- Commit messages follow conventions
- Changes are appropriate for target branch
-
Merge Strategy
- Use squash and merge for feature branches
- Use merge commits for release branches
- Always preserve history in maintenance branches
-
Branch Structure
master- Next version development#.x- Maintenance branchesrelease/*- Release preparation
-
Version Numbering
- Major: Breaking changes
- Minor: New features (backwards compatible)
- Patch: Bug fixes
- Pre-release:
-M#or-RC#
See RELEASE.md for detailed release procedures.
-
Vulnerability Handling
- Security issues get priority
- Create private security advisory
- Backport fixes to supported versions
- Coordinate disclosure
-
Key Management
- Rotate GPG keys annually
- Store keys securely
- Document key handover process
-
Required Updates
- README.md
- CHANGELOG.md
- API documentation
- Wiki (if applicable)
-
Release Notes
- Feature descriptions
- Breaking changes
- Upgrade instructions
- Contributors list
-
Issue Triage
- Bug: Needs reproduction
- Enhancement: Needs specification
- Question: Needs clarification
-
Response Times
- Security issues: 24 hours
- Bugs: 48 hours
- Features: 1 week
- Questions: 1 week