From b32ed67251bf9a3a43376011f9d47b1d99c1821f Mon Sep 17 00:00:00 2001 From: Lukasz Czajka Date: Thu, 7 Nov 2024 13:52:25 +0100 Subject: [PATCH 1/7] Don't write log messages to stdout --- src/Juvix/Data/Effect/Git/Process.hs | 6 +++--- src/Juvix/Data/Effect/Log.hs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Juvix/Data/Effect/Git/Process.hs b/src/Juvix/Data/Effect/Git/Process.hs index 1dba21c5df..eaa1c36048 100644 --- a/src/Juvix/Data/Effect/Git/Process.hs +++ b/src/Juvix/Data/Effect/Git/Process.hs @@ -63,20 +63,20 @@ gitHeadRef = gitNormalizeRef "HEAD" -- | Checkout the clone at a particular ref gitCheckout :: (Members '[TaggedLock, ProcessE, Error GitProcessError, Reader CloneEnv] r) => Text -> Sem r () -gitCheckout ref = withTaggedLockDir' (void (runGitCmdInDir ["checkout", ref])) +gitCheckout ref = withTaggedLockDir' (void (runGitCmdInDir ["checkout", "-q", ref])) -- | Fetch in the clone gitFetch :: (Members '[TaggedLock, ProcessE, Error GitProcessError, Reader CloneEnv, Internet] r) => Sem r () gitFetch = whenHasInternet gitFetchOnline gitFetchOnline :: (Members '[TaggedLock, Reader CloneEnv, Error GitProcessError, ProcessE, Online] r) => Sem r () -gitFetchOnline = withTaggedLockDir' (void (runGitCmdInDir ["fetch"])) +gitFetchOnline = withTaggedLockDir' (void (runGitCmdInDir ["fetch", "-q"])) gitCloneOnline :: (Members '[Log, Error GitProcessError, ProcessE, Online, Reader CloneEnv] r) => Text -> Sem r () gitCloneOnline url = do p <- asks (^. cloneEnvDir) log ("Cloning " <> url <> " to " <> pack (toFilePath p)) - void (runGitCmd ["clone", url, T.pack (toFilePath p)]) + void (runGitCmd ["clone", "-q", url, T.pack (toFilePath p)]) cloneGitRepo :: (Members '[Log, Files, ProcessE, Error GitProcessError, Reader CloneEnv, Internet] r) => Text -> Sem r () cloneGitRepo = whenHasInternet . gitCloneOnline diff --git a/src/Juvix/Data/Effect/Log.hs b/src/Juvix/Data/Effect/Log.hs index da97e25a50..90e2c0a8c6 100644 --- a/src/Juvix/Data/Effect/Log.hs +++ b/src/Juvix/Data/Effect/Log.hs @@ -12,7 +12,7 @@ runLogIO :: Sem (Log ': r) a -> Sem r a runLogIO sem = do - liftIO (hSetBuffering stdout LineBuffering) + liftIO (hSetBuffering stderr LineBuffering) interpret ( \case Log txt -> putStrLn txt From 22562fb89231e45512ccbef98d4c1dbd91f3f7e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Czajka?= <62751+lukaszcz@users.noreply.github.com> Date: Thu, 7 Nov 2024 20:00:57 +0100 Subject: [PATCH 2/7] Update Log.hs --- src/Juvix/Data/Effect/Log.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Juvix/Data/Effect/Log.hs b/src/Juvix/Data/Effect/Log.hs index 90e2c0a8c6..dfd8d2f409 100644 --- a/src/Juvix/Data/Effect/Log.hs +++ b/src/Juvix/Data/Effect/Log.hs @@ -15,7 +15,7 @@ runLogIO sem = do liftIO (hSetBuffering stderr LineBuffering) interpret ( \case - Log txt -> putStrLn txt + Log txt -> hPutStrLn stderr txt ) sem From fb9441bc487b8046403f5f800962b1921c2c3dcc Mon Sep 17 00:00:00 2001 From: Lukasz Czajka Date: Mon, 11 Nov 2024 12:33:23 +0100 Subject: [PATCH 3/7] remove -q in git invocation --- src/Juvix/Data/Effect/Git/Process.hs | 6 +++--- .../Commands/compile-dependencies-package-juvix.smoke.yaml | 6 ++++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Juvix/Data/Effect/Git/Process.hs b/src/Juvix/Data/Effect/Git/Process.hs index eaa1c36048..1dba21c5df 100644 --- a/src/Juvix/Data/Effect/Git/Process.hs +++ b/src/Juvix/Data/Effect/Git/Process.hs @@ -63,20 +63,20 @@ gitHeadRef = gitNormalizeRef "HEAD" -- | Checkout the clone at a particular ref gitCheckout :: (Members '[TaggedLock, ProcessE, Error GitProcessError, Reader CloneEnv] r) => Text -> Sem r () -gitCheckout ref = withTaggedLockDir' (void (runGitCmdInDir ["checkout", "-q", ref])) +gitCheckout ref = withTaggedLockDir' (void (runGitCmdInDir ["checkout", ref])) -- | Fetch in the clone gitFetch :: (Members '[TaggedLock, ProcessE, Error GitProcessError, Reader CloneEnv, Internet] r) => Sem r () gitFetch = whenHasInternet gitFetchOnline gitFetchOnline :: (Members '[TaggedLock, Reader CloneEnv, Error GitProcessError, ProcessE, Online] r) => Sem r () -gitFetchOnline = withTaggedLockDir' (void (runGitCmdInDir ["fetch", "-q"])) +gitFetchOnline = withTaggedLockDir' (void (runGitCmdInDir ["fetch"])) gitCloneOnline :: (Members '[Log, Error GitProcessError, ProcessE, Online, Reader CloneEnv] r) => Text -> Sem r () gitCloneOnline url = do p <- asks (^. cloneEnvDir) log ("Cloning " <> url <> " to " <> pack (toFilePath p)) - void (runGitCmd ["clone", "-q", url, T.pack (toFilePath p)]) + void (runGitCmd ["clone", url, T.pack (toFilePath p)]) cloneGitRepo :: (Members '[Log, Files, ProcessE, Error GitProcessError, Reader CloneEnv, Internet] r) => Text -> Sem r () cloneGitRepo = whenHasInternet . gitCloneOnline diff --git a/tests/smoke/Commands/compile-dependencies-package-juvix.smoke.yaml b/tests/smoke/Commands/compile-dependencies-package-juvix.smoke.yaml index a29f0a8e7d..08538244b9 100644 --- a/tests/smoke/Commands/compile-dependencies-package-juvix.smoke.yaml +++ b/tests/smoke/Commands/compile-dependencies-package-juvix.smoke.yaml @@ -63,6 +63,9 @@ tests: ./HelloWorld stdout: contains: Hello from dep + stderr: + matches: + regex: .* exit-status: 0 - name: git-dependencies-success-then-offline @@ -131,6 +134,9 @@ tests: ./HelloWorld stdout: contains: Hello from dep + stderr: + matches: + regex: .* exit-status: 0 - name: git-dependencies-fetch-new-commits From e7416d722ac076ca7d0221e4cc1e41b03df62575 Mon Sep 17 00:00:00 2001 From: Lukasz Czajka Date: Mon, 11 Nov 2024 13:15:23 +0100 Subject: [PATCH 4/7] fix smoke tests --- ...pile-dependencies-package-juvix.smoke.yaml | 30 +++++++++++----- .../Commands/compile-dependencies.smoke.yaml | 34 +++++++++++++++---- tests/smoke/Commands/typecheck.smoke.yaml | 6 ++-- .../Commands/version-help-doctor.smoke.yaml | 10 +++--- 4 files changed, 58 insertions(+), 22 deletions(-) diff --git a/tests/smoke/Commands/compile-dependencies-package-juvix.smoke.yaml b/tests/smoke/Commands/compile-dependencies-package-juvix.smoke.yaml index 08538244b9..fea51666b2 100644 --- a/tests/smoke/Commands/compile-dependencies-package-juvix.smoke.yaml +++ b/tests/smoke/Commands/compile-dependencies-package-juvix.smoke.yaml @@ -64,8 +64,7 @@ tests: stdout: contains: Hello from dep stderr: - matches: - regex: .* + contains: "" exit-status: 0 - name: git-dependencies-success-then-offline @@ -135,8 +134,7 @@ tests: stdout: contains: Hello from dep stderr: - matches: - regex: .* + contains: "" exit-status: 0 - name: git-dependencies-fetch-new-commits @@ -234,6 +232,8 @@ tests: ./HelloWorld stdout: contains: This is from the second commit + stderr: + contains: "" exit-status: 0 - name: git-dependencies-lockfile @@ -380,6 +380,8 @@ tests: ./HelloWorld stdout: contains: "Hello from dep1\nHello from dep2" + stderr: + contains: "" exit-status: 0 - name: git-dependencies-uses-generated-lockfile @@ -460,6 +462,8 @@ tests: ./HelloWorld stdout: contains: Hello from dep + stderr: + contains: "" exit-status: 0 - name: git-dependencies-uses-generated-lockfile-update @@ -558,6 +562,8 @@ tests: ./HelloWorld stdout: contains: Hello from commit 2 + stderr: + contains: "" exit-status: 0 - name: git-dependencies-nested-lockfile @@ -676,6 +682,8 @@ tests: ./HelloWorld stdout: contains: "Hello from dep1\nHello from dep2" + stderr: + contains: "" exit-status: 0 - name: git-dependencies-update-ref-offline @@ -776,6 +784,8 @@ tests: ./HelloWorld stdout: contains: This is from the second commit + stderr: + contains: "" exit-status: 0 - name: git-dependencies-invalid-ref @@ -832,9 +842,10 @@ tests: # compile project juvix --log-level error compile native HelloWorld.juvix + stdout: + contains: "" stderr: contains: invalid-ref - stdout: contains: Cloning exit-status: 1 @@ -877,9 +888,10 @@ tests: # compile project juvix --log-level error compile native HelloWorld.juvix + stdout: + contains: "" stderr: contains: Error - stdout: contains: Cloning exit-status: 1 @@ -998,9 +1010,10 @@ tests: # compile project juvix --log-level error compile native HelloWorld.juvix + stdout: + contains: "" stderr: contains: juvix clean - stdout: contains: Cloning exit-status: 1 @@ -1112,7 +1125,8 @@ tests: # compile project juvix --log-level error compile native HelloWorld.juvix - stderr: "" stdout: + contains: "" + stderr: contains: Cloning exit-status: 0 diff --git a/tests/smoke/Commands/compile-dependencies.smoke.yaml b/tests/smoke/Commands/compile-dependencies.smoke.yaml index 82a761df33..40e0e3daab 100644 --- a/tests/smoke/Commands/compile-dependencies.smoke.yaml +++ b/tests/smoke/Commands/compile-dependencies.smoke.yaml @@ -61,6 +61,8 @@ tests: ./HelloWorld stdout: contains: Hello from dep + stderr: + contains: "" exit-status: 0 - name: git-dependencies-success-then-offline @@ -127,6 +129,8 @@ tests: ./HelloWorld stdout: contains: Hello from dep + stderr: + contains: "" exit-status: 0 - name: git-dependencies-fetch-new-commits @@ -219,6 +223,8 @@ tests: ./HelloWorld stdout: contains: This is from the second commit + stderr: + contains: "" exit-status: 0 - name: git-dependencies-lockfile @@ -359,6 +365,8 @@ tests: ./HelloWorld stdout: contains: "Hello from dep1\nHello from dep2" + stderr: + contains: "" exit-status: 0 - name: git-dependencies-uses-generated-lockfile @@ -437,6 +445,8 @@ tests: ./HelloWorld stdout: contains: Hello from dep + stderr: + contains: "" exit-status: 0 - name: git-dependencies-uses-generated-lockfile-update @@ -530,6 +540,8 @@ tests: ./HelloWorld stdout: contains: Hello from commit 2 + stderr: + contains: "" exit-status: 0 - name: git-dependencies-nested-lockfile @@ -641,6 +653,8 @@ tests: ./HelloWorld stdout: contains: "Hello from dep1\nHello from dep2" + stderr: + contains: "" exit-status: 0 - name: git-dependencies-update-ref-offline @@ -736,6 +750,8 @@ tests: ./HelloWorld stdout: contains: This is from the second commit + stderr: + contains: "" exit-status: 0 - name: git-dependencies-invalid-ref @@ -790,9 +806,10 @@ tests: # compile project juvix --log-level error compile native HelloWorld.juvix + stdout: + contains: "" stderr: contains: invalid-ref - stdout: contains: Cloning exit-status: 1 @@ -833,9 +850,10 @@ tests: # compile project juvix --log-level error compile native HelloWorld.juvix + stdout: + contains: "" stderr: contains: Error - stdout: contains: Cloning exit-status: 1 @@ -876,9 +894,10 @@ tests: # compile project juvix --log-level error --offline compile native HelloWorld.juvix + stdout: + contains: "" stderr: contains: Failed to obtain remote dependencies - stdout: matches: # compile should not attempt to clone the dependency regex: |- @@ -950,9 +969,10 @@ tests: # compile project juvix --log-level error compile native HelloWorld.juvix + stdout: + contains: "" stderr: contains: juvix clean - stdout: contains: Cloning exit-status: 1 @@ -1077,7 +1097,8 @@ tests: juvix --log-level error compile native HelloWorld.juvix ./HelloWorld - stderr: "" + stderr: + contains: "" stdout: matches: regex: "Hello from dep\n(.*?)Hello from commit2" @@ -1145,7 +1166,8 @@ tests: # compile project juvix --log-level error compile native HelloWorld.juvix - stderr: "" stdout: + contains: "" + stderr: contains: Cloning exit-status: 0 diff --git a/tests/smoke/Commands/typecheck.smoke.yaml b/tests/smoke/Commands/typecheck.smoke.yaml index e7830e1fa5..cf5da73515 100644 --- a/tests/smoke/Commands/typecheck.smoke.yaml +++ b/tests/smoke/Commands/typecheck.smoke.yaml @@ -6,7 +6,7 @@ tests: - juvix - typecheck stderr: - equals: "Well done! It type checks\n" + contains: "Well done! It type checks\n" exit-status: 0 - name: flag-help-shows-juvix-file-for-autocompletion @@ -25,7 +25,7 @@ tests: args: - positive/Internal/Simple.juvix stderr: - equals: "Well done! It type checks\n" + contains: "Well done! It type checks\n" exit-status: 0 - name: flag-only-errors @@ -82,7 +82,7 @@ tests: echo 'module foo;' > foo.juvix juvix typecheck foo.juvix stderr: - equals: "Well done! It type checks\n" + contains: "Well done! It type checks\n" exit-status: 0 - name: typecheck-package-description diff --git a/tests/smoke/Commands/version-help-doctor.smoke.yaml b/tests/smoke/Commands/version-help-doctor.smoke.yaml index 5b3d7926ba..4b5be6268f 100644 --- a/tests/smoke/Commands/version-help-doctor.smoke.yaml +++ b/tests/smoke/Commands/version-help-doctor.smoke.yaml @@ -19,7 +19,7 @@ tests: regex: |- ^(\d+)((\.{1}\d+)*)(\.{0})$ - - name: cli-flag-help + - name: cli-flag-help command: - juvix - --help @@ -35,7 +35,7 @@ tests: - doctor - --offline exit-status: 0 - stdout: | + stderr: | > Checking for clang... > Checking clang version... > Checking for wasm-ld... @@ -52,7 +52,7 @@ tests: unset JUVIX_LLVM_DIST_PATH juvix doctor --verbose --offline exit-status: 0 - stdout: + stderr: matches: regex: |- Found clang(.*?)using system PATH @@ -66,7 +66,7 @@ tests: export JUVIX_LLVM_DIST_PATH=${CLANG_PATH%$'/bin/clang'} juvix doctor --verbose --offline exit-status: 0 - stdout: + stderr: matches: regex: |- Found clang(.*?)using JUVIX_LLVM_DIST_PATH @@ -79,7 +79,7 @@ tests: export JUVIX_LLVM_DIST_PATH=/tmp juvix doctor --verbose --offline exit-status: 0 - stdout: + stderr: matches: regex: |- Found clang(.*?)using system PATH From b9b290fabb2337544f8e1899e59d54a90de08239 Mon Sep 17 00:00:00 2001 From: Lukasz Czajka Date: Mon, 11 Nov 2024 13:32:39 +0100 Subject: [PATCH 5/7] fix pre-commit --- .pre-commit-config.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 028e521b9d..76638b31a8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,6 +8,7 @@ repos: rev: v4.5.0 hooks: - id: check-yaml + args: ["--disable", "duplicate-keys"] - id: check-added-large-files - id: check-case-conflict - id: check-merge-conflict From eececc999f32b5042e8ab923930ba03bba6cf005 Mon Sep 17 00:00:00 2001 From: Lukasz Czajka Date: Mon, 11 Nov 2024 13:36:14 +0100 Subject: [PATCH 6/7] wip --- .pre-commit-config.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 76638b31a8..028e521b9d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,7 +8,6 @@ repos: rev: v4.5.0 hooks: - id: check-yaml - args: ["--disable", "duplicate-keys"] - id: check-added-large-files - id: check-case-conflict - id: check-merge-conflict From e68aa01eb3cd6f74240f7830cc59e747bd1c2352 Mon Sep 17 00:00:00 2001 From: Lukasz Czajka Date: Mon, 11 Nov 2024 13:38:08 +0100 Subject: [PATCH 7/7] fix pre-commit --- .../Commands/compile-dependencies-package-juvix.smoke.yaml | 3 --- tests/smoke/Commands/compile-dependencies.smoke.yaml | 3 --- 2 files changed, 6 deletions(-) diff --git a/tests/smoke/Commands/compile-dependencies-package-juvix.smoke.yaml b/tests/smoke/Commands/compile-dependencies-package-juvix.smoke.yaml index fea51666b2..f5c726762b 100644 --- a/tests/smoke/Commands/compile-dependencies-package-juvix.smoke.yaml +++ b/tests/smoke/Commands/compile-dependencies-package-juvix.smoke.yaml @@ -846,7 +846,6 @@ tests: contains: "" stderr: contains: invalid-ref - contains: Cloning exit-status: 1 - name: git-dependencies-invalid-url @@ -892,7 +891,6 @@ tests: contains: "" stderr: contains: Error - contains: Cloning exit-status: 1 - name: git-dependencies-offline @@ -1014,7 +1012,6 @@ tests: contains: "" stderr: contains: juvix clean - contains: Cloning exit-status: 1 - name: git-dependencies-duplicate-names diff --git a/tests/smoke/Commands/compile-dependencies.smoke.yaml b/tests/smoke/Commands/compile-dependencies.smoke.yaml index 40e0e3daab..c4ef3c0526 100644 --- a/tests/smoke/Commands/compile-dependencies.smoke.yaml +++ b/tests/smoke/Commands/compile-dependencies.smoke.yaml @@ -810,7 +810,6 @@ tests: contains: "" stderr: contains: invalid-ref - contains: Cloning exit-status: 1 - name: git-dependencies-invalid-url @@ -854,7 +853,6 @@ tests: contains: "" stderr: contains: Error - contains: Cloning exit-status: 1 - name: git-dependencies-offline @@ -973,7 +971,6 @@ tests: contains: "" stderr: contains: juvix clean - contains: Cloning exit-status: 1 - name: git-dependencies-duplicate-names