From 5129a94bd7c7fed466117d87e113e0b12b28391d Mon Sep 17 00:00:00 2001 From: Thomas Miedema Date: Wed, 26 Feb 2025 22:54:59 +0100 Subject: [PATCH] ;cln: unittest.hs: remove bothersome PackageImports (#2337) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When running `cd hledger-lib && ghci test/unittest.hs`, ghci complains with: ``` test/unittest.hs:7:1: error: Could not find module ‘Hledger’ It is not a module in the current program, or in any known package. | 7 | import "hledger-lib" Hledger (tests_Hledger) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Failed, no modules loaded. ``` This commit removes the "hledger-lib" package-qualified import, such that above ghci command works as expected. However, there is a comment in hledger-lib/test/unittest.hs that says: > package-qualified import to avoid cabal missing-home-modules warning > (and double-building ?) The missing-home-modules warning and the double building can indeed be reproduced by running (after removing the "hledger-lib" package-qualified import): `cd hledger-lib && cabal build unittest`. It will first build `hledger-lib`, then show a warning about missing-home-modules, and then build `hledger-lib` again. After comparing the unittest sections of hledger.cabal and hledger-lib.cabal, the solution turned out to be to remove `./` from hs-source-dirs for unittest. Don't ask me why though! Overall it's a nice cleanup. --- hledger-lib/hledger-lib.cabal | 2 -- hledger-lib/package.yaml | 8 ++++---- hledger-lib/test/unittest.hs | 4 +--- hledger/test/unittest.hs | 3 --- 4 files changed, 5 insertions(+), 12 deletions(-) diff --git a/hledger-lib/hledger-lib.cabal b/hledger-lib/hledger-lib.cabal index 4e5f69137..7aa5c9ae7 100644 --- a/hledger-lib/hledger-lib.cabal +++ b/hledger-lib/hledger-lib.cabal @@ -176,7 +176,6 @@ test-suite doctest type: exitcode-stdio-1.0 main-is: doctests.hs hs-source-dirs: - ./ test ghc-options: -Wall -Wno-incomplete-uni-patterns -Wno-missing-signatures -Wno-orphans -Wno-type-defaults -Wno-unused-do-bind build-depends: @@ -239,7 +238,6 @@ test-suite unittest type: exitcode-stdio-1.0 main-is: unittest.hs hs-source-dirs: - ./ test ghc-options: -Wall -Wno-incomplete-uni-patterns -Wno-missing-signatures -Wno-orphans -Wno-type-defaults -Wno-unused-do-bind build-depends: diff --git a/hledger-lib/package.yaml b/hledger-lib/package.yaml index cdefacfe5..2884be29e 100644 --- a/hledger-lib/package.yaml +++ b/hledger-lib/package.yaml @@ -115,10 +115,6 @@ when: # dependencies: # - ghc-debug-stub >=0.6.0.0 && <0.7 -source-dirs: -#- other/ledger-parse -- . - library: exposed-modules: - Hledger @@ -186,6 +182,10 @@ library: - Text.WideString # other-modules: # - Ledger.Parser.Text + source-dirs: + #- other/ledger-parse + - . + # "cabal test hledger-lib" currently fails, see doctest suite below tests: diff --git a/hledger-lib/test/unittest.hs b/hledger-lib/test/unittest.hs index c47857d85..e5c53f625 100644 --- a/hledger-lib/test/unittest.hs +++ b/hledger-lib/test/unittest.hs @@ -2,9 +2,7 @@ Run the hledger-lib package's unit tests using the tasty test runner. -} --- package-qualified import to avoid cabal missing-home-modules warning (and double-building ?) -{-# LANGUAGE PackageImports #-} -import "hledger-lib" Hledger (tests_Hledger) +import Hledger (tests_Hledger) import System.Environment (setEnv) import Test.Tasty (defaultMain) diff --git a/hledger/test/unittest.hs b/hledger/test/unittest.hs index af9a77c6a..fbb0a880e 100644 --- a/hledger/test/unittest.hs +++ b/hledger/test/unittest.hs @@ -3,9 +3,6 @@ Run the hledger package's unit tests using the tasty test runner (by running the test command limited to Hledger.Cli tests). -} --- cabal missing-home-modules workaround from hledger-lib, seems not needed here --- {-# LANGUAGE PackageImports #-} --- import "hledger" Hledger.Cli (tests_Hledger_Cli) import Hledger.Cli (tests_Hledger_Cli) import System.Environment (setEnv) import Test.Tasty (defaultMain)