Releases: gedaiu/fluent-asserts
Releases · gedaiu/fluent-asserts
v2.0.0-beta.6
fix: Const/immutable bool string conversion
v2.0.0-beta.5
1. Improved Diff Output
- Line-based diff algorithm - Uses LCS (Longest Common Subsequence) instead of naive positional comparison
- Block grouping - Consecutive insertions/deletions are grouped together
- Context lines - Shows 2 lines before/after each change block
- Clear labels - Added
--- Expected (missing in actual) ---and+++ Actual (not in expected) +++headers - Visual separators -
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~between change blocks - Fixed stray period - No longer adds
.on its own line after multiline diffs
2. AssertResult Improvements
- Added copy constructors and assignment operators for better object management
3. Documentation & Refactoring
- Updated README with extension library usage
- Enhanced extending guide with examples
- Simplified import structure in
asserts.d - Enhanced value evaluation logic
4. Registry Operations
- Import Registry operations for enhanced functionality
v2.0.0-beta.4
- Add a precision parameter to toFloatingString for configurable decimal places
v2.0.0-beta.3
- update serializer registry to accept list types
v2.0.0-beta.2
- fix compiler error while using the project as dependency
v2.0.0-beta.1
fluent-asserts v2.0.0-beta.1
Highlights
Complete engine rewrite - v2.0 is a ground-up rewrite focused on performance, @nogc compatibility, and better developer experience. The public API remains familiar while the internals are now faster and lighter.
New Features
- @nogc support - Use fluent-asserts in
@nogccontexts - Output formats - Choose between verbose, compact (for AI tools), or TAP (for CI/CD)
- Context data - Debug loops with
.withContext("key", value)andbecause("msg %s", i) - Memory assertions - Test GC behavior with
.allocateGCMemory()and.allocateNonGCMemory() - Assertion statistics - Track pass/fail counts via
Lifecycle.instance.statistics - Recording evaluations - Capture assertion results with
.recordEvaluation()without throwing - Custom failure handlers - Install your own handler with
setFailureHandler() - Release build no-op - Zero overhead in release builds (like D's built-in
assert)
Performance Improvements
- Lazy source parsing - Source code only parsed on assertion failure
- Small Buffer Optimization - Short strings avoid heap allocation entirely
- Reference-counted memory - Manual memory management replaces GC allocations
Breaking Changes
- Module paths changed - Internal modules moved (e.g.,
fluentasserts.core.operations.*→fluentasserts.operations.*) - Serializer registry renamed - Use
HeapSerializerRegistryinstead ofSerializerRegistry - Operation signatures changed - Operations now modify
Evaluationstruct directly - Evaluation is now a struct - Previously a class
Migration
Most users importing fluent.asserts or fluentasserts.core.base need no changes. See the Upgrading Guide for details.
v1.0.1
v1.0.0
v1.0.0-beta.2
- don't convert to array objects that ar both lists and hash maps
v1.0.0-beta.1
- update docs and prepare the v1 release