2.3.0 / 2026-05-12
- Extended support for Decimal 3.
- Updated dependencies.
2.2.1 / 2026-04-11
- Fixed an issue where the Enviable Credo checks only work if you have Credo 1.7.14 or higher, but the requirement says any Credo version 1.0 or higher. This has been resolved by restricting the minimum version of Credo required. For most users, this should be sufficient. Please file an issue if you cannot upgrade to this version of Credo.
2.2.0 / 2026-01-25
Added support for
Durationvalues. This includes updating the support fortimeoutconversions to parse ISO 8601 duration representations.Added usage rules for use with
usage_rules.The usage rules were built with the assistance of Kiro.
2.1.0 / 2026-01-13
Added
Enviable.Credo.UnsafeAtomas an optional Credo check. When enabled in.credo.exs, it will report on the use of Enviable functions and conversion options that may result in atom exhaustion. This includes the*_as_atom*and*_as_module*functions, the:atomor:moduleconversion type, or an encoded conversion which uses:atomor:module. Warnings will not be shown when the:allowoption is provided.Added
Enviable.Credo.UnsafeEvalas an optional Credo check. When enabled in.credo.exs, it will report on the use of unsafe code evaluation checks (the*_as_elixir*and*_as_erlang*functions).
These checks and their tests were developed with the assistance of Kiro.
2.0.0 / 2025-12-26
- Breaking changes:
Enviable 2.0 supports Elixir 1.17+ only.
Deprecated functions have been removed:
get_env_boolean/2,get_env_integer/2,fetch_env_boolean/2,fetch_env_integer/2,fetch_env_boolean!/2, andfetch_env_integer!/2.The default value for
boolean_downcaseanddowncasefor boolean conversion is:default. This also required changing some conversion types to distinguish between boolean case conversion and atom case conversion.The default value for
caseonbase16,base32, andhex32conversion has changed from:upperto:mixed.
1.7.0 / 2025-10-15
The next major version of Enviable will support Elixir 1.17+ only.
- Added support for timeout values processed through
to_timeout.- Added a parser built with
nimble_parsecto parse timeout strings. This parser (Enviable.Conversion.TimeoutParser) and unit tests were developed with the assistance of Kiro with Timeout Values as the initial prompt with human review and revision.
- Added a parser built with
1.6.0 / 2025-08-12
Improved examples for using
Dotenvyand added references toNviras a compatible library.Added support for the new JSON module in Elixir 1.18.
Added support for Decimal.
1.5.0 / 2025-03-04
Fixed a bug with
listconversion forget_env_as_listandget_env_aswhere support for a:defaultvalue was not included.Fixed a bug with
:downcaseconversions and nil values.Added a compile-time configuration option to change the default boolean
:downcaseoption. The default value is currentlyfalse(do not downcase).The next major version of Enviable will change this to
:default, as it should not matter whether the matched value istrue,TRUE, orTruefor boolean tests.Added
:upcaseoption toatomandsafe_atomconversions.Fixed
:json_engineconfiguration so that it is properly compile-time and referenced. The JSON parsing code was looking this up at runtime under the wrong key.Added support for
{m, f, a}specification for:json_engineconfiguration or the:engineparameter for JSON conversion.
1.4.0 / 2025-02-11
Added
listconversion for delimiter-separated lists. This supports all options ofString.split/3.Added
*_env_as_TYPE/2functions for all encoded conversions (base16,base32,hex32,base64,url_base64, andlist).Internal:
Added an internal config module to split the configuration from the conversion code for improved readability.
Updated doc names to how I now structure my projects.
Add
excoverallsfor coverage.
1.3.0 / 2025-01-16
Added explicit functions for retrieval and conversion of primitives to assist with language servers and IDEs as an alternative to
*_env_as/3functions. Most of these new functions are*_env_as_TYPE/2, but several are*_env_as_TYPE/1as there are no applicable options.Encoded conversions (
:base*) do not have named functions and must be accessed through*_env_as/3.Soft-deprecated
*_env_integerand*_env_booleanfunctions in favour of*_env_as_integerand*_env_as_boolean. There will be at least one release of Enviable 1.x which marks these functions as deprecated so that compiler warnings are generated.
1.2.1 / 2025-01-02
- Fixed a function definition bug with
fetch_env_as/3andfetch_env_as!/3preventing them from beingfetch_env_as/2andfetch_env_as!/2.
1.2.0 / 2024-12-29
- Added conversions for
log_level. - Add Elixir 1.18 / OTP 27 to the test matrix.
- Update dependencies.
- Add
miseconfiguration. - Fix dialyzer configuration.
1.1.0 / 2024-12-22
Extended conversions through
get_env_as/3,fetch_env_as/3, andfetch_env_as!/3.Fixed more documentation issues.
1.0.1 / 2024-12-11
- Fixed documentation issues.
1.0.0 / 2024-12-10
- Initial release.