CHANGELOG.md

# Changelog

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).

## v0.8.0

- Enables exception rescuing to report on problems with custom callback functions
- Moves `Dotenvy.Transformer.Error` to `Dotenvy.Error` to offer a simpler interface
  for devs who want to raise errors from custom transformer functions
- Improved documentation and examples for usage in umbrella apps
- Updates all internal options in the parser to use `%Opts{}` struct
- Improves test coverage
- Bumps Elixir version specified for local development in `.tool-versions`
- Updates dependencies to latest

## v0.7.0

- Formally defines a type for all supported conversions to improve documentation and specs
- Updates dependencies to latest
- Specifies Elixir 1.13 as required (simply because I can't get anything older to compile)

## v0.6.0

- Does away with the confusing `:overwrite?` and `vars` options in favor of a simple declarative/explicit inputs. `source/2` now accepts ad-hoc maps as inputs.
- Updates dependencies including `:ex_doc` to take advantage of admonishment blocks.
- Various documentation cleanups/clarifications.

## v0.5.0

- Shifts storage of system environment variables to the application process dictionary and alters the reading of this data to help improve the security posture and avoid leaking env values. `:side_effect` option for `source/2` and `source!/2` function changed.

## v0.4.1

- Makes error messages more informative when unable to convert strings to integers or floats

## v0.4.0

- Adds support for custom transformer types by allowing an arity 1 function as the second argument to Dotenvy.Transformer.to/2. See [Issue 2](https://github.com/fireproofsocks/dotenvy/issues/2)

## v0.3.0

- Renames Dotenvy.Transformer.to/2 to `Dotenvy.Transformer.to!/2` to better communicate that it may raise an error.
- Returns key name in errors for easier troubleshooting.
- Tracks an error if the `:require_files` option lists a file not included in the `files` input (for sanity).
- Introduces `Dotenvy.env!/3` (which is the same as `Dotenvy.env/3` but with no defaults provided). This better communicates that it may raise an error (because internally it relies on `Dotenvy.Transformer.to!/2`)
- Deprecates `Dotenvy.env/3` in favor of `Dotenvy.env!/3`

## v0.2.0

Adds support for default `type` of `:string` to the `Dotenvy.env!/2` and `Dotenvy.env/3` functions.

## v0.1.0

Initial release.