-
Notifications
You must be signed in to change notification settings - Fork 0
Semantic Versioning Policy
James Maes edited this page Dec 24, 2025
·
3 revisions
QQQ follows Semantic Versioning 2.0.0 to ensure predictable releases and safe upgrades for users.
When: Backward-compatible bug fixes and minor improvements.
Examples:
- Bug fixes that don't change public APIs
- Security patches and vulnerability fixes
- Performance optimizations with no behavior changes
- Documentation corrections and clarifications
- Dependency updates that don't break compatibility
When: New backward-compatible functionality.
Examples:
- New features that extend existing APIs
- New backend modules, middleware components
- New dashboard widgets and UI components
- Enhanced configuration options
- New utility classes and helper methods
When: Incompatible API changes or breaking modifications.
Examples:
- Breaking changes to public APIs
- Removal of deprecated features
- Incompatible configuration changes
- Database schema changes that break existing data
- Major architectural changes
SemVer applies to these public interfaces that users depend on:
- Java APIs: Public classes, methods, interfaces, constants, exceptions
- Configuration: Environment variables, config files, database parameters
- Network Interfaces: REST endpoints, gRPC services, WebSocket formats
- CLI Commands: Command names, arguments, output formats
- Database Schemas: Table structures, indexes, stored procedures
- Method signature changes (parameters, return types, exceptions)
- Required new configuration properties
- Different output formats or behavior
- Removal of public APIs or features
- Internal implementation refactoring
- Performance improvements with same results
- New optional features with defaults
- Documentation updates and clarifications
QQQ follows a two-version deprecation policy:
-
Mark as deprecated with
@Deprecatedannotation - Keep available for at least one major version
- Remove in next major version
@Deprecated(since = "1.5.0", forRemoval = true)
public class OldClass {
// Will be removed in 3.0.0
}- Release Flow - Release workflow
- Branching & Versioning - Branching strategy