Skip to content

Compatibility Matrix

James Maes edited this page Dec 24, 2025 · 3 revisions

Compatibility Matrix

QQQ's compatibility matrix defines supported versions, dependencies, and upgrade paths. This document helps users understand compatibility requirements and plan upgrades.

Quick Links

Version Compatibility Rules

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

Java Version Support

Current Support Matrix

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 Version Requirements

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

Maven Version Support

Build System Requirements

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+ ⚠️ Deprecated 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 Compatibility

RDBMS Backend Support

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 Backend Support

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+ ⚠️ Deprecated Upgrade recommended
< 4.4 0.26.0+ 4.6.0+ ❌ Deprecated EOL

Filesystem Backend Support

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

Middleware Compatibility

HTTP Server (Javalin)

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

CLI Framework (PicoCLI)

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

AWS Lambda Support

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

Frontend Compatibility

React Dashboard

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 Support

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+

Operating System Support

Development Environment

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+ ⚠️ Limited Some dev tools may not work

Production Deployment

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+ ⚠️ Limited Not recommended

Dependency Compatibility

Core Dependencies

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

Backend Dependencies

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

Upgrade Compatibility

Major Version Upgrades

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

Minor Version Upgrades

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

Patch Version Upgrades

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

Migration Strategies

Planning Upgrades

  1. Review Release Notes: Check for breaking changes
  2. Test in Development: Verify compatibility
  3. Plan Migration: Schedule upgrade timeline
  4. Backup Data: Ensure data safety
  5. Execute Upgrade: Follow migration guide

Testing Compatibility

# Test with new version
mvn clean install

# Run integration tests
mvn test -pl qqq-sample-project

# Verify functionality
# Test core features and custom code

Rollback Planning

  1. Version Pinning: Pin to specific versions
  2. Backup Strategy: Regular data backups
  3. Rollback Scripts: Automated rollback procedures
  4. Monitoring: Watch for post-upgrade issues

Support Timeline

Version Support Policy

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

Long Term Support (LTS)

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

Compatibility Testing

Automated Testing

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

Manual Testing

Before production deployment:

  • Functional Testing: Verify core functionality
  • Performance Testing: Check performance impact
  • Integration Testing: Test with existing systems
  • User Acceptance: Validate user workflows

Best Practices

Version Management

  1. Pin Versions: Use specific versions in production
  2. Regular Updates: Keep dependencies current
  3. Test Upgrades: Verify compatibility before deployment
  4. Monitor Changes: Watch for breaking changes

Compatibility Planning

  1. Review Roadmap: Understand future changes
  2. Plan Upgrades: Schedule regular updates
  3. Test Early: Test new versions in development
  4. Document Changes: Keep upgrade notes current

See Also

Clone this wiki locally