Skip to content

Commit b11593b

Browse files
authored
Releases v1.6.0 (#82)
1 parent 3cf737e commit b11593b

3 files changed

Lines changed: 43 additions & 2 deletions

File tree

CHANGELOG.md

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

88
## [Unreleased]
99

10+
## [1.6.0] 2025-08-30
11+
12+
### Changed
13+
14+
#### API Consolidation and Cleanup
15+
16+
- **Consolidated Active States API**: Unified active states functionality into single source of truth
17+
- **Renamed Functions for Clarity**: `active_states``active_leaf_states`, `active_ancestors``all_active_states`
18+
- **Single Source of Truth**: All active state queries now handled by `Configuration` module
19+
- **Removed Wrapper Functions**: Eliminated duplicate functions from `StateChart` and `Interpreter` modules
20+
- **Updated All Tests**: All 857 tests updated to use consolidated API directly
21+
- **Fixed History Tracking**: History tracking now correctly uses all active states (including ancestors) for proper shallow history computation
22+
23+
- **Removed Backwards Compatibility Layers**: Cleaned up legacy API functions for better maintainability
24+
- **Removed Legacy Delegates**: Eliminated `Statifier.validate/1` and `Statifier.interpret/1` delegate functions
25+
- **Removed `Statifier.parse_only/1`**: Eliminated unused function that provided no additional value over `SCXML.parse/2`
26+
- **Forced Explicit Module Usage**: Users must now call `Statifier.Interpreter.initialize/1` and `Statifier.Validator.validate/1` directly
27+
- **Updated Documentation**: All examples and README updated to use explicit module references
28+
29+
#### Code Quality Improvements
30+
31+
- **Implemented Proper Logging**: Replaced TODO comments with actual logging infrastructure
32+
- **Validation Warning Logging**: `Interpreter.initialize/1` now properly logs validation warnings using `LogManager`
33+
- **Structured Logging**: Warnings logged with warning count and detailed messages
34+
- **Consistent Infrastructure**: Uses existing logging system throughout codebase
35+
36+
- **Fixed All Credo Issues**: Resolved all static code analysis warnings
37+
- **Added Module Aliases**: Proper module aliasing to eliminate nested module access warnings
38+
- **Clean Code Standards**: All 288 source files now pass `mix credo --strict` with no issues
39+
- **Improved Readability**: Better import organization and alias usage
40+
41+
### Benefits
42+
43+
- **Clearer API**: Eliminates confusion between multiple similar functions
44+
- **Better Maintainability**: Single source of truth for active state management
45+
- **Explicit Architecture**: Direct module usage removes API ambiguity
46+
- **Enhanced Debugging**: Proper structured logging for validation issues
47+
- **Code Quality**: Clean codebase with no static analysis issues
48+
49+
All 857 tests pass with 91.2% code coverage maintained throughout the refactoring.
50+
1051
## [1.5.0] 2025-08-29
1152

1253
### Added

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.5"}
150+
{:statifier, "~> 1.6"}
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.5.0"
5+
@version "1.6.0"
66
@description "StateCharts for Elixir with W3C compliance"
77
@source_url "https://github.com/riddler/statifier"
88
@deps [

0 commit comments

Comments
 (0)