From bcc99169756e23761f09b3fa8cbbfd6d2402df20 Mon Sep 17 00:00:00 2001 From: JohnnyT Date: Wed, 3 Sep 2025 08:39:50 -0600 Subject: [PATCH] Releases v1.8.0 --- CHANGELOG.md | 40 ++++++++++++++++++++++++++++++++++++++++ README.md | 2 +- mix.exs | 2 +- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2041e2a..c0cee03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.8.0] 2025-09-02 + +### Added + +#### Documentation Site and Infrastructure + +- **VitePress Documentation Site**: Complete documentation site setup with Diataxis structure following the four documentation types (Tutorials, How-to Guides, Reference, Explanation) +- **GitHub Actions Integration**: Automatic deployment to GitHub Pages with separate workflows for documentation building and linting +- **Specialized Documentation Agent**: Added Diataxis-aware documentation agent for structured content creation and management + +#### SCXML Feature Enhancements + +- **Internal Transitions**: Complete implementation of `type="internal"` transitions that execute actions without exiting/re-entering source state per W3C SCXML specification +- **Enhanced Send Elements**: Improved `` element support with better content data processing, parameter validation, and JSON serialization for complex values +- **Nested If Parsing**: Fixed SAX parser to properly handle nested `` blocks, enabling complex conditional logic structures + +#### Performance and Developer Experience + +- **Macro-Based Logging**: Converted all LogManager logging functions to performance-optimized macros with lazy evaluation and zero overhead when logging is disabled +- **Environment-Aware Logging**: Added automatic logging configuration based on environment (trace in dev, debug in test, info in prod) +- **Enhanced Debugging**: Comprehensive trace logging throughout transition resolution and action execution with structured metadata + +### Fixed + +- **Parallel Transition Conflicts**: Enhanced TransitionResolver to handle conflicts between transitions from parallel regions using document order per SCXML specification +- **Expression Compilation**: Moved expression compilation from creation-time to validation-time with fallback runtime compilation for backward compatibility +- **Pipeline-Friendly APIs**: Updated all action execute functions to take state_chart as first argument for better Elixir pipeline composition + +### Changed + +- **Feature Detection Updates**: Moved send_content_elements and send_param_elements from partial to supported status +- **Code Quality**: Resolved Credo static analysis issues by extracting helper functions and reducing cyclomatic complexity +- **Error Handling**: Improved error context logging for failed conditions and expression evaluations + +### Infrastructure + +- **Separated Workflows**: Split documentation workflows into focused build/deployment and linting processes +- **ESM Module Support**: Added proper ES module configuration for VitePress compatibility +- **Test Coverage**: Improved test coverage across parser components, action executors, and logging infrastructure + ## [1.7.0] 2025-09-01 ### Added diff --git a/README.md b/README.md index 5d366cc..0354841 100644 --- a/README.md +++ b/README.md @@ -152,7 +152,7 @@ Add `statifier` to your list of dependencies in `mix.exs`: ```elixir def deps do [ - {:statifier, "~> 1.7"} + {:statifier, "~> 1.8"} ] end ``` diff --git a/mix.exs b/mix.exs index 3068152..c82d53a 100644 --- a/mix.exs +++ b/mix.exs @@ -2,7 +2,7 @@ defmodule Statifier.MixProject do use Mix.Project @app :statifier - @version "1.7.0" + @version "1.8.0" @description "StateCharts for Elixir with W3C compliance" @source_url "https://github.com/riddler/statifier" @deps [