Enviable Changelog
View Source2.0.0 / 2025-12-26
- Breaking changes:
Enviable 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!/2The 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.