Localize verison 0.32.0
[0.32.0] — May 12th, 2026
Bug Fixes
-
mix localize.download_localesno longer evaluatesconfig/runtime.exsof the consumer application. Previously the task ranMix.Task.run("app.config"), which transitively evaluatedruntime.exs, which was not necessary. The task now loads only compile-time config (config/config.exsand any imported env-specific file), matching the build-time contract its docstring already advertised. Thanks to @whatyouhide for the PR. -
Hardened two further sites that pattern-matched
{:ok, _} = <fallible Localize call>and could have surfaced the sameMatchErrorclass as issue #26: the per-unit format loop inLocalize.Duration.to_string/2now short-circuits on the first formatter error, andLocalize.Number.Formatter.Decimal's digit-transliteration step now useswithto fall through to untransliterated digits if either the requested or:latnnumber-system data is unavailable.
Hardening
-
New
Localize.LintTestsource-level lint that scanslib/and fails the test suite if any file pattern-matches{:ok, _} =against a known-fallible Localize call. The list of fallible calls and an empty allowlist live in the test; future occurrences fail loudly on the offending PR rather than waiting for a runtime regression report. -
New
Localize.Locale.FallbackResilienceTestexercises the load → store → get pipeline for seven representative regional locales under a provider that only serves:en, asserting that the data ends up under the canonicalised requested key and thatprovider.get/3succeeds. -
New
Mix.Tasks.Localize.DownloadLocalesTestcallsDownloadLocales.banner/2directly withdefault_locale: :"en-ZA"set, reproducing the exact scenario from issue #26 without invoking the network.banner/2is now@doc falseso the test can reach it.