Changelog for safe-money-0.7
Version 0.7
-
IMPORTANT. All of the changes in this release are fully backwards compatible. What happens in this release is that many instances previously exported by
safe-moneynow live in different libraries so that downstream packages can avoid using Cabal flags to specify dependencies. -
COMPILER ASSISTED BREAKING CHANGE.
FromJSONandToJSON(fromaeson) instances are not exported from thesafe-moneylibrary anymore. Instead, you are now expected to depend on the vettedsafe-money-aesonlibrary and importMoney.Aesonto get the relevant instances. These instances are exactly the same ones previously exported bysafe-money. As a consequence of this change, theaesonCabal flag insafe-moneyand the optional dependency onaesonwere removed, which simplifies downstream packaging. -
COMPILER ASSISTED BREAKING CHANGE.
Store(fromstore) instances are not exported from thesafe-moneylibrary anymore. Instead, you are now expected to depend on the vettedsafe-money-storelibrary and importMoney.Storeto get the relevant instances. These instances are exactly the same ones previously exported bysafe-money. As a consequence of this change, thestoreCabal flag insafe-moneyand the optional dependency onserialisewere removed, which simplifies downstream packaging. -
COMPILER ASSISTED BREAKING CHANGE.
Serialise(fromserialise) instances are not exported from thesafe-moneylibrary anymore. Instead, you are now expected to depend on the vettedsafe-money-serialiselibrary and importMoney.Serialiseto get the relevant instances. These instances are exactly the same ones previously exported bysafe-money. As a consequence of this change, theserialiseCabal flag insafe-moneyand the optional dependency onserialisewere removed, which simplifies downstream packaging. -
COMPILER ASSISTED BREAKING CHANGE.
Serialize(fromcereal) instances are not exported from thesafe-moneylibrary anymore. Instead, you are now expected to depend on the vettedsafe-money-cereallibrary and importMoney.Serializeto get the relevant instances. These instances are exactly the same ones previously exported bysafe-money. As a consequence of this change, thecerealCabal flag insafe-moneyand the optional dependency oncerealwere removed, which simplifies downstream packaging. -
COMPILER ASSISTED BREAKING CHANGE.
FromXmlandToXml(fromxmlbf) instances are not exported from thesafe-moneylibrary anymore. Instead, you are now expected to depend on the vettedsafe-money-xmlbflibrary and importMoney.Aesonto get the relevant instances. These instances are exactly the same ones previously exported bysafe-money. As a consequence of this change, thexmlbfCabal flag insafe-moneyand the optional dependency onxmlbfwere removed, which simplifies downstream packaging. -
COMPILER ASSISTED BREAKING CHANGE.
hashableandvector-spaceare now mandatory dependencies ofsafe-money.Hashable,VectorSpaceandAdditiveGroupinstances for the varioussafe-moneydatatypes are now exported fromMoney. Thehashableandvector-spaceCabal flags are now gone. -
Arbitraryinstances (from theQuickCheckpackages) for the varioussafe-moneydatatypes are now exported fromMoney.QuickCheckis now a mandatory dependency ofsafe-money.
Version 0.6
-
COMPILER ASSISTED BREAKING CHANGE.
denseToDecimalnow takes a positiveRationalrather than aProxy scale. -
COMPILER ASSISTED BREAKING CHANGE.
denseFromDecimalanddiscreteFromDecimalnow take a positiveRationalscale, like theirxxxToDecimalcounterparts. -
COMPILE ASSISTED BREAKING CHANGE.
binary,deepseqandtextare now mandatory dependencies since they are included with the standard GHC distribution. Thus, the tags for disabling them have been removed. -
COMPILE ASSISTED BREAKING CHANGE.
Textreplaced the use ofStringin the public API. For example,denseCurrencynow returnsText, instead ofString. This change doesn't break backwards compatibilility with binary serializations. -
Introduced a new function
discreteToDecimal. -
Added tests to ensure backwards compatibility of serializations.
Version 0.5
-
COMPILER ASSISTED BREAKING CHANGE. The
round,floor,ceilingandtruncatefunctions were replaced by a singlediscreteFromDensefunction taking an argument of typeApproximation(Round,Floor,CeilingorTruncate) as an argument. -
COMPILER ASSISTED BREAKING CHANGE. The
fromDiscretefunction was renamed todenseFromDiscrete. -
COMPILER ASSISTED BREAKING CHANGE. The
fromExchangeRatefunction was renamed toexchangeRateToRational. -
COMPILER ASSISTED BREAKING CHANGE. The
flipExchangeRatefunction was renamed toexchangeRateRecip. -
COMPILER ASSISTED BREAKING CHANGE. The
Denseis not an instance ofFractionalanymore becauserecipand/could potentially crash. -
Introduced new functions for rendering and parsing decimal reperesentations of monetary amounts:
denseCurrency,discreteCurrency,denseFromDecimal,denseToDecimal,discreteFromDecimal,exchangeRateFromDecimal,exchangeRateToDecimal. -
Introduced optional
AdditiveGroupandVectorSpacegroup instances forDenseandDiscrete. These type-classes come from thevector-spacelibrary and they can be enabled or disabled via thevector-spaceCabal flag, which is enabled by default. -
Introduced
discreteconstructor which behaves just likefromInteger. -
Introduced the
dense'constructor as an unsafe but convenient version ofdense. -
The
ErrScaleNonCanonicaltype is now exported. -
The
Money.Internalmodule is now exposed, but hidden from the Haddock documentation. -
New scale:
"BTC" "millibitcoin". -
Added many tests.
Version 0.4.1
ExchangeRateis now aCategory.
Version 0.4
-
BREAKING CHANGE REQUIRING HUMAN INTERVENTION. The JSON serializations for all of
Dense,SomeDense,Discrete,SomeDiscrete,ExchangeRateandSomeExchangeRatechanged. TheFromJSONinstances are backwards compatible with the old serializations, but theToJSONinstances will only generate the new format, which is the same as the old format except the leading strings"Dense","Discrete"and"ExchangeRate", respectively, are not present in the rendered JSON array anymore. So, if you were manually relying on theToJSONinstance, please update your code. -
COMPILER ASSISTED BREAKING CHANGE. Changed the
Repsuffix for aSomeprefix Everywhere. For example,DenseRepwas renamed toSomeDense. -
COMPILER ASSISTED BREAKING CHANGE. Replaced the
someDenseAmountNumeratorandsomeDenseAmountDenominatorIntegerswith a singlesomeDenseAmountRationalnumber. Similarly forsomeDiscreteScaleandsomeExchangeRateRate. ThemkSomeDense,someDiscreteScaleandmkSomeDensealso take aRationalnow. -
COMPILER ASSISTED BREAKING CHANGE. The
truncate,floor,celingandroundfunctions now return just0as a reminder if there's no significant reminder, instead ofNothing. -
Added instances for
serialise. -
Added instances for
xmlbf. -
Fixed
Showinstances so that surrounding parentheses are included when necessary. -
New currencies: Ripple, Litecoin, Ada, Monero.
Version 0.3
-
COMPILER ASSISTED BREAKING CHANGE. The
Data.Moneymodule was renamed toMoney. -
COMPILER ASSISTED BREAKING CHANGE. The
Data.Money.Internalmodule is not exposed anymore. All of its contents are now exported from theMoneymodule. -
COMPILER ASSISTED BREAKING CHANGE. Renamed
discreteReptotoDiscreteRep. -
COMPILER ASSISTED BREAKING CHANGE. Renamed
denseReptotoDenseRep. -
COMPILER ASSISTED BREAKING CHANGE. Renamed
exchangeRateReptotoExchangeRateRep. -
COMPILER ASSISTED BREAKING CHANGE. Renamed Iceleandic currency
"eyir"to"eyrir" -
Remove upper bound constraints from all dependencies except
base. -
Made dependency on
storeoptional for the test suite, so that it can run on GHCJS.
Version 0.2
-
Cabal flags are now manual (
aeson,binary,bytes,cereal,deepseq,hashable). -
Backwards compatibility with GHC 7.10.
-
Fix
Storeinstances and test them.
Version 0.1
- Initial release.