Current section
Files
Jump to
Current section
Files
CHANGELOG.md
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.2.0] - 2025-08-27
### Added
- Support for aliased module callbacks (`alias IO, as: MyIO` with `@then {MyIO, :puts}`)
- Test coverage for aliased modules functionality
- Documentation examples showing aliased module usage
### Fixed
- Documentation examples now use `IO.puts` instead of `Logger` (no require needed)
- ExDoc configuration for proper main page rendering
- Documentation structure and navigation
### Improved
- Better error messages and examples in documentation
- More comprehensive test suite covering edge cases
## [1.1.0] - 2025-08-27
### Added
- Support for external module callbacks with `@then {Module, :function}` syntax
- Comprehensive validation for callback formats with clear error messages
- Tests covering external module callbacks, mixed callback types, and error cases
## [1.0.0] - 2025-08-26
### Added
- Initial release of `Then` library
- `@then` attribute for post-execution callbacks
- Support for side-effect separation from main function logic
- Compile-time validation to prevent multiple `@then` attributes per function
- Compatibility with other function attributes (`@doc`, `@spec`, `@deprecated`)
- Support for private callback functions (`defp`)
- Comprehensive test suite
- Documentation with examples and limitations
### Features
- Clean separation of concerns between pure functions and side effects
- Automatic callback invocation after function execution
- Function result preservation (callbacks don't modify return values)
- Multi-clause function support
- Macro-based implementation for zero runtime overhead