aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/History/CommitInfo.hs45
-rw-r--r--app/Issue/Tag.hs5
-rw-r--r--app/Main.hs7
3 files changed, 33 insertions, 24 deletions
diff --git a/app/History/CommitInfo.hs b/app/History/CommitInfo.hs
index b42e1ba..5285e68 100644
--- a/app/History/CommitInfo.hs
+++ b/app/History/CommitInfo.hs
@@ -46,14 +46,18 @@ fromPartialCommitInfos (partialCommitInfo : partialCommitInfos) =
Just
new
{ provenance =
- (\oldProvenance newProvenance ->
- ( I.Provenance
- { first = oldProvenance.first,
- last = newProvenance.last
- }
- )
+ ( \oldProvenance newProvenance ->
+ ( I.Provenance
+ { first = oldProvenance.first,
+ last =
+ if clear old /= clear new
+ then newProvenance.last
+ else oldProvenance.last
+ }
+ )
)
- <$> old.provenance <*> new.provenance,
+ <$> old.provenance
+ <*> new.provenance,
internalTags = I.internalTags new.title old.provenance
}
)
@@ -91,21 +95,22 @@ diffCommitInfos oldInfo newInfo =
newIssues = newInfo.issues
oldIssues = oldInfo.issues
- -- TODO Fix issue comparison
- --
- -- Because issues carry `provenance` and `internalTags`, issues compare
- -- unequally when we want them to be equal.
- clear i =
- i
- { provenance = Nothing,
- internalTags = [],
- start = Position 0 0,
- end = Position 0 0,
- file = ""
- }
-
eq = (==) `on` id
+-- TODO Fix issue comparison
+--
+-- Because issues carry `provenance` and `internalTags`, issues compare
+-- unequally when we want them to be equal.
+clear :: Issue -> Issue
+clear i =
+ i
+ { provenance = Nothing,
+ internalTags = [],
+ start = Position 0 0,
+ end = Position 0 0,
+ file = ""
+ }
+
mergeListsBy :: (a -> a -> Bool) -> (a -> a -> b) -> (a -> b) -> (a -> b) -> [a] -> [a] -> [b]
mergeListsBy eq onBoth onLeft onRight lefts rights =
concat
diff --git a/app/Issue/Tag.hs b/app/Issue/Tag.hs
index 2947ec9..8bbbba9 100644
--- a/app/Issue/Tag.hs
+++ b/app/Issue/Tag.hs
@@ -13,7 +13,7 @@ import Data.Text (Text, pack)
import Data.Text qualified as T
import Data.Time.Clock (UTCTime (utctDay))
import GHC.Generics (Generic)
-import Issue.Provenance (Provenance (..), Commit(..))
+import Issue.Provenance (Commit (..), Provenance (..))
data Tag = Tag Text (Maybe Text) deriving (Show, Generic, Binary, Eq)
@@ -46,7 +46,8 @@ internalTags title provenance' =
maybe
[]
( \provenance ->
- [ Tag "createdAt" $ Just $ pack $ show $ utctDay provenance.first.date
+ [ Tag "createdAt" $ Just $ pack $ show $ utctDay provenance.first.date,
+ Tag "modifiedAt" $ Just $ pack $ show $ utctDay provenance.last.date
]
)
provenance'
diff --git a/app/Main.hs b/app/Main.hs
index 28a32bb..3d71ebc 100644
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -616,8 +616,10 @@ main = do
\I.Provenance {first} ->
( keyword "by" <+> value (first.author.name <> " <" <> first.author.email <> ">")
)
- date' = fromProvenance $
+ createdAt = fromProvenance $
\I.Provenance {first} -> keyword "on" <+> value (show (utctDay first.date))
+ modifiedAt = fromProvenance $
+ \I.Provenance {last = last'} -> keyword "modified" <+> value (show (utctDay last'.date))
fromProvenanceDef def = flip (maybe def) issue.provenance
fromProvenance = flip fmap issue.provenance
@@ -630,7 +632,8 @@ main = do
Just fileAndRow,
Just commit,
author,
- date'
+ createdAt,
+ modifiedAt
]
)
issues