Date: Monday, July 5, 2021 @ 13:55:30 Author: felixonmars Revision: 972351
upgpkg: hledger-iadd 1.3.14-31: rebuild with hledger 1.22, hledger-lib 1.22, hledger-ui 1.22, hledger-web 1.22 Added: hledger-iadd/trunk/hledger-lib-1.22.patch Modified: hledger-iadd/trunk/PKGBUILD ------------------------+ PKGBUILD | 9 ++- hledger-lib-1.22.patch | 107 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-07-05 11:54:38 UTC (rev 972350) +++ PKGBUILD 2021-07-05 13:55:30 UTC (rev 972351) @@ -3,7 +3,7 @@ _hkgname=hledger-iadd pkgname=hledger-iadd pkgver=1.3.14 -pkgrel=30 +pkgrel=31 pkgdesc="A terminal UI as drop-in replacement for hledger add" url="https://github.com/hpdeifel/hledger-iadd#readme" license=("BSD") @@ -13,11 +13,14 @@ 'haskell-text-zipper' 'haskell-unordered-containers' 'haskell-vector' 'haskell-vty' 'haskell-xdg-basedir') makedepends=('ghc' 'uusi' 'haskell-quickcheck' 'haskell-hspec' 'haskell-hspec-discover') -source=("https://hackage.haskell.org/packages/archive/$_hkgname/$pkgver/$_hkgname-$pkgver.tar.gz") -sha256sums=('c5472492ec443948762e4e236d91d9057ed23e8f0866c2aa32929997ae479c4d') +source=("https://hackage.haskell.org/packages/archive/$_hkgname/$pkgver/$_hkgname-$pkgver.tar.gz" + hledger-lib-1.22.patch) +sha256sums=('c5472492ec443948762e4e236d91d9057ed23e8f0866c2aa32929997ae479c4d' + '37a144b21334670e126a6aa76ab806f72a28456d6a969496db2a7be2c70bf328') prepare() { cd $_hkgname-$pkgver + patch -p1 -i ../hledger-lib-1.22.patch uusi -d semigroups $_hkgname.cabal } Added: hledger-lib-1.22.patch =================================================================== --- hledger-lib-1.22.patch (rev 0) +++ hledger-lib-1.22.patch 2021-07-05 13:55:30 UTC (rev 972351) @@ -0,0 +1,107 @@ +commit ee3a0ab82fad7d70328a4ed0a8796cd112195737 +Author: Felix Yan <[email protected]> +Date: Mon Jul 5 21:39:16 2021 +0800 + + Support hledger-lib 1.22 + + All tests are passing here. + +diff --git a/hledger-iadd.cabal b/hledger-iadd.cabal +index 845472a..8cc93ee 100644 +--- a/hledger-iadd.cabal ++++ b/hledger-iadd.cabal +@@ -60,7 +60,7 @@ library + , Data.Time.Ext + default-language: Haskell2010 + build-depends: base >= 4.9 && < 5 +- , hledger-lib >= 1.21 && < 1.22 ++ , hledger-lib >= 1.22 && < 1.23 + , brick >= 0.27 + , vty >= 5.4 + , text +@@ -88,7 +88,7 @@ executable hledger-iadd + default-language: Haskell2010 + build-depends: base >= 4.9 && < 5 + , hledger-iadd +- , hledger-lib >= 1.21 && < 1.22 ++ , hledger-lib >= 1.22 && < 1.23 + , brick >= 0.27 + , vty >= 5.4 + , text +@@ -116,7 +116,7 @@ test-suite spec + default-language: Haskell2010 + build-depends: base >= 4.9 && < 5 + , hledger-iadd +- , hledger-lib >= 1.21 && < 1.22 ++ , hledger-lib >= 1.22 && < 1.23 + , text + , transformers >= 0.3 + , time >= 1.5 +diff --git a/src/Model.hs b/src/Model.hs +index 8478e30..24b79da 100644 +--- a/src/Model.hs ++++ b/src/Model.hs +@@ -269,7 +269,7 @@ isSubsetTransaction current origin = + cmpPosting a b = HL.paccount a == HL.paccount b + && cmpAmount (HL.pamount a) (HL.pamount b) + +- cmpAmount (HL.Mixed a) (HL.Mixed b) = ((==) `on` map (HL.acommodity &&& HL.aquantity)) a b ++ cmpAmount a b = ((==) `on` map (HL.acommodity &&& HL.aquantity)) (HL.amounts a) (HL.amounts b) + + listToMaybe' :: [a] -> Maybe [a] + listToMaybe' [] = Nothing +@@ -280,7 +280,7 @@ numPostings = length . HL.tpostings + + -- | Returns True if all postings balance and the transaction is not empty + transactionBalanced :: HL.Transaction -> Bool +-transactionBalanced = HL.isTransactionBalanced Nothing ++transactionBalanced = HL.isTransactionBalanced HL.balancingOpts + + -- | Computes the sum of all postings in the transaction and inverts it + negativeAmountSum :: HL.Transaction -> HL.MixedAmount +@@ -371,13 +371,13 @@ isDuplicateTransaction journal trans = any ((==EQ) . cmpTransaction trans) (HL. + -- | Compare two mixed amounts by first sorting the individual amounts + -- deterministically and then comparing them one-by-one. + cmpMixedAmount :: HL.MixedAmount -> HL.MixedAmount -> Ordering +- cmpMixedAmount (HL.Mixed as1) (HL.Mixed as2) = ++ cmpMixedAmount as1 as2 = + let +- sortedAs1 = sortBy cmpAmount as1 +- sortedAs2 = sortBy cmpAmount as2 ++ sortedAs1 = sortBy cmpAmount $ HL.amounts as1 ++ sortedAs2 = sortBy cmpAmount $ HL.amounts as2 + in + mconcat $ +- compare (length as1) (length as2) : zipWith cmpAmount sortedAs1 sortedAs2 ++ compare (length $ HL.amounts as1) (length $ HL.amounts as2) : zipWith cmpAmount sortedAs1 sortedAs2 + + cmpBalanceAssertion :: HL.BalanceAssertion -> HL.BalanceAssertion -> Ordering + cmpBalanceAssertion = lexical [cmp HL.baamount, cmp HL.batotal] +diff --git a/tests/AmountParserSpec.hs b/tests/AmountParserSpec.hs +index fc1586c..e250738 100644 +--- a/tests/AmountParserSpec.hs ++++ b/tests/AmountParserSpec.hs +@@ -34,7 +34,7 @@ spec = describe "parseAmount" $ do + parseAmount HL.nulljournal "23 +" `shouldSatisfy` isLeft + + amount :: Text -> HL.MixedAmount +-amount = HL.mixed . pure . fromRight . runIdentity . runParserT (evalStateT HL.amountp HL.nulljournal) "" ++amount = HL.mixed . Just . fromRight . runIdentity . runParserT (evalStateT HL.amountp HL.nulljournal) "" + + fromRight :: Either a b -> b + fromRight = either (error "fromRight: Left value encountered") id +diff --git a/tests/ModelSpec.hs b/tests/ModelSpec.hs +index 4c33bc6..6e72ba6 100644 +--- a/tests/ModelSpec.hs ++++ b/tests/ModelSpec.hs +@@ -198,8 +198,8 @@ isDuplicateTransactionSpec = do + a2 = (HL.eur 0.5) { HL.astyle = HL.amountstyle { HL.asprecision = HL.Precision 15 } } + + p1 = mkPosting ("Test", -1) +- p2 = HL.nullposting { HL.paccount = "Toast", HL.pamount = HL.Mixed [a1] } +- p3 = HL.nullposting { HL.paccount = "Toast", HL.pamount = HL.Mixed [a2] } ++ p2 = HL.nullposting { HL.paccount = "Toast", HL.pamount = HL.mixedAmount a1 } ++ p3 = HL.nullposting { HL.paccount = "Toast", HL.pamount = HL.mixedAmount a2 } + + t0 = mkTransaction ((2017,9,23), "Test", []) + t1 = t0 { HL.tpostings = [p1,p2,p2] }
