packages feed

krank 0.3.0 → 0.3.1

raw patch · 8 files changed

+23/−7 lines, 8 filesdep +hspec-discoverdep ~basePVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: hspec-discover

Dependency ranges changed: base

API changes (from Hackage documentation)

- Krank.Checkers.IssueTracker: [$sel:issueNum:GitIssueRef] :: GitIssueRef -> Int
- Krank.Checkers.IssueTracker: [$sel:owner:GitIssueRef] :: GitIssueRef -> Text
- Krank.Checkers.IssueTracker: [$sel:repo:GitIssueRef] :: GitIssueRef -> Text
- Krank.Checkers.IssueTracker: [$sel:server:GitIssueRef] :: GitIssueRef -> GitServer
+ Krank.Checkers.IssueTracker: [issueNum] :: GitIssueRef -> Int
+ Krank.Checkers.IssueTracker: [owner] :: GitIssueRef -> Text
+ Krank.Checkers.IssueTracker: [repo] :: GitIssueRef -> Text
+ Krank.Checkers.IssueTracker: [server] :: GitIssueRef -> GitServer
- Krank.Types: class (Monad m, MonadCatch m) => MonadKrank m
+ Krank.Types: class (Monad m, MonadCatch m) => MonadKrank (m :: Type -> Type)

Files

CHANGELOG.md view
@@ -1,5 +1,11 @@ # Revision history for krank +## 0.3.1 -- 2025-12-07++* Support for GHC up to 9.12+* Fix build with http-client >= 0.7.16+* Fix url parsing in markdown+ ## 0.2.3 -- 2021-07-18  * #88 krank tries to test files listed by `git ls-files` or `find` by default.
app/Main.hs view
@@ -21,6 +21,7 @@ import System.Process import Text.Regex.PCRE.Heavy import Version (displayVersion)+import Control.Monad (unless)  data KrankOpts = KrankOpts   { codeFilePaths :: [FilePath],
krank.cabal view
@@ -1,6 +1,6 @@ cabal-version:       2.2 name:                krank-version:             0.3.0+version:             0.3.1 synopsis: Krank checks issue tracker link status in your source code -- description: bug-reports: https://github.com/guibou/krank/issues@@ -16,7 +16,7 @@ extra-source-files:  CHANGELOG.md, README.md HACKING.md docs/Checkers/IssueTracker.md  common shared-library-  build-depends:       base >= 4.9+  build-depends:       base >= 4.9 && <= 4.23.0.0                        , PyF >= 0.8.1.0                        , aeson >= 2                        , bytestring@@ -72,6 +72,7 @@                        Utils.Req   build-depends: hspec >= 2.7                , hspec-expectations+               , hspec-discover   ghc-options:         -threaded -rtsopts -with-rtsopts=-N  executable krank
src/Krank.hs view
@@ -25,6 +25,7 @@ import qualified Network.HTTP.Req as Req import PyF import System.IO (stderr)+import Control.Monad (forM_)  processFile ::   MonadKrank m =>
src/Krank/Checkers/IssueTracker.hs view
@@ -64,7 +64,7 @@ gitRepoRe :: RE.Regex -- NOTE: \b at the beginning is really import for performances -- because it dramatically reduces the number of backtracks-gitRepoRe = [RE.re|\b(?>https?://)?(?>www\.)?([^/ ]+)/([^ ]+)/([^- ][^/ ]*)(?>/-)?/issues/([0-9]+)|]+gitRepoRe = [RE.re|\b(?>https?://)?(?>www\.)?([^/ ]+)/([^ /][^ ]*)/([^-/ ][^/ ]*)(?>/-)?/issues/([0-9]+)|]  -- | Extract all issues on one line and returns a list of the raw text associated with an issue extractIssuesOnALine :: ByteString -> [(Int, GitIssueRef)]
tests/Test/Krank/Checkers/IssueTrackerSpec.hs view
@@ -17,7 +17,7 @@ import Data.Coerce import Data.Map (Map) import qualified Data.Map as Map-import Data.Text+import Data.Text (Text) import Krank import Krank.Checkers.IssueTracker import Krank.Types@@ -104,13 +104,16 @@   it "handles long gitlab url with groups and with the odd /-" $ do     let match = check [fmt|{domainName}/gbataille_main/sub_level_1/sub_level_2/deep_in_groups/-/issues/12|]     match `shouldBe` Just (GitIssueRef domain "gbataille_main/sub_level_1/sub_level_2" "deep_in_groups" 12)+  it "handle an url embeded in markdown" $ do+    let match = check [fmt|lalalalalalaalla [Issue XX](https://{domainName}/foo/bar/issues/123) blo blo blu|]+    match `shouldBe` Just (GitIssueRef domain "foo" "bar" 123)  spec :: Spec spec = do   context "Test.Krank.Checkers.specIssueTracker" $ do     describe "#githubParser" $       giturlTests Github-    describe "#githlabParser" $+    describe "#gitlabParser" $       giturlTests (Gitlab (GitlabHost "gitlab.com"))     describe "#extractIssues" $       it "handles both github and gitlab" $
tests/Test/Utils/GithubSpec.hs view
@@ -56,7 +56,9 @@         showGithubException exception `shouldBe` showHTTPException showRawResponse exception  dummyResponse :: Status -> Response ()-#if MIN_VERSION_http_client(0,7,8)+#if MIN_VERSION_http_client(0,7,16)+dummyResponse status = Response status http11 [] () (createCookieJar []) (ResponseClose $ pure ()) (error "WTF") []+#elif MIN_VERSION_http_client(0,7,8) dummyResponse status = Response status http11 [] () (createCookieJar []) (ResponseClose $ pure ()) (error "WTF") #else dummyResponse status = Response status http11 [] () (createCookieJar []) (ResponseClose $ pure ())
tests/Test/Utils/GitlabSpec.hs view
@@ -63,7 +63,9 @@         showGitlabException exception `shouldBe` showHTTPException showRawResponse exception  dummyResponse :: Status -> Response ()-#if MIN_VERSION_http_client(0,7,8)+#if MIN_VERSION_http_client(0,7,16)+dummyResponse status = Response status http11 [] () (createCookieJar []) (ResponseClose $ pure ()) (error "WTF") []+#elif MIN_VERSION_http_client(0,7,8) dummyResponse status = Response status http11 [] () (createCookieJar []) (ResponseClose $ pure ()) (error "WTF") #else dummyResponse status = Response status http11 [] () (createCookieJar []) (ResponseClose $ pure ())