Skip to content

Commit 9d71d1a

Browse files
authored
Releases v1.7.0 (#89)
1 parent dc6c1cb commit 9d71d1a

File tree

3 files changed

+87
-2
lines changed

3 files changed

+87
-2
lines changed

CHANGELOG.md

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,91 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.7.0] 2025-09-01
11+
12+
### Added
13+
14+
#### Enhanced SCXML Feature Detection and Test Infrastructure
15+
16+
- **Comprehensive Feature Detection**: Added detection for 8 new SCXML
17+
features including wildcard_events, invoke_elements, script_elements,
18+
cancel_elements, finalize_elements, donedata_elements,
19+
send_content_elements, send_param_elements, and send_delay_expressions
20+
- **Automated Test Updates**: Created script to automatically update
21+
@required_features attributes across 182 test files (123 SCION + 59
22+
W3C) based on actual XML content analysis
23+
- **Wildcard Events Support**: Full implementation of event="*" patterns
24+
with proper transition processing and comprehensive test coverage
25+
- **Partial Feature Testing**: Modified test framework to allow :partial
26+
features to run, providing better feedback instead of automatic
27+
exclusion
28+
29+
#### New SCXML Elements and Features
30+
31+
- **Foreach Element Support**: Complete SCXML `<foreach>` implementation
32+
with W3C-compliant variable scoping, permanent variable declaration,
33+
and nested action support
34+
- **Targetless Transitions**: Implementation of SCXML targetless
35+
transitions that execute actions without state changes, following W3C
36+
specification requirements
37+
- **Enhanced Send Elements**: Improved `<send>` element parsing with
38+
proper content element text capture, fixing previously ignored text
39+
content in send actions
40+
41+
#### Development Infrastructure
42+
43+
- **Quality Mix Task**: Added comprehensive `mix quality` task with
44+
automated formatting, testing, static analysis, and coverage checking
45+
- **Coverage Improvements**: Significantly improved test coverage across
46+
multiple modules including parser components, action executors, and
47+
logging infrastructure
48+
49+
### Changed
50+
51+
#### Test Framework Improvements
52+
53+
- **Enhanced Feature Validation**: Updated FeatureDetector.validate_features/1
54+
to treat :partial features as runnable rather than excluded
55+
- **Improved Test Accuracy**: All test files now have precise feature
56+
requirements based on actual SCXML content rather than manual
57+
specification
58+
- **Better Regression Coverage**: Regression test coverage improved from
59+
141/142 to 145/145 (100% pass rate)
60+
61+
#### SCXML Compliance Enhancements
62+
63+
- **History State Fixes**: Fixed history state restoration to properly
64+
execute ancestor onentry actions per W3C specification
65+
- **Logging Improvements**: Implemented safe_to_string function to handle
66+
complex data types in log actions, preventing String.Chars protocol
67+
errors
68+
- **Increased Iteration Limits**: Raised eventless transition iteration
69+
limit from 100 to 1000 to handle complex automatic transition chains
70+
71+
### Fixed
72+
73+
- **Content Element Parsing**: Fixed SAX parser to capture text content
74+
within `<content>` elements for send actions
75+
- **Variable Scoping**: Proper SCXML variable scoping in foreach loops
76+
with restoration of existing variables after iteration
77+
- **Feature Classification**: Corrected wildcard_events status from
78+
:partial to :supported with full implementation
79+
80+
### Benefits
81+
82+
- **Enhanced Test Coverage**: Comprehensive detection prevents false
83+
positive/negative test results with accurate feature requirements
84+
- **Better Development Feedback**: Partial features now provide real
85+
feedback rather than being automatically excluded from testing
86+
- **SCXML Compliance**: Improved adherence to W3C SCXML specification
87+
with proper implementation of complex features like foreach and
88+
targetless transitions
89+
- **Developer Experience**: Automated quality checking and enhanced test
90+
infrastructure provide better development workflow
91+
92+
All 857+ tests continue to pass with enhanced regression coverage and
93+
improved SCXML feature support.
94+
1095
## [1.6.0] 2025-08-30
1196

1297
### Changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ Add `statifier` to your list of dependencies in `mix.exs`:
147147
```elixir
148148
def deps do
149149
[
150-
{:statifier, "~> 1.6"}
150+
{:statifier, "~> 1.7"}
151151
]
152152
end
153153
```

mix.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ defmodule Statifier.MixProject do
22
use Mix.Project
33

44
@app :statifier
5-
@version "1.6.0"
5+
@version "1.7.0"
66
@description "StateCharts for Elixir with W3C compliance"
77
@source_url "https://github.com/riddler/statifier"
88
@deps [

0 commit comments

Comments
 (0)