Releases: PaulRWillis/swift-money
Releases · PaulRWillis/swift-money
0.39.1
Compare
Sorry, something went wrong.
No results found
0.39.1 (2026-10-10)
Bug Fixes
CLDRLocaleIdentifiers: split names on the hyphen byte, so the generator parses as the runtime does (4c72d6d )
localization: return nil for a plural category outside the locale table (9c3cd5d )
Performance Improvements
localization: drop the unused Sequence conformances from the lookup keys (8a975a7 )
localization: keep the subtag parse and the chain's step out of every copy (dcd83e6 )
localization: stop reading a language subtag past 8 bytes (4ba610e )
localization: stop reading a subtag once it can't be a script or region (d4ca150 )
0.39.0
Compare
Sorry, something went wrong.
No results found
0.39.0 (2026-10-09)
⚠ BREAKING CHANGES
Stride: nest MoneyStrideThrough in MoneyOf as StrideThrough
Stride: nest MoneyStrideTo in MoneyOf as StrideTo
Code Refactoring
Stride: nest MoneyStrideThrough in MoneyOf as StrideThrough (16407a9 )
Stride: nest MoneyStrideTo in MoneyOf as StrideTo (8923c30 )
0.38.0
Compare
Sorry, something went wrong.
No results found
0.38.0 (2026-10-09)
⚠ BREAKING CHANGES
move converted(using:) into a new SwiftMoneyFX module
Code Refactoring
move converted(using:) into a new SwiftMoneyFX module (c571550 )
0.37.1
Compare
Sorry, something went wrong.
No results found
0.37.1 (2026-10-09)
Bug Fixes
localization: fall back through a locale's script and region before its language (7369c55 )
localization: file places with no CLDR folder under the locale CLDR's lookup reaches (0031714 )
localization: match locale identifiers in any ASCII letter case (76db8d0 )
Performance Improvements
localization: walk the fallback chain in a loop (3e46fd4 )
0.37.0
Compare
Sorry, something went wrong.
No results found
0.37.0 (2026-10-09)
⚠ BREAKING CHANGES
FX: return nil from ExchangeRate.init?(_:) instead of rounding the quote
Features
FX: add ExchangeRate.inverted() (fb6bced )
FX: add ExchangeRate(string:) and its parsing error (739d7c0 )
FX: make ExchangeRate and Margin Hashable (8ab86e5 )
FX: make ExchangeRate Codable (f298f95 )
Bug Fixes
FX: refuse an exchange-rate quote that decoding would have to round (410d9df )
FX: return nil from ExchangeRate.init?(_:) instead of rounding the quote (bfc7c20 )
Performance Improvements
FX: write an exchange rate's description into one string (ebd1365 )
0.36.0
Compare
Sorry, something went wrong.
No results found
0.36.0 (2026-10-08)
⚠ BREAKING CHANGES
FX: throw from converted(using:) instead of crashing
FX: throw from crossed(with:) instead of crashing
FX: throw from applyingMargin instead of crashing
Bug Fixes
FX: throw from applyingMargin instead of crashing (4bbcbb2 )
FX: throw from converted(using:) instead of crashing (c3b3653 )
FX: throw from crossed(with:) instead of crashing (01a70e5 )
0.35.1
Compare
Sorry, something went wrong.
No results found
0.35.1 (2026-10-08)
Features
Money: add throwing min and max for three or more runtime amounts (a2a8796 )
Money: add throwing min and max for two runtime amounts (120ab5e )
Money: add throwing min and max over a sequence of runtime amounts (126cff7 )
0.35.0
Compare
Sorry, something went wrong.
No results found
0.35.0 (2026-10-08)
⚠ BREAKING CHANGES
Split: return a PartCount from WeightedSplit.count
Code Refactoring
Split: return a PartCount from WeightedSplit.count (0742ced )
0.34.0
Compare
Sorry, something went wrong.
No results found
0.34.0 (2026-10-08)
⚠ BREAKING CHANGES
FX: move ExchangeRate and Margin into an FX namespace
Code Refactoring
FX: move ExchangeRate and Margin into an FX namespace (959b9f9 )
0.33.1
Compare
Sorry, something went wrong.
No results found
0.33.1 (2026-10-08)
Bug Fixes
localization: file each locale under its CLDR name and its region-aware short name (ca124e0 )