From 296401c173d21dc0374888c0c6edae143f09678a Mon Sep 17 00:00:00 2001 From: Tom McLaughlin Date: Wed, 3 Apr 2024 05:00:29 -0700 Subject: [PATCH] LSP diagnostics improvements + upgrade to GHC 9.6.4 --- .../markdown-spellcheck-lsp/default.nix | 3 + tests/app/Spec/Tests.hs | 2 + .../Spec/Tests/Haskell/DocumentHighlight.hs | 9 +- tests/app/Spec/Tests/Rust/Changes.hs | 2 +- tests/app/Spec/Tests/Rust/Completion.hs | 3 +- tests/app/Spec/Tests/Rust/Hovers.hs | 4 +- tests/app/Spec/Tests/Spellchecker.hs | 17 +++- tests/package.yaml | 2 +- .../TestLib/Contexts/PostgresqlDatabase.hs | 1 + tests/src/TestLib/LSP.hs | 11 +-- tests/src/TestLib/TestBuilding.hs | 7 +- tests/src/TestLib/Util.hs | 49 +---------- tests/stack.yaml | 16 ++-- tests/stack.yaml.lock | 85 ++++++++++--------- tests/tests.cabal | 3 +- 15 files changed, 97 insertions(+), 117 deletions(-) diff --git a/language_servers/markdown-spellcheck-lsp/default.nix b/language_servers/markdown-spellcheck-lsp/default.nix index aa57c14d..2eeec68e 100644 --- a/language_servers/markdown-spellcheck-lsp/default.nix +++ b/language_servers/markdown-spellcheck-lsp/default.nix @@ -36,6 +36,7 @@ let indexJs = stdenv.mkDerivation { name = "markdown-spellcheck-lsp-index.js"; + # src = /nix/store/p5bvd7wfib8992v2cpdn0hfk8kxnf2m7-markdown-spellcheck-lsp-tarball/markdown-spellcheck-lsp.tar.gz; src = fetchTarball { url = https://github.com/codedownio/markdown-spellcheck-lsp/releases/download/v0.5.0/markdown-spellcheck-lsp.tar.gz; sha256 = "sha256:020kvqcv38d2nxcj6wgi1wamnpfdwqzss4fm3w3svwcn5ki22psz"; @@ -75,6 +76,8 @@ common.writeTextDirWithMeta hunspell.meta "lib/codedown/language-servers/codedow "${contents}/bin/markdown-spellcheck-lsp" "--affix-file" "${hunspellDicts.en-us}/share/hunspell/en_US.aff" "--dic-file" "${hunspellDicts.en-us}/share/hunspell/en_US.dic" + # "--personal-dic-file" ".codedown/personal-dictionary.dic" + # "--log-level" "4" "--stdio" ]; }]) diff --git a/tests/app/Spec/Tests.hs b/tests/app/Spec/Tests.hs index f4e13e86..d26f2a27 100644 --- a/tests/app/Spec/Tests.hs +++ b/tests/app/Spec/Tests.hs @@ -9,6 +9,7 @@ import Control.Concurrent.QSem import Control.Monad import Control.Monad.Catch import Control.Monad.IO.Class +import Data.Typeable import Control.Monad.Trans.Control (MonadBaseControl) import Options.Applicative hiding (action) import Test.Sandwich @@ -21,6 +22,7 @@ import TestLib.JupyterRunnerContext tests :: forall context. ( HasBaseContext context , HasCommandLineOptions context SpecialOptions + , Typeable context ) => SpecFree context IO () tests = introduceJupyterRunner $ diff --git a/tests/app/Spec/Tests/Haskell/DocumentHighlight.hs b/tests/app/Spec/Tests/Haskell/DocumentHighlight.hs index da3fcceb..478d89ec 100644 --- a/tests/app/Spec/Tests/Haskell/DocumentHighlight.hs +++ b/tests/app/Spec/Tests/Haskell/DocumentHighlight.hs @@ -13,7 +13,6 @@ import Language.LSP.Test hiding (message) import Spec.Tests.Haskell.Common import Test.Sandwich as Sandwich import TestLib.LSP -import TestLib.NixEnvironmentContext documentHighlightTests :: (LspContext context m) => SpecFree context m () @@ -48,7 +47,7 @@ documentHighlightCodeRegular = [__i|foo = "hello" ------------------------------------- -main :: IO () -main = runSandwichWithCommandLineArgs Sandwich.defaultOptions $ do - introduceNixEnvironment [kernelSpec "haskell-ghc92"] [] "Haskell" $ do - documentHighlightTests +-- main :: IO () +-- main = runSandwichWithCommandLineArgs Sandwich.defaultOptions $ do +-- introduceNixEnvironment [kernelSpec "haskell-ghc92"] [] "Haskell" $ do +-- documentHighlightTests diff --git a/tests/app/Spec/Tests/Rust/Changes.hs b/tests/app/Spec/Tests/Rust/Changes.hs index 41d8eccc..a66535e9 100644 --- a/tests/app/Spec/Tests/Rust/Changes.hs +++ b/tests/app/Spec/Tests/Rust/Changes.hs @@ -11,8 +11,8 @@ import qualified Language.LSP.Protocol.Lens as LSP import Language.LSP.Protocol.Types import Language.LSP.Test import Test.Sandwich as Sandwich +import Test.Sandwich.Contexts.Waits (waitUntil) import TestLib.LSP -import TestLib.Util changesTests :: (LspContext context m) => SpecFree context m () diff --git a/tests/app/Spec/Tests/Rust/Completion.hs b/tests/app/Spec/Tests/Rust/Completion.hs index 0107b262..ccd66938 100644 --- a/tests/app/Spec/Tests/Rust/Completion.hs +++ b/tests/app/Spec/Tests/Rust/Completion.hs @@ -9,9 +9,8 @@ import Language.LSP.Protocol.Types import Language.LSP.Test import Safe import Test.Sandwich as Sandwich - +import Test.Sandwich.Contexts.Waits (waitUntil) import TestLib.LSP -import TestLib.Util completionTests :: (LspContext context m) => SpecFree context m () diff --git a/tests/app/Spec/Tests/Rust/Hovers.hs b/tests/app/Spec/Tests/Rust/Hovers.hs index 94f23142..10311f75 100644 --- a/tests/app/Spec/Tests/Rust/Hovers.hs +++ b/tests/app/Spec/Tests/Rust/Hovers.hs @@ -3,11 +3,11 @@ module Spec.Tests.Rust.Hovers where import Control.Monad import Data.String.Interpolate -import Language.LSP.Test import Language.LSP.Protocol.Types +import Language.LSP.Test import Test.Sandwich as Sandwich +import Test.Sandwich.Contexts.Waits (waitUntil) import TestLib.LSP -import TestLib.Util hoverTests :: (LspContext context m) => SpecFree context m () diff --git a/tests/app/Spec/Tests/Spellchecker.hs b/tests/app/Spec/Tests/Spellchecker.hs index 95c09a85..acd89759 100644 --- a/tests/app/Spec/Tests/Spellchecker.hs +++ b/tests/app/Spec/Tests/Spellchecker.hs @@ -2,9 +2,14 @@ module Spec.Tests.Spellchecker (tests) where +import Control.Lens import Data.String.Interpolate +import Data.Text +import Language.LSP.Protocol.Lens hiding (actions, diagnostics) import Language.LSP.Protocol.Types +import Language.LSP.Test hiding (message) import Test.Sandwich as Sandwich +import Test.Sandwich.Contexts.Waits (waitUntil) import TestLib.LSP import TestLib.NixEnvironmentContext import TestLib.NixTypes @@ -16,12 +21,22 @@ otherPackages = [ ] tests :: TopSpec -tests = describe "Spellchecker" $ introduceNixEnvironment [] otherPackages "Python 3" $ do +tests = describe "Spellchecker" $ introduceNixEnvironment [] otherPackages "Spellchecker env" $ do testDiagnostics "spellchecker" "test.md" Nothing [i|\# This is mispelled|] $ \diagnostics -> do assertDiagnosticRanges diagnostics [(Range (Position 0 10) (Position 0 19), Nothing)] testDiagnostics "spellchecker" "test.md" Nothing [i|I've done a thing.|] $ \diagnostics -> do assertDiagnosticRanges diagnostics [] + it "has a code action to fix the misspelling" $ doNotebookSession "spellchecker" [i|\# This is mispelled|] $ \filename -> do + ident <- openDoc filename "spellchecker" + actions <- getCodeActions ident (Range (Position 0 0) (Position 0 19)) + waitUntil 60 $ do + fmap getTitle actions `shouldBe` ["foo"] + +getTitle :: (HasTitle a Text, HasTitle b Text) => (a |? b) -> Text +getTitle (InL x) = x ^. title +getTitle (InR x) = x ^. title + main :: IO () main = runSandwichWithCommandLineArgs Sandwich.defaultOptions tests diff --git a/tests/package.yaml b/tests/package.yaml index ae750338..c2d68c53 100644 --- a/tests/package.yaml +++ b/tests/package.yaml @@ -40,6 +40,7 @@ dependencies: - optparse-applicative - safe - sandwich +- sandwich-contexts - string-interpolate - text - vector @@ -67,7 +68,6 @@ library: - row-types - safe - temporary - - time - unliftio - unliftio-core diff --git a/tests/src/TestLib/Contexts/PostgresqlDatabase.hs b/tests/src/TestLib/Contexts/PostgresqlDatabase.hs index 4542c748..00fa21a9 100644 --- a/tests/src/TestLib/Contexts/PostgresqlDatabase.hs +++ b/tests/src/TestLib/Contexts/PostgresqlDatabase.hs @@ -22,6 +22,7 @@ import Control.Monad.Logger import Control.Monad.Reader import Control.Monad.Trans.Control (MonadBaseControl) import Control.Retry +import Data.Function import Data.List as L import Data.Map as M import Data.Maybe diff --git a/tests/src/TestLib/LSP.hs b/tests/src/TestLib/LSP.hs index e535d950..3174c6f0 100644 --- a/tests/src/TestLib/LSP.hs +++ b/tests/src/TestLib/LSP.hs @@ -36,9 +36,9 @@ import Language.LSP.Test import System.FilePath import System.IO.Temp (createTempDirectory) import Test.Sandwich as Sandwich +import Test.Sandwich.Contexts.Waits (waitUntil) import TestLib.Aeson import TestLib.Types -import TestLib.Util import UnliftIO.Directory import UnliftIO.Exception import UnliftIO.IO @@ -110,9 +110,9 @@ testDiagnostics'' :: ( LspContext ctx m ) => String -> Text -> FilePath -> Maybe Text -> Text -> [(FilePath, B.ByteString)] -> ([Diagnostic] -> ExampleT ctx m ()) -> SpecFree ctx m () testDiagnostics'' label name filename maybeLanguageId codeToTest extraFiles cb = it label $ do - withLspSession' id name filename codeToTest extraFiles $ do + withLspSession' (waitUntil 300.0) name filename codeToTest extraFiles $ do _ <- openDoc filename (fromMaybe name maybeLanguageId) - waitUntil 300.0 (waitForDiagnostics >>= lift . cb) + waitForDiagnostics >>= lift . cb itHasHoverSatisfying :: ( LspContext ctx m @@ -192,14 +192,15 @@ withLspSession' handleFn name filename codeToTest extraFiles session = do & set (workspace . _Just . didChangeWatchedFiles . _Just . dynamicRegistration) (Just False) & set (workspace . _Just . didChangeConfiguration . _Just . dynamicRegistration) (Just False) + -- TODO: pass home dir to session handleFn $ runSessionWithConfigCustomProcess modifyCp sessionConfig lspCommand caps dataDir session -assertDiagnosticRanges :: (HasCallStack, MonadThrow m) => [Diagnostic] -> [(Range, Maybe (Int32 |? Text))] -> ExampleT ctx m () +assertDiagnosticRanges :: (HasCallStack, MonadIO m) => [Diagnostic] -> [(Range, Maybe (Int32 |? Text))] -> ExampleT ctx m () assertDiagnosticRanges diagnostics desired = ranges `shouldBe` desired where ranges = fmap (\x -> (x ^. range, x ^. code)) diagnostics -assertDiagnosticRanges' :: (HasCallStack, MonadThrow m) => [Diagnostic] -> [(Range, Maybe (Int32 |? Text), Text)] -> m () +assertDiagnosticRanges' :: (HasCallStack, MonadIO m) => [Diagnostic] -> [(Range, Maybe (Int32 |? Text), Text)] -> m () assertDiagnosticRanges' diagnostics desired = ranges `shouldBe` desired where ranges = fmap (\x -> (x ^. range, x ^. code, x ^. LSP.message)) diagnostics diff --git a/tests/src/TestLib/TestBuilding.hs b/tests/src/TestLib/TestBuilding.hs index a13535cd..da8a3abd 100644 --- a/tests/src/TestLib/TestBuilding.hs +++ b/tests/src/TestLib/TestBuilding.hs @@ -4,7 +4,6 @@ module TestLib.TestBuilding where import Conduit as C import Control.Monad.Logger -import Control.Monad.Trans.Control (MonadBaseControl) import System.Exit import System.FilePath import Test.Sandwich @@ -13,10 +12,10 @@ import UnliftIO.Directory import UnliftIO.Process -testBuild :: (MonadIO m, MonadThrow m, MonadBaseControl IO m, MonadLogger m) => String -> m () +testBuild :: (MonadUnliftIO m, MonadLogger m) => String -> m () testBuild = testBuild' LevelDebug -testBuild' :: (MonadIO m, MonadThrow m, MonadBaseControl IO m, MonadLogger m) => LogLevel -> String -> m () +testBuild' :: (MonadUnliftIO m, MonadLogger m) => LogLevel -> String -> m () testBuild' logLevel expr = do rootDir <- findFirstParentMatching (\x -> doesPathExist (x ".git")) @@ -25,7 +24,7 @@ testBuild' logLevel expr = do } waitForProcess p >>= (`shouldBe` ExitSuccess) -testEval :: (MonadIO m, MonadThrow m, MonadBaseControl IO m, MonadLogger m) => String -> m () +testEval :: (MonadUnliftIO m, MonadLogger m) => String -> m () testEval expr = do rootDir <- findFirstParentMatching (\x -> doesPathExist (x ".git")) diff --git a/tests/src/TestLib/Util.hs b/tests/src/TestLib/Util.hs index a766f941..486c4a38 100644 --- a/tests/src/TestLib/Util.hs +++ b/tests/src/TestLib/Util.hs @@ -2,21 +2,13 @@ module TestLib.Util where -import Control.Monad.Catch (MonadMask, MonadThrow) import Control.Monad.IO.Unlift -import Control.Retry import Data.Aeson (Value) import Data.String.Interpolate import Data.Text as T -import Data.Time -import Data.Typeable -import GHC.Stack import System.FilePath -import System.Timeout (Timeout) import Test.Sandwich import UnliftIO.Directory -import UnliftIO.Exception -import UnliftIO.Timeout #if MIN_VERSION_aeson(2,0,0) import qualified Data.Aeson.Key as A @@ -27,10 +19,10 @@ import qualified Data.HashMap.Strict as HM #endif -findFirstParentMatching :: (MonadIO m, MonadThrow m) => (FilePath -> m Bool) -> m FilePath +findFirstParentMatching :: (MonadIO m) => (FilePath -> m Bool) -> m FilePath findFirstParentMatching cb = getCurrentDirectory >>= findFirstParentMatching' cb -findFirstParentMatching' :: (MonadIO m, MonadThrow m) => (FilePath -> m Bool) -> FilePath -> m FilePath +findFirstParentMatching' :: (MonadIO m) => (FilePath -> m Bool) -> FilePath -> m FilePath findFirstParentMatching' cb startingAt = cb startingAt >>= \case True -> return startingAt False -> case takeDirectory startingAt of @@ -52,40 +44,3 @@ aesonFromList xs = HM.fromList [(A.fromText k, v) | (k, v) <- xs] aesonFromList :: (Eq k, Hashable k) => [(Text, Value)] -> HM.HashMap A.Key v aesonFromList = HM.fromList #endif - --- waitUntil :: forall m a. (HasCallStack, MonadIO m, MonadMask m, MonadThrow m) => Double -> m a -> m a --- waitUntil timeInSeconds action = do --- let policy = limitRetriesByCumulativeDelay (round (timeInSeconds * 1_000_000.0)) $ capDelay 200_000 $ exponentialBackoff 1_000 --- recoverAll policy $ const action - -waitUntil :: forall m a. (HasCallStack, MonadIO m, MonadMask m, MonadThrow m, MonadUnliftIO m) => Double -> m a -> m a -waitUntil timeInSeconds action = do - startTime <- liftIO getCurrentTime - - recoveringDynamic policy [handleFailureReasonException startTime] $ \_status -> - rethrowTimeoutExceptionWithCallStack $ - timeout (round (timeInSeconds * 1_000_000)) action >>= \case - Nothing -> throwIO $ userError [i|Action timed out in waitUntil|] - Just x -> return x - - where - policy = capDelay 1_000_000 $ exponentialBackoff 1_000 - - handleFailureReasonException startTime _status = Handler $ \(_ :: SomeException) -> - retryUnlessTimedOut startTime - - retryUnlessTimedOut :: UTCTime -> m RetryAction - retryUnlessTimedOut startTime = do - now <- liftIO getCurrentTime - let thresh = secondsToNominalDiffTime (realToFrac timeInSeconds) - if | (diffUTCTime now startTime) > thresh -> return DontRetry - | otherwise -> return ConsultPolicy - - rethrowTimeoutExceptionWithCallStack :: (HasCallStack) => m a -> m a - rethrowTimeoutExceptionWithCallStack = handleSyncOrAsync $ \(e@(SomeException inner)) -> - if | Just (_ :: Timeout) <- fromExceptionUnwrap e -> do - throwIO $ userError "Timeout in waitUntil" - | Just (SyncExceptionWrapper (cast -> Just (SomeException (cast -> Just (SomeAsyncException (cast -> Just (_ :: Timeout))))))) <- cast inner -> do - throwIO $ userError "Timeout in waitUntil" - | otherwise -> do - throwIO e diff --git a/tests/stack.yaml b/tests/stack.yaml index 647e09bd..220c5ab9 100644 --- a/tests/stack.yaml +++ b/tests/stack.yaml @@ -1,5 +1,5 @@ -resolver: lts-21.21 +resolver: lts-22.15 nix: pure: false @@ -17,22 +17,24 @@ packages: extra-deps: - git: https://github.com/codedownio/lsp.git - commit: abe10b96fc28b1efa1f71d99ccb980a83602c81e + commit: cc4b50ce04d22895c92bdd384540a7d7b8531a4f subdirs: - lsp - lsp-types - lsp-test - git: https://github.com/codedownio/sandwich.git - commit: 557515bc9d2934e56d2995ffacb888941ee57716 + commit: 9f6769f6ec743bb98d07f9a89b90ebe9032f4d4c subdirs: - sandwich + - sandwich-contexts # Needed by newer sandwich -- brick-2.1.1 -- vty-6.1 -- vty-crossplatform-0.4.0.0 -- vty-unix-0.2.0.0 - vty-windows-0.2.0.0 - ex-pool-0.2.1@sha256:c8249338ced27bc4d6395ad9c3069eec394fb111813d6ec736814d095f7e6a24,1293 + +- crypton-connection-0.3.1@sha256:4d0958537197956b536ea91718b1749949757022532f50b8f683290056a19021,1581 + +- git: https://github.com/codedownio/minio-hs + commit: 768665c90321d118fdd3cde2c6ac6c01310d76a0 diff --git a/tests/stack.yaml.lock b/tests/stack.yaml.lock index aa54060a..6924f6a5 100644 --- a/tests/stack.yaml.lock +++ b/tests/stack.yaml.lock @@ -5,7 +5,7 @@ packages: - completed: - commit: abe10b96fc28b1efa1f71d99ccb980a83602c81e + commit: cc4b50ce04d22895c92bdd384540a7d7b8531a4f git: https://github.com/codedownio/lsp.git name: lsp pantry-tree: @@ -14,11 +14,11 @@ packages: subdir: lsp version: 2.0.0.0 original: - commit: abe10b96fc28b1efa1f71d99ccb980a83602c81e + commit: cc4b50ce04d22895c92bdd384540a7d7b8531a4f git: https://github.com/codedownio/lsp.git subdir: lsp - completed: - commit: abe10b96fc28b1efa1f71d99ccb980a83602c81e + commit: cc4b50ce04d22895c92bdd384540a7d7b8531a4f git: https://github.com/codedownio/lsp.git name: lsp-types pantry-tree: @@ -27,63 +27,48 @@ packages: subdir: lsp-types version: 2.0.0.1 original: - commit: abe10b96fc28b1efa1f71d99ccb980a83602c81e + commit: cc4b50ce04d22895c92bdd384540a7d7b8531a4f git: https://github.com/codedownio/lsp.git subdir: lsp-types - completed: - commit: abe10b96fc28b1efa1f71d99ccb980a83602c81e + commit: cc4b50ce04d22895c92bdd384540a7d7b8531a4f git: https://github.com/codedownio/lsp.git name: lsp-test pantry-tree: - sha256: d1d0590717bd79ab441570f7d7dd4e7becd1f712e2e9cfd1042f84fb779587df + sha256: d4da318a522097888a0ec7ccadfb8ca552150bae7812b0d8b29e69558fbbe686 size: 2225 subdir: lsp-test version: 0.15.0.0 original: - commit: abe10b96fc28b1efa1f71d99ccb980a83602c81e + commit: cc4b50ce04d22895c92bdd384540a7d7b8531a4f git: https://github.com/codedownio/lsp.git subdir: lsp-test - completed: - commit: 557515bc9d2934e56d2995ffacb888941ee57716 + commit: 9f6769f6ec743bb98d07f9a89b90ebe9032f4d4c git: https://github.com/codedownio/sandwich.git name: sandwich pantry-tree: - sha256: 99d3bc4ddcefea67e7a5f43ed947bc6047edb840d9a1a9ea9ecc544ce708e294 - size: 6020 + sha256: 0b691dbfa34654e0290ed64efe730d3b83a3fdd78355d8f3c45fd9ffff3d7e9c + size: 6096 subdir: sandwich - version: 0.2.1.0 + version: 0.2.2.0 original: - commit: 557515bc9d2934e56d2995ffacb888941ee57716 + commit: 9f6769f6ec743bb98d07f9a89b90ebe9032f4d4c git: https://github.com/codedownio/sandwich.git subdir: sandwich - completed: - hackage: brick-2.1.1@sha256:ff36d64f1027eac17a14a83de053067413accb58b79e5002dce2a79cb8a3dcb3,17385 - pantry-tree: - sha256: c70beaff3ad9126bc2a9a57649ef63becd534b7eb6b015092cb28437fe3f916d - size: 4671 - original: - hackage: brick-2.1.1 -- completed: - hackage: vty-6.1@sha256:524d124223c02373260ebc409ddd622fbe97cacd1ea0ee98476b5992bddbc4f3,3661 - pantry-tree: - sha256: 4ed3b229066617a0f3429b7b7dadc8e01d14111ac675801053cd35fbb6ee3f14 - size: 2104 - original: - hackage: vty-6.1 -- completed: - hackage: vty-crossplatform-0.4.0.0@sha256:50593f91ad16777d921138475a8d2784d538fd206addd30664c620278d6c8544,3172 - pantry-tree: - sha256: ff010cf0ab3f48c43432268a00113e051599285d6ed60cfada7f53e44dbe00f8 - size: 582 - original: - hackage: vty-crossplatform-0.4.0.0 -- completed: - hackage: vty-unix-0.2.0.0@sha256:2af3d0bdae3c4b7b7e567ee374efe32c7439fabdf9096465ce011a6c6736e9ae,2932 + commit: 9f6769f6ec743bb98d07f9a89b90ebe9032f4d4c + git: https://github.com/codedownio/sandwich.git + name: sandwich-contexts pantry-tree: - sha256: 0e3dd52406c263fd4b54d03123e71423d1ef6939fb8c179745486243c519fdf7 - size: 1926 + sha256: b0ff043dd5cd0ff4465843f8bacde757cc1e83daed57dd5c0f8907deea66fdac + size: 1711 + subdir: sandwich-contexts + version: 0.1.0.0 original: - hackage: vty-unix-0.2.0.0 + commit: 9f6769f6ec743bb98d07f9a89b90ebe9032f4d4c + git: https://github.com/codedownio/sandwich.git + subdir: sandwich-contexts - completed: hackage: vty-windows-0.2.0.0@sha256:91a11bab7bb79f8ee0d4a8166824ed855251cbac101eed3fdf607ad519a13557,2815 pantry-tree: @@ -98,9 +83,27 @@ packages: size: 253 original: hackage: ex-pool-0.2.1@sha256:c8249338ced27bc4d6395ad9c3069eec394fb111813d6ec736814d095f7e6a24,1293 +- completed: + hackage: crypton-connection-0.3.1@sha256:4d0958537197956b536ea91718b1749949757022532f50b8f683290056a19021,1581 + pantry-tree: + sha256: e35ac3a35611afab9fafac633d0c4e6328b9cce4c8262378671d6c5a739e7e70 + size: 394 + original: + hackage: crypton-connection-0.3.1@sha256:4d0958537197956b536ea91718b1749949757022532f50b8f683290056a19021,1581 +- completed: + commit: 768665c90321d118fdd3cde2c6ac6c01310d76a0 + git: https://github.com/codedownio/minio-hs + name: minio-hs + pantry-tree: + sha256: 63fecbf5146f8704eba62c12ba86494f7bc477d8d882e74846ea0d1dfce03a1a + size: 4744 + version: 1.7.0 + original: + commit: 768665c90321d118fdd3cde2c6ac6c01310d76a0 + git: https://github.com/codedownio/minio-hs snapshots: - completed: - sha256: 7d4b649cf368f9076d8aa049aa44efe58950971d105892734e9957b2a26a2186 - size: 640060 - url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/21/21.yaml - original: lts-21.21 + sha256: 5b002d57c51092aa58a8696ccf0993e74fa6ed2efd48e2bbca349e9c2f67c5ef + size: 713334 + url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/22/15.yaml + original: lts-22.15 diff --git a/tests/tests.cabal b/tests/tests.cabal index 3885869f..8bc115aa 100644 --- a/tests/tests.cabal +++ b/tests/tests.cabal @@ -79,10 +79,10 @@ library , row-types , safe , sandwich + , sandwich-contexts , string-interpolate , temporary , text - , time , unliftio , unliftio-core , vector @@ -156,6 +156,7 @@ executable tests-exe , row-types , safe , sandwich + , sandwich-contexts , string-interpolate , tests , text