Atomic Updates
API Stability and Version Compatibility
Current Status
Waxed is currently in active development. No stable release has been made yet.
During this development phase:
- APIs may change without notice as the project evolves
- Plugin ABI is not stable - plugins must be rebuilt when interfaces change
- No backward compatibility guarantees exist at this time
Future Decisions
Version compatibility and ABI stability policies will be established when the project approaches a V1.0.0 release. Decisions to be made at that time include:
- Whether to maintain backward compatibility between major versions
- Whether to provide a stable plugin ABI
- How to handle deprecation of older APIs
- What versioning scheme to use (semantic versioning, etc.)
Current Development Practices
While in development, we follow practical approaches:
When Interfaces Change
- Update all call sites in the codebase
- Rebuild all plugins
- Ensure tests pass
Code Quality Standards
- Use
cartographertools to understand impact before changing interfaces - Build must succeed with zero warnings
- Modern C++26 features are used (std::expected, RAII patterns)
- Vulkan code uses
vulkan_raii.hppfor automatic resource management
Plugin Development
Plugin authors should expect interfaces to change during development. Keep your plugin code in sync with the latest Waxed source.
This document will be updated with formal versioning policies as the project matures.