Files
strata-compile/CHANGELOG.md
Carlos Gutierrez a63a758cc5 feat: initial release of Strata framework v0.1.0
- Static compiler with STRC pattern (Static Template Resolution with
   Compartmentalized Layers)
   - Template syntax: { } interpolation, { s-for }, { s-if/s-elif/s-else
    }
   - File types: .strata, .compiler.sts, .service.sts, .api.sts, .sts,
   .scss
   - CLI tools: strata-compile dev, strata-compile build, strata-compile
    g (generators)
   - create-strata-compile scaffolding CLI with Pokemon API example
   - Dev server with WebSocket HMR (Hot Module Replacement)
   - Documentation: README, ARCHITECTURE, CHANGELOG, CONTRIBUTING,
   LICENSE
2026-01-16 09:13:14 -05:00

151 lines
4.0 KiB
Markdown

# Changelog
All notable changes to the Strata framework will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
## [Unreleased]
### Planned
- Component imports (`{ s-imp "@components/Button" }`)
- SCSS to CSS compilation pipeline
- Production build optimizations
- TypeScript type generation for templates
- VSCode extension for syntax highlighting
- Nested component slots
---
## [0.1.0] - 2026-01-16
### Added
#### Core Framework
- **Static Compiler**: Build-time template resolution engine
- Resolves all template syntax to pure HTML
- Zero runtime framework overhead
- Caches API responses during build
- **STRC Design Pattern**: Static Template Resolution with Compartmentalized Layers
- Clear separation between template, compiler, service, and API layers
- Strict import hierarchy enforcement
- File-type based responsibility assignment
#### Template Syntax
- **Variable Interpolation**: `{ variableName }`
- Supports dot notation for nested properties (`{ user.name }`)
- Handles strings, numbers, booleans, arrays, objects
- **Loop Directive**: `{ s-for item in items }` ... `{ /s-for }`
- Iterates over arrays
- Optional index variable: `{ s-for item, index in items }`
- Nested loops supported
- **Conditional Directives**: `{ s-if }`, `{ s-elif }`, `{ s-else }`, `{ /s-if }`
- Boolean evaluation
- Negation with `!`
- Comparison operators: `===`, `==`, `!==`, `!=`, `>`, `<`, `>=`, `<=`
#### File Types
- `.strata` - HTML template files
- `.compiler.sts` - Build-time variable definitions
- `.service.sts` - Business logic layer (build + runtime)
- `.api.sts` - API contract definitions
- `.sts` - Pure utility functions
- `.scss` - Component/page styles
#### CLI Tools
- `strata-compile dev` - Development server with Hot Module Replacement (HMR)
- `strata-compile build` - Production build
- `strata-compile preview` - Preview production build
- Generator commands:
- `strata-compile gcomponent <Name>`
- `strata-compile gpage <name>`
- `strata-compile gservice <name>`
- `strata-compile gapi <name>`
- `strata-compile gutil <name>`
- `strata-compile gstore <name>`
#### Project Scaffolding
- `create-strata` CLI tool
- Pokemon API example template
- Index page with ASCII art branding
- Pre-configured project structure
#### Development Server
- WebSocket-based Hot Module Replacement
- Automatic rebuild on file changes
- CSS hot reload without page refresh
- Component change detection
#### Parser
- Custom Strata template parser
- AST-based template processing
- Balanced bracket extraction for complex structures
- JavaScript-to-JSON conversion for data parsing
### Technical Details
#### Compiler Implementation
- Written in Go for maximum performance
- Regex-based export extraction from `.compiler.sts`
- Recursive template resolution
- Property access chain support (`item.nested.value`)
#### Build Process
1. Parse `.strata` template to AST
2. Load exports from `.compiler.sts`
3. Resolve all directives (for, if, interpolation)
4. Output pure HTML string
5. Bundle with optional runtime service code
---
## [0.0.1] - 2026-01-15
### Added
- Initial project structure
- Basic Go compiler setup
- Makefile for build automation
- Development environment configuration
---
## Version History Summary
| Version | Date | Highlights |
|---------|------|------------|
| 0.1.0 | 2026-01-16 | Core framework, STRC pattern, template syntax, CLI tools |
| 0.0.1 | 2026-01-15 | Initial project setup |
---
## Migration Guides
### Migrating to 0.1.0
This is the first functional release. No migration required.
---
## Deprecations
None yet.
---
## Security
No security vulnerabilities reported.
To report a security issue, please open an issue at https://github.com/CarGDev/strata/issues
---
[Unreleased]: https://github.com/CarGDev/strata/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/CarGDev/strata/compare/v0.0.1...v0.1.0
[0.0.1]: https://github.com/CarGDev/strata/releases/tag/v0.0.1