# Changelog
## v0.1.1 (2025-09-03)
### Changed
* `Valpa.Error` now respects runtime configuration for stacktrace inclusion:
* Stacktraces are **enabled by default** in `:dev` and `:test`.
* Stacktraces are **disabled by default** in `:prod`.
* Users can override via application config:
```elixir
config :valpa, :stacktrace, true # force stacktraces
config :valpa, :stacktrace, false # disable stacktraces
```
* `Valpa.Error.new/1` is runtime-safe and uses `Application.get_env/3` instead of `compile_env`, ensuring correct behavior in releases.
* `__trace__` is now optional and hidden in production by default for safer error reporting.
### Documentation
* Updated module documentation for `Valpa.Error` explaining:
* Stacktrace defaults per environment.
* How to override via user config.
* Safe defaults for library consumers.
* README updated with a **stacktrace configuration section** for clarity.
### Development
* Refactored `Valpa.Error` to make stacktrace capture runtime-safe and configurable.
* Improved dev/test experience with stacktraces while keeping production errors clean.
## v0.1.0 (2025-08-04)
### Added
- Initial release of **Valpa** validation library for Elixir.
- Support for validating raw values, `{:ok, _}`, or `{:error, _}` tuples in pipelines with automatic error propagation.
- Built-in validators for common types: integer, float, string, boolean, decimal, lists, maps, and more.
- Support for optional (`maybe_`) and required variants of validators.
- Validation of relationships between map/struct fields (e.g., comparing keys).
- Custom validators support via modules and inline functions.
- Detailed structured error reporting with `Valpa.Error` including stacktrace capture (in dev/test).
- Predicate functions in `Valpa.Predicate.Validator` returning `true` or `false` for standalone checks.
- Comprehensive pipeline-friendly API for easy composition.
- No schema definitions required — works directly with maps or structs.
- Supports validation of list contents, unique lists, and value sets.
- Inclusive and exclusive key validation in maps.
### Documentation
- Complete README with usage examples, custom validator patterns, and error structure.
- API documentation published on HexDocs.
### Development
- Macro-based generation of validation functions from predicate logic for DRY code.
- Proper error trace capturing for better debugging.
For future releases: planned improvements include:
- More validators and richer predicate coverage.
- Schema integration.
- Improved error messaging.
- Proper `@spec` annotations and detailed documentation for every validation function.
*Created and maintained by [Centib](https://github.com/Centib).*