v1.0.0 (2026-07-20)
This fork is rebranded from Number/:number to NumberFormatter/:number_formatter,
published as a new Hex package (number_formatter), so versioning restarts at 1.0.0
rather than continuing upstream's 1.0.x line. Everything below is relative to
upstream v1.0.5.
Breaking changes:
- Renamed every module (
Number->NumberFormatter) and their backing files (lib/number(.ex|/)->lib/number_formatter(.ex|/), same undertest/). - Renamed the OTP application/config atom from
:numberto:number_formatter. Existingconfig :number, ...must becomeconfig :number_formatter, .... - Package renamed from
numbertonumber_formatter; repo moved to Ch4s3/number_formatter. - Upgraded
decimalto~> 3.0, dropping support for~> 1.5/~> 2.0. - Tightened the
elixirversion requirement from~> 1.0to~> 1.16, matching what's actually tested in CI.
Added:
- Elixir 1.20 support, tested in CI alongside 1.16.
- CI migrated from Semaphore to GitHub Actions.
- Credo static analysis, run as part of
bin/test. - Test coverage for the
use NumberFormattermacro (previously untested).
Fixed:
Conversion.to_float/1andto_decimal/1no longer silently truncate malformed strings with a valid numeric prefix --to_decimal("123abc")used to returnDecimal.new(123); it now raisesArgumentError.- Fixed a
Decimal.Errorcrash innumber_to_delimited/2andnumber_to_currency/2on float-derived strings with more than 28 significant digits (Decimal 3.x's defaultmax_digits). - Fixed backreference corruption in
Currency.number_to_currency/2andPhone.number_to_phone/2when a:unitor:delimiteroption contained a literal backslash-digit sequence (e.g."\1"), which was silently misread as a regex capture-group reference. - Fixed Elixir 1.19+ deprecation warnings (
preferred_cli_env->cli/0, single-quoted charlists ->~csigil).
Changed:
- Removed the dead Decimal 1.x
compare/2compatibility shim; call sites now useDecimal.compare/2directly. - Simplified
Human.number_to_human/2(cyclomatic complexity 11 -> a data-driven scale list) andDelimit.to_integer/1(explicit try -> idiomatic implicit try). - Extracted repeated config-loading boilerplate (5 modules) into
NumberFormatter.Config.resolve/2.
v1.0.5 (2024-04-06)
Merged pull requests:
- ✅ Test against Elixir 1.16 #63 (danielberkompas)
- add missing nil support #62 (bkilshaw)
v1.0.4 (2023-05-26)
Merged pull requests:
- :arrow_up: Update
ex_doc#60 (danielberkompas) - :recycle: Replace
Mix.ConfigwithConfig#59 (danielberkompas) - :green_heart: Update CI settings #58 (danielberkompas)
- :label: Use
Number.tandKeyword.tin typespecs #57 (danielberkompas) - Fix percentage spec #56 (fiodorbaczynski)
- Update
number_to_phone/2typespec #52 (lleger) - Misc doc changes #51 (kianmeng)
v1.0.3 (2020-10-01)
Closed issues:
- Broken behavior with Decimal version 1.x #47
- Decimal 2.0 has been released, Number requires ~>1.5 #45
Merged pull requests:
- [#47] Add compare/2 shim to support Decimal 1.5 #49 (danielberkompas)
v1.0.2 (2020-09-21)
Merged pull requests:
v1.0.1 (2019-12-06)
Closed issues:
Merged pull requests:
- fix: add nil @spec overload to number_to_delimited #44 (superhawk610)
v1.0.0 (2018-11-28)
Closed issues:
- Rounding fails #38
Merged pull requests:
- Fix deprecation warnings from decimal module #40 (akash-akya)
- Fix Number.SI test failure, upgrade Travis #39 (danielberkompas)
v0.5.7 (2018-05-17)
Merged pull requests:
- Drop DecimalArithmetic #37 (michalmuskala)
v0.5.6 (2018-04-19)
Merged pull requests:
v0.5.5 (2018-02-19)
Closed issues:
- Invalid typespecs #34
Merged pull requests:
v0.5.4 (2017-09-07)
Closed issues:
- decimal_arithmetic is missing from applications list #32
Merged pull requests:
- [#32] Switch to
extra_applications#33 (danielberkompas)
v0.5.3 (2017-08-30)
Closed issues:
Merged pull requests:
- [#30] Fix deprecation warnings on Elixir 1.5 #31 (danielberkompas)
v0.5.2 (2017-08-05)
Closed issues:
- Number formatting with abbreviations: $1,200,000 -> $1.2MM, $5,586 -> $5.6k, etc. #26
Merged pull requests:
- [#23] Properly handle negative Decimals #29 (danielberkompas)
- fix Float.to_string warnings for elixir 1.3 #27 (kerryjj)
- Update readme for Elixir 1.4 instructions. #25 (sergiotapia)
v0.5.1 (2017-01-17)
Closed issues:
- Add to application list in mix.exs? #23
Merged pull requests:
- Fix 1.4 warnings #24 (stuartbain)
v0.5.0 (2016-11-26)
Closed issues:
- Error in hex doc #16
Merged pull requests:
- Stop signing with Keybase #22 (danielberkompas)
- Number with ordinal suffix #21 (alexfilatov)
- Fixed #16 #20 (unti1x)
- [#18] Improve precision using Decimal #19 (danielberkompas)
- Fix Number.Delimit.number_to_delimited cannot handle negative in string #17 (raycheung)
v0.4.2 (2016-07-02)
Fixed bugs:
- Number.Conversion is not used internally #12
Closed issues:
- Module not available in releases if not listed in :applications #14
Merged pull requests:
- [#12] Use Number.Conversion properly, support Decimal #15 (danielberkompas)
- Don't set display_number inside conditional #13 (bratsche)
v0.4.1 (2015-12-16)
Closed issues:
- number_to_human skips some numbers #10
Merged pull requests:
- Fix number_to_human rounding and skipping errors #11 (danielberkompas)
- Adds SI.format #9 (stereosteve)
- Add examples of module usage to README #7 (danielberkompas)
- Prettify Docs #6 (danielberkompas)
v0.4.0 (2015-08-04)
Merged pull requests:
- Add Number.Human.number_to_human/2 #5 (danielberkompas)
- Add Number.Percentage.number_to_percentage/2 #4 (danielberkompas)
v0.3.4 (2015-06-10)
v0.3.3 (2015-06-10)
v0.3.2 (2015-06-10)
Implemented enhancements:
- Improve Keybase Signature Validation #3 (danielberkompas)
v0.3.1 (2015-06-10)
v0.3.0 (2015-06-10)
Implemented enhancements:
- Add
number_to_phonefunction #2 (danielberkompas)
Merged pull requests:
v0.2.1 (2015-06-09)
v0.2.0 (2015-06-09)
* This Changelog was automatically generated by github_changelog_generator