v0.9.0
·
692 commits
to main
since this release
Added
- Advanced YAML Configuration System: Complete configuration management with composition and validation
- File includes via
include:directive (single file or list) and!includetag - Parameter overrides with dot-notation syntax (e.g.,
io.loader.batch_size: 8) - Command-line configuration via
--setflag - Recursive deep merging of configuration dictionaries
- File includes via
- Configuration Metadata System: Version control and compatibility checking via
__meta__blocks- Version tracking with 6-digit YYMMDD format (e.g., "240719")
- Compatibility constraints with operators (==, >=, <=, >, <, !=)
- Deferred validation supporting forward references between components
- Automatic component version inference from directory structure
- Configurable behavior:
kind(bundle/mod),strictmode (warn/error),list_append(append/unique) - Modifier metadata:
priority,applies_to,requires,conflicts_with - Comprehensive METADATA_GUIDE.md documentation
- Typed Exception Hierarchy: 7 specialized exceptions for configuration errors
ConfigError(base),ConfigIncludeError,ConfigCycleError,ConfigPathErrorConfigTypeError,ConfigOperationError,ConfigValidationError
- Modular Package Architecture: New
spine/config/packageloader.py: Include resolution, override processing, metadata validationmeta.py: Version parsing and compatibility checkingerrors.py: Typed exception hierarchyapi.py: Configuration schema and constants
Changed
- CLI now uses
load_config()with full include/override support - Breaking: Configuration loader moved from
spine.utils.configtospine.configpackage- New import:
from spine.config import load_config
- New import:
Removed
- CLI
--detect-anomalyflag (use--set model.detect_anomaly=trueinstead)
Full Changelog: v0.8.1...v0.9.0