Changelog
All notable changes to TinySystems.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
- Documentation site with VitePress
- Comprehensive developer guide
- Example components and flows
Changed
- Improved expression evaluator performance
Fixed
- Edge data serialization for nested objects
[1.0.0] - 2024-01-15
Added
Core Platform
- TinyNode, TinyModule, TinySignal CRDs
- Kubernetes controller for message routing
- gRPC communication between modules
- Leader election via Kubernetes Leases
Module SDK
- Component interface (
GetInfo,Ports,Handle,Instance) - ControlHandler interface for UI interactions
- Resource Manager for Kubernetes resource creation
- Struct tag-based JSON Schema generation
- Component interface (
Expression System
- Path expressions with
$root reference - Arithmetic, comparison, and logical operators
- Built-in functions (
now,RFC3339,string,int,upper,lower, etc.) - Ternary conditional operator
- Path expressions with
Common Module
- Modify component for data transformation
- Router component for conditional branching
- Iterator component for array processing
- Ticker component for scheduled execution
- Signal component for fan-out patterns
- Delay component for timing control
HTTP Module
- Server component with Kubernetes Service/Ingress integration
- Client component with retry and timeout support
- BasicAuth header parser
Flow Editor
- Visual node and edge editing
- Settings configuration panels
- Real-time telemetry display
- Port visualization
Changed
- Renamed
configtoedgesin TinyNode spec - Combined module/component into single
componentfield - Standardized system port names with constants
Security
- RBAC templates for module service accounts
- Secret reference support via configRef
- TLS support for gRPC communication
[0.9.0] - 2024-01-01
Added
- Beta release of core functionality
- Initial module SDK
- Basic flow editor
Known Issues
- Expression evaluator performance needs optimization
- Limited documentation
[0.8.0] - 2023-12-15
Added
- Alpha release for testing
- Core CRD definitions
- Basic controller implementation
Changed
- Simplified component interface
Deprecated
- Old tuple-based GetInfo() return type
Version History
| Version | Date | Status |
|---|---|---|
| 1.0.0 | 2024-01-15 | Stable |
| 0.9.0 | 2024-01-01 | Beta |
| 0.8.0 | 2023-12-15 | Alpha |
Upgrade Notes
0.9.x to 1.0.0
See the Migration Guide for detailed upgrade instructions.
Key changes:
- Add
Instance()method to all components - Update
GetInfo()to returnComponentInfostruct - Add
context.Contextparameter toHandle()andHandleControl() - Use constants for system ports and port positions
0.8.x to 0.9.x
- Update TinyNode resources to use new
edgesfield - Rebuild module images with updated SDK
SDK Compatibility
| Platform Version | SDK Version | Go Version |
|---|---|---|
| 1.0.x | 1.0.x | 1.21+ |
| 0.9.x | 0.9.x | 1.20+ |
| 0.8.x | 0.8.x | 1.20+ |
Deprecation Schedule
| Feature | Deprecated | Removed | Alternative |
|---|---|---|---|
| Tuple GetInfo() | 0.9.0 | 1.0.0 | ComponentInfo struct |
| String port positions | 0.9.0 | 1.0.0 | module.Position* constants |
| String system ports | 0.9.0 | 1.0.0 | v1alpha1.*Port constants |
TinyNode config field | 0.9.0 | 1.0.0 | edges field |
Release Cadence
- Major versions (x.0.0): Breaking changes, major features
- Minor versions (0.x.0): New features, backward compatible
- Patch versions (0.0.x): Bug fixes, security updates
Releases are tagged in Git and published to:
- GitHub Releases
- Container registries (Docker Hub, GitHub Container Registry)
- Helm repository
Contributing
See CONTRIBUTING.md for:
- Development setup
- Testing guidelines
- Pull request process
- Code style requirements