-
Notifications
You must be signed in to change notification settings - Fork 0
Compatibility Matrix
James Maes edited this page Dec 24, 2025
·
3 revisions
QQQ's compatibility matrix defines supported versions, dependencies, and upgrade paths. This document helps users understand compatibility requirements and plan upgrades.
QQQ follows semantic versioning for compatibility:
- Major versions (X.0.0): May include breaking changes
- Minor versions (X.Y.0): Backward compatible, new features
- Patch versions (X.Y.Z): Backward compatible, bug fixes only
| QQQ Version | Java Version | Status | End of Support |
|---|---|---|---|
| 1.x.x | 17+ | ✅ Supported | TBD |
| 0.26.x | 17+ | ✅ Supported | TBD |
| 0.25.x | 17+ | ✅ Supported | TBD |
| < 0.25.0 | 8, 11 | ❌ Deprecated | EOL |
Java 17+ Required for all current QQQ versions:
- Java 17: Minimum required version
- Java 18: Supported
- Java 19: Supported
- Java 20: Supported
- Java 21: Supported (LTS)
- Java 22: Supported
Why Java 17?
- Records: Used extensively in QQQ data models
- Pattern Matching: Enhanced switch expressions
- Text Blocks: Better configuration handling
- Performance: Improved garbage collection and performance
| QQQ Version | Maven Version | Status | Notes |
|---|---|---|---|
| 1.x.x | 3.8+ | ✅ Required | Uses advanced plugins |
| 0.26.x | 3.8+ | ✅ Required | Uses advanced plugins |
| 0.25.x | 3.6+ | Upgrade recommended | |
| < 0.25.0 | 3.6+ | ❌ Deprecated | EOL |
Maven 3.8+ Required for current versions:
- Versions Plugin: Advanced version management
- GitFlow Plugin: GitFlow integration
- Central Publishing: Maven Central deployment
- Modern Plugin Features: Enhanced build capabilities
| Database | QQQ Version | Driver Version | Status | Notes |
|---|---|---|---|---|
| PostgreSQL | 0.25.0+ | 42.6.0+ | ✅ Supported | Primary target |
| MySQL | 0.25.0+ | 8.0.33+ | ✅ Supported | Full support |
| SQL Server | 0.26.0+ | 12.4.0+ | ✅ Supported | Enterprise support |
| H2 | 0.25.0+ | 2.2.220+ | ✅ Supported | Development/testing |
| Oracle | 0.27.0+ | 23.1.0+ | 🔄 Beta | Limited testing |
| MongoDB Version | QQQ Version | Driver Version | Status | Notes |
|---|---|---|---|---|
| 6.0+ | 0.26.0+ | 4.10.0+ | ✅ Supported | Full support |
| 5.0+ | 0.26.0+ | 4.8.0+ | ✅ Supported | Full support |
| 4.4+ | 0.26.0+ | 4.6.0+ | Upgrade recommended | |
| < 4.4 | 0.26.0+ | 4.6.0+ | ❌ Deprecated | EOL |
| Storage Type | QQQ Version | Status | Notes |
|---|---|---|---|
| Local Filesystem | 0.25.0+ | ✅ Supported | Full support |
| AWS S3 | 0.26.0+ | ✅ Supported | Cloud storage |
| SFTP | 0.26.0+ | ✅ Supported | Remote access |
| Azure Blob | 0.27.0+ | 🔄 Beta | Limited testing |
| Component | QQQ Version | Version | Status | Notes |
|---|---|---|---|---|
| Javalin | 0.25.0+ | 5.6.0+ | ✅ Supported | HTTP server |
| Jetty | 0.25.0+ | 11.0.15+ | ✅ Supported | Embedded server |
| Jackson | 0.25.0+ | 2.15.0+ | ✅ Supported | JSON processing |
| OpenAPI | 0.26.0+ | 3.0.0+ | ✅ Supported | API documentation |
| Component | QQQ Version | Version | Status | Notes |
|---|---|---|---|---|
| PicoCLI | 0.25.0+ | 4.7.0+ | ✅ Supported | CLI framework |
| JLine3 | 0.25.0+ | 3.23.0+ | ✅ Supported | Interactive shell |
| Component | QQQ Version | AWS SDK Version | Status | Notes |
|---|---|---|---|---|
| Lambda Runtime | 0.26.0+ | 2.20.0+ | ✅ Supported | Serverless |
| S3 Integration | 0.26.0+ | 2.20.0+ | ✅ Supported | File storage |
| SQS Integration | 0.27.0+ | 2.20.0+ | 🔄 Beta | Message queuing |
| Component | QQQ Version | Version | Status | Notes |
|---|---|---|---|---|
| React | 0.25.0+ | 18.2.0+ | ✅ Supported | UI framework |
| TypeScript | 0.25.0+ | 5.0.0+ | ✅ Supported | Type safety |
| Material-UI | 0.25.0+ | 5.14.0+ | ✅ Supported | Component library |
| Node.js | 0.25.0+ | 18.0.0+ | ✅ Required | Build environment |
| Browser | QQQ Version | Status | Notes |
|---|---|---|---|
| Chrome | 0.25.0+ | ✅ Supported | 90+ |
| Firefox | 0.25.0+ | ✅ Supported | 88+ |
| Safari | 0.25.0+ | ✅ Supported | 14+ |
| Edge | 0.25.0+ | ✅ Supported | 90+ |
| OS | QQQ Version | Status | Notes |
|---|---|---|---|
| macOS | 0.25.0+ | ✅ Primary | QQQ dev tools optimized |
| Linux | 0.25.0+ | ✅ Supported | Full compatibility |
| Windows | 0.25.0+ | Some dev tools may not work |
| OS | QQQ Version | Status | Notes |
|---|---|---|---|
| Linux | 0.25.0+ | ✅ Supported | Primary production target |
| Docker | 0.25.0+ | ✅ Supported | Containerized deployment |
| Kubernetes | 0.26.0+ | ✅ Supported | Orchestration support |
| Windows Server | 0.25.0+ | Not recommended |
| Dependency | QQQ Version | Version Range | Status | Notes |
|---|---|---|---|---|
| JUnit | 0.25.0+ | 5.8.0+ | ✅ Required | Testing framework |
| AssertJ | 0.25.0+ | 3.23.0+ | ✅ Required | Test assertions |
| JaCoCo | 0.25.0+ | 0.8.8+ | ✅ Required | Code coverage |
| Checkstyle | 0.25.0+ | 10.8.0+ | ✅ Required | Code quality |
| Dependency | QQQ Version | Version Range | Status | Notes |
|---|---|---|---|---|
| C3P0 | 0.25.0+ | 0.9.5.5+ | ✅ Required | Connection pooling |
| HikariCP | 0.26.0+ | 5.0.0+ | ✅ Supported | Alternative pool |
| MongoDB Driver | 0.26.0+ | 4.6.0+ | ✅ Required | MongoDB support |
| AWS SDK | 0.26.0+ | 2.20.0+ | ✅ Required | AWS integration |
| From Version | To Version | Breaking Changes | Migration Required |
|---|---|---|---|
| 0.25.x | 1.0.0 | ✅ Yes | Major migration guide |
| 0.26.x | 1.0.0 | ✅ Yes | Major migration guide |
| 0.27.x | 1.0.0 | ✅ Yes | Major migration guide |
Breaking Changes in 1.0.0:
-
Action Interface:
execute()method signature changes - Context Management: QContext initialization changes
- Metadata Structure: QInstance organization updates
- API Endpoints: REST API path changes
| From Version | To Version | Breaking Changes | Migration Required |
|---|---|---|---|
| 0.25.0 | 0.26.0 | ❌ No | Drop-in replacement |
| 0.26.0 | 0.27.0 | ❌ No | Drop-in replacement |
| 0.27.0 | 0.28.0 | ❌ No | Drop-in replacement |
Minor Version Benefits:
- New Features: Additional capabilities
- Performance: Improved performance
- Bug Fixes: Resolved issues
- Security: Security updates
| From Version | To Version | Breaking Changes | Migration Required |
|---|---|---|---|
| 0.26.0 | 0.26.1 | ❌ No | Drop-in replacement |
| 0.26.1 | 0.26.2 | ❌ No | Drop-in replacement |
| 0.27.0 | 0.27.1 | ❌ No | Drop-in replacement |
Patch Version Benefits:
- Bug Fixes: Critical issue resolution
- Security: Security patches
- Stability: Improved stability
- Compatibility: No breaking changes
- Review Release Notes: Check for breaking changes
- Test in Development: Verify compatibility
- Plan Migration: Schedule upgrade timeline
- Backup Data: Ensure data safety
- Execute Upgrade: Follow migration guide
# Test with new version
mvn clean install
# Run integration tests
mvn test -pl qqq-sample-project
# Verify functionality
# Test core features and custom code- Version Pinning: Pin to specific versions
- Backup Strategy: Regular data backups
- Rollback Scripts: Automated rollback procedures
- Monitoring: Watch for post-upgrade issues
| Version Type | Support Duration | End of Life |
|---|---|---|
| Current | 12 months | 12 months after next release |
| Previous | 6 months | 6 months after next release |
| Legacy | 3 months | 3 months after next release |
QQQ plans LTS versions for production stability:
- LTS Versions: 24 months of support
- Security Updates: Regular security patches
- Bug Fixes: Critical bug resolution
- No Breaking Changes: Stability guarantee
QQQ maintains compatibility through:
- CI/CD Pipeline: Automated compatibility checks
- Integration Tests: Cross-version testing
- Sample Applications: Real-world compatibility testing
- Dependency Scanning: Regular dependency updates
Before production deployment:
- Functional Testing: Verify core functionality
- Performance Testing: Check performance impact
- Integration Testing: Test with existing systems
- User Acceptance: Validate user workflows
- Pin Versions: Use specific versions in production
- Regular Updates: Keep dependencies current
- Test Upgrades: Verify compatibility before deployment
- Monitor Changes: Watch for breaking changes
- Review Roadmap: Understand future changes
- Plan Upgrades: Schedule regular updates
- Test Early: Test new versions in development
- Document Changes: Keep upgrade notes current
- Semantic Versioning Policy - Version numbering
- Release Flow - Release process