Cldr Utils from version 2.27.0 requires Elixir 1.12 or later
This is the changelog for Cldr Utils v2.29.5 released on March 16th, 2026. For older changelogs please consult the release tag on GitHub
- Fix clause ordering in
Cldr.Digits, fixing a compiler warning on Elixir 1.20.0-rc.2.
This is the changelog for Cldr Utils v2.29.4 released on January 25th, 2026. For older changelogs please consult the release tag on GitHub
- Fixes the catch-all error return for
Cldr.Http.get/2which in turn fixes that case clause error reported in #9.
This is the changelog for Cldr Utils v2.29.3 released on January 24th, 2026. For older changelogs please consult the release tag on GitHub
- Fix resolving the path of the certificate file when the path is not ASCII. Thanks to @Massedil for the report. Closes #9.
This is the changelog for Cldr Utils v2.29.2 released on January 17th, 2026. For older changelogs please consult the release tag on GitHub
- Fix compile warnings for Elixir 1.20.
This is the changelog for Cldr Utils v2.29.1 released on November 1st, 2025. For older changelogs please consult the release tag on GitHub
- Fix range warning in
Cldr.Math.float_to_ratio/2.
This is the changelog for Cldr Utils v2.29.0 released on October 9th, 2025. For older changelogs please consult the release tag on GitHub
- Adds
Cldr.Math.float_to_ratio/2. This function supports formatting numbers as fractions in the upcoming CLDR 48 and the relevantex_cldrversion. Note that decimals are not currently supported.
This is the changelog for Cldr Utils v2.28.3 released on April 28th, 2025. For older changelogs please consult the release tag on GitHub
- Set
ip_family: :inet6fb4inCldr.Httpto support both ipv6 and ipv4 for downloading assets. Thanks to @edolnx for the report. Closes #8.
This is the changelog for Cldr Utils v2.28.2 released on September 6th, 2024. For older changelogs please consult the release tag on GitHub
- Use
:erlang.iolist_to_binary/1instead ofList.to_string/1since the later won't handle some unicode correctly.
This is the changelog for Cldr Utils v2.28.1 released on August 14th, 2024. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Json.decode!/1when calling with a charlist instead of a binary.
This is the changelog for Cldr Utils v2.28.0 released on July 10th, 2024. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Json.decode!/1to return only the decoded JSON.
- Add
Cldr.Json.decode!/2that implements thekeys: :atomsoption fromJason.
This is the changelog for Cldr Utils v2.27.0 released on June 23rd, 2024. For older changelogs please consult the release tag on GitHub
cldr_utilsversion 2.27.0 and later requires Elixir 1.12 or later.
- Adds
Cldr.Json.decode!/1that delegates to:json.decode/1. This allowsCldr.Jsonto be configured as ajson_libraryinex_cldrfor OTP versions 27 and later. For example:
config :ex_cldr,
json_library: Cldr.Json- Refactor some tests so they work on older Elixir versions without
sigil_c.
This is the changelog for Cldr Utils v2.25.0 released on May 28th, 2024. For older changelogs please consult the release tag on GitHub
- Fix warnings on Elixir 1.17. This primarily relates to charlists constants now required to use
sigil_cto avoid warnings. As a result, tests will only work on Elixir 1.16 and later even though support for the library is for Elixir 1.11 and later.
This is the changelog for Cldr Utils v2.25.0 released on March 20th, 2024. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Math.pow/2when the exponent is in the range 0 < n < 1.
- Adds
Cldr.Math.mult/2,Cldr.Math.div/2,Cldr.Math.add/2andCldr.Math.sub/2to operate on integers, floats and Decimals.
This is the changelog for Cldr Utils v2.24.2 released on November 2nd, 2023. For older changelogs please consult the release tag on GitHub
- Fix deprecation warnings for Elixir 1.16.
This is the changelog for Cldr Utils v2.24.1 released on June 17th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Resolve host certificate stores at runtime, not compile time. Thanks to @joshk for the PR. Closes #7.
This is the changelog for Cldr Utils v2.24.0 released on May 22nd, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Adds
Cldr.Utils.otp_version/0to return the OTP version as a string. Copied with thanks and appreciation from theHexsource.
This is the changelog for Cldr Utils v2.23.0 released on May 4th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Make parsing
HTTP_PROXYvalues more resilient to invalid URLs.
This is the changelog for Cldr Utils v2.23.0 released on May 4th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Adds support for https proxy for
Cldr.Http.get/2. The proxy can be specified as an option to toCldr.Http.get/2, as a configuration option under the:ex_cldr[:https_proxy]key, or from the environment variablesHTTPS_PROXYorhttps_proxy. Thanks to @d-led for the PR and issue.
This is the changelog for Cldr Utils v2.22.0 released on March 25th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Adds
:timeoutand:connection_timeoutoptions toCldr.Http.get/2. The defaults are[timeout: 60_000, connection_timeout: 120_000]. The environment variablesCLDR_HTTP_TIMEOUTandCLDR_HTTPS_CONNECTION_TIMEOUTcan also be used to set the timeouts. The prededence isoptions[:timeout] -> environment variable -> default.
This is the changelog for Cldr Utils v2.21.0 released on January 27th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Add
:verify_peeras an option toCldr.Http.get/1andCldr.Http.get_with_headers/1
This is the changelog for Cldr Utils v2.20.0 released on January 27th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
-
Adds
Cldr.Http.get_with_headers/1that will return the headers from the response as well as the body. -
Support headers when sending a request with
Cldr.Http.get/1andCldr.Http.get_with_headers/1 -
Add
:verify_peeras an option toCldr.Http.get/1andCldr.Http.get_with_headers/1
This is the changelog for Cldr Utils v2.19.2 released on January 25th, 2023. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Relaxes the requirement for the optional castore library. Thanks to @maennchen for the PR. Closes #6.
This is the changelog for Cldr Utils v2.19.1 released on August 23rd, 2022. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Use only TLS 1.2 on OTP versions less than 25.
This is the changelog for Cldr Utils v2.19.0 released on August 22nd, 2022. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
-
Sets SNI option for SSL connections
-
Supports
CLDR_UNSAFE_HTTPSenvironment variable option which, if set to anything other thanFALSE,false,nilorNILwill not perform peer verification for HTTPS requests. This may be used in circumstances where peer verification is failing but if generally not recommended.
This is the changelog for Cldr Utils v2.18.0 released on July 31st, 2022. For older changelogs please consult the release tag on GitHub
Cldr Utils now requires Elixir 1.11 or later
- Fix deprecation warnings for Elixir 1.14.
This is the changelog for Cldr Utils v2.17.2 released on May 8th, 2022. For older changelogs please consult the release tag on GitHub
- Harden the SSL options for
Cldr.Http.get/1in line with the recommendations at https://erlef.github.io/security-wg/secure_coding_and_deployment_hardening/ssl
This is the changelog for Cldr Utils v2.17.1 released on February 21st, 2022. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Map.invert/2to useEnum.map/2notEnum.flat_map/2
This is the changelog for Cldr Utils v2.17.0 released on October 27th, 2021. For older changelogs please consult the release tag on GitHub
-
Add
:duplicatesoption toCldr.Map.invert/2to determine how to handle duplicate values after inversion. The options are:nilorfalsewhich is the default and means only one value is kept.Map.new/1is used meanng the selected value is non-deterministic.:keepmeaning duplicate values are returned in a list:shortestmeans the shortest duplicate is kept. This operates on string or atom values.:longestmeans the shortest duplicate is kept. This operates on string or atom values.
-
Don't attempt to convert calendar era dates to iso days - do that when required in
ex_cldr_calendars -
Remove
Cldr.Calendar.Conversionmodule which is not required -
Fix
Cldr.Map.deep_map/3so that the:filteroption is propogated correctly when:only/:exceptis also specified.
This is the changelog for Cldr Utils v2.17.0 released on October 5th, 2021. For older changelogs please consult the release tag on GitHub
-
Don't attempt to convert calendar era dates to iso days - do that when required in
ex_cldr_calendars -
Remove
Cldr.Calendar.Conversionmodule which is not required -
Fix
Cldr.Map.deep_map/3so that the:filteroption is propogated correctly when:only/:exceptis also specified.
-
Add
:duplicatesoption toCldr.Map.invert/2to determine how to handle duplicate values after inversion. The options are:nilorfalsewhich is the default and means only one value is kept.Map.new/1is used meanng the selected value is non-deterministic.:keepmeaning duplicate values are returned in a list:shortestmeans the shortest duplicate is kept. This operates on string or atom values.:longestmeans the shortest duplicate is kept. This operates on string or atom values.
This is the changelog for Cldr Utils v2.16.0 released on June 11th, 2021. For older changelogs please consult the release tag on GitHub
-
Add
Cldr.Map.extract_strings/2 -
Make resolver a parameter to
Cldr.Map.deep_merge/3 -
Make resolver a parameter to
Cldr.Map.merge_map_list/2 -
Add
Cldr.Map.prune/2that prunes (deletes) branches from a (possibly deeply nested) map -
Add
Cldr.Map.invert/1that inverts the{key, value}of a map to be{value, key}and ifvalueis a list, one new map entry for each element ofvaluewill be created (mapped tokey)
This is the changelog for Cldr Utils v2.15.1 released on March 16th, 2021. For older changelogs please consult the release tag on GitHub
- Fix
Cldr.Digit.to_number/2for floats. Thanks for the report from @jlauemoeller. Fixes #15.
This is the changelog for Cldr Utils v2.15.0 released on March 5th, 2021. For older changelogs please consult the release tag on GitHub
- Adds the options
:filter,:rejectand:skiptoCldr.Map.deep_map/3that work on entire branches of a map.
This is the changelog for Cldr Utils v2.14.1 released on February 17th, 2021. For older changelogs please consult the release tag on GitHub
- Merge the fixes from cldr_utils version 2.13.3 for
Cldr.Math.power/2
This is the changelog for Cldr Utils v2.14.0 released on November 7th, 2020. For older changelogs please consult the release tag on GitHub
- Adds
Cldr.Http.get/1to download fromhttpsURLs using:httpcbut with certificate vertification enabled (it is not enabled by default in the:httpcmodule).
This is the changelog for Cldr Utils v2.13.3 released on February 17th, 2021. For older changelogs please consult the release tag on GitHub
-
Fix
Cldr.Math.power/2when both arguments are Decimal and the power is negative. -
Update the docs for
Cldr.Math.round_significant/2to note that rounding floats to significant digits cannot always return the expected precision since floats cannot represent all decimal numbers correctly.
This is the changelog for Cldr Utils v2.13.2 released on October 20th, 2020. For older changelogs please consult the release tag on GitHub
- Fix unused variable warning on OTP versions that do not include
:persistent_termmodule. Thanks to @kianmeng.
This is the changelog for Cldr Utils v2.13.1 released on September 30th, 2020. For older changelogs please consult the release tag on GitHub
- Add
Cldr.Decimal.parse/1as a compatibiity layer for Decimal 1.x and 2.x
This is the changelog for Cldr Utils v2.12.0 released on September 29th, 2020. For older changelogs please consult the release tag on GitHub
- Add
Cldr.Digit.number_of_trailing_zeros/1to calculate the number of trailing zeros in an integer
This is the changelog for Cldr Utils v2.11.0 released on September 25th, 2020. For older changelogs please consult the release tag on GitHub
-
Provides
Cldr.Decimal.reduce/1as a compatibility shim for Decimal 1.x and 2.x -
Provides
Cldr.Decimal.compare/2as a compatibility shim for Decimal 1.x and 2.x
This is the changelog for Cldr Utils v2.10.0 released on September 8th, 2020. For older changelogs please consult the release tag on GitHub
- Supports
Decimal1.6 or greater orDecimal2.x or later
This is the changelog for Cldr Utils v2.9.1 released on May 3rd, 2020. For older changelogs please consult the release tag on GitHub
- Fix compatibility with
ex_cldrreleases up to 2.13.0. Thanks to @hl for the report. Fixes #3.
This is the changelog for Cldr Utils v2.9.0 released on May 2nd, 2020. For older changelogs please consult the release tag on GitHub
-
Add
:level,:onlyand:exceptoptions toCldr.Map.deep_map/3and refactor functions that use it -
Add
Cldr.Enum.reduce_peeking/3that is a simple reduce function that also passed the tail of the enum being reduced to enable a simple form of lookahead -
Refactor
Cldr.Math.round/2implementation for floating point numbers that improves efficiency by about 100% since it avoids round trip conversion toDecimal
This is the changelog for Cldr Utils v2.8.0 released on February 14th, 2020. For older changelogs please consult the release tag on GitHub
- Be more resilient of the availability of
:persistent_termgiven thatget/2,get/1and:persistent_termitself are available on different OTP releases. Thanks to @halostatue. Closes #2.
This is the changelog for Cldr Utils v2.7.0 released on January 31st, 2020. For older changelogs please consult the release tag on GitHub
- Add
Cldr.String.to_underscore/1that replaces "-" with "_"
This is the changelog for Cldr Utils v2.6.0 released on January 21st, 2020. For older changelogs please consult the release tag on GitHub
- Support
Decimalversions~> 1.6 or 1.9 or 2.0. Version 1.9 deprecatesDecimal.compare/2in favour ofDecimal.cmp/2. The upcomingDecimalversion 2.0 deprecatesDecimal.cmp/2in favour of a new implementation ofDecimal.compare/2that conforms to Elixir norms and is required to supportEnum.sort/2correctly. This version ofcldr_utilsdetects the relevant version and adapts accordingly at compile time.
This is the changelog for Cldr Utils v2.5.0 released on October 22nd, 2019. For older changelogs please consult the release tag on GitHub
- Add
Cldr.Macros.warn_once/3to log a warning, but only once for a given key
This is the changelog for Cldr Utils v2.4.0 released on August 23rd, 2019. For older changelogs please consult the release tag on GitHub
- Add
Cldr.String.hash/1to implement a polynomial rolling hash function
This is the changelog for Cldr Utils v2.3.0 released on June 15th, 2019. For older changelogs please consult the release tag on GitHub
- Adds
doc_since/1andcalendar_impl/0to support conditional compilation based upon Elixir versions
This is the changelog for Cldr Utils v2.2.0 released on March 25th, 2019. For older changelogs please consult the release tag on GitHub
- Add
Cldr.Math.div_amod/2
This is the changelog for Cldr Utils v2.1.0 released on March 10th, 2019. For older changelogs please consult the release tag on GitHub
Cldr.Map.integerize_keys/1now properly processes negative integer keys. Minor version change to make it easier to peg versions in upstream packages.
This is the changelog for Cldr Utils v2.0.4 released on Jnauary 3rd, 2018. For older changelogs please consult the release tag on GitHub
- Fixes
Cldr.Math.round/3for floats when rounding is > 0 digits
This is the changelog for Cldr Utils v2.0.4 released on Decmber 15th, 2018. For older changelogs please consult the release tag on GitHub
- Fixes
Cldr.Math.round/3to be compatible withDecimal.round/3andKernel.round/1
This is the changelog for Cldr Utils v2.0.3 released on Decmber 8th, 2018. For older changelogs please consult the release tag on GitHub
- Fixed an error in
Cldr.Math.round/3forDecimalnumbers where the value being rounded is < 1 but greater than 0 whereby the sign was being returned astrueinstead of1.
This is the changelog for Cldr Utils v2.0.2 released on November 23rd, 2018. For older changelogs please consult the release tag on GitHub
- Replace additional deprecated
Decimal.new/1withDecimal.from_float/1where required
This is the changelog for Cldr Utils v2.0.1 released on November 23rd, 2018. For older changelogs please consult the release tag on GitHub
- Replace deprecated
Decimal.new/1withDecimal.from_float/1where required
This is the changelog for Cldr Utils v2.0.0 released on October 29th, 2018. For older changelogs please consult the release tag on GitHub
- Initial release extracted from ex_cldr