packages feed

cabal-hoogle 3.10.0.0 → 3.16.0.0

raw patch · 4 files changed

+123/−38 lines, 4 filesdep ~Cabaldep ~Cabal-syntaxdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: Cabal, Cabal-syntax, base, cabal-install, extra, text, typed-process

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,5 +1,14 @@ # Revision history for cabal-hoogle +## 3.16.0.0 -- 2026-01-09++* Support Cabal 3.16++## 3.14.0.0 -- 2026-01-02++* Support Cabal 3.14+* Drop GHC 9.2+ ## 3.10.0.0 -- 2024-02-25  * Switch to Cabal 3.10
cabal-hoogle.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               cabal-hoogle-version:            3.10.0.0+version:            3.16.0.0 synopsis:           generate hoogle database for cabal project and dependencies description:   Please see the README on GitHub at <https://github.com/kokobd/cabal-hoogle>@@ -23,24 +23,24 @@  library   build-depends:-    , base                  >=4.14     && <5-    , Cabal                 ^>=3.10-    , cabal-install         ^>=3.10-    , Cabal-syntax          ^>=3.10-    , co-log-core           >=0.2      && <0.4-    , containers            ^>=0.6.2.1-    , directory             ^>=1.3.6-    , extra                 ^>=1.7.10-    , filepath              ^>=1.4.2+    , base                  >=4.17    && <4.23+    , Cabal                 >=3.10    && <3.17+    , cabal-install         >=3.10    && <3.17+    , Cabal-syntax          >=3.10    && <3.17+    , co-log-core           >=0.2     && <0.4+    , containers            >=0.6     && <0.8+    , directory             ^>=1.3+    , extra                 >=1.7     && <1.9+    , filepath              >=1.4.2   && <1.6     , hoogle                ^>=5.0.18-    , lens                  >=5        && <6-    , optparse-applicative  >=0.16     && <1-    , regex-tdfa            ^>=1.3.1-    , string-interpolate    ^>=0.3.1.2-    , text                  ^>=1.2.4   || ^>=2.0-    , time                  >=1.10     && <2-    , transformers          ^>=0.5.6   || ^>=0.6-    , typed-process         ^>=0.2.10+    , lens                  >=5       && <6+    , optparse-applicative  >=0.16    && <1+    , regex-tdfa            ^>=1.3+    , string-interpolate    ^>=0.3+    , text                  ^>=1.2.4  || ^>=2.0  || ^>=2.1+    , time                  >=1.10    && <2+    , transformers          ^>=0.5.6  || ^>=0.6+    , typed-process         >=0.2.10  && <0.2.14    default-language:   Haskell2010   ghc-options:        -Wall@@ -77,8 +77,8 @@   build-depends:     , base     , cabal-hoogle-    , silently      ^>=1.2.5.2-    , tasty         ^>=1.4.2.3-    , tasty-hunit   ^>=0.10.0.3+    , silently      ^>=1.2.5+    , tasty         >=1.4    && <1.6+    , tasty-hunit   ^>=0.10    build-tool-depends: tasty-discover:tasty-discover
src/Hoogle/Cabal/Command/Common.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+{-# LANGUAGE RankNTypes #-} {-# LANGUAGE RecordWildCards #-}  module Hoogle.Cabal.Command.Common@@ -15,14 +17,21 @@ import Distribution.Client.DistDirLayout (distDirectory) import Distribution.Client.NixStyleOptions import Distribution.Client.ProjectOrchestration+import Distribution.Client.ProjectPlanning.Types (ElaboratedInstallPlan) import Distribution.Client.ScriptUtils import Distribution.Client.Setup (GlobalFlags, InstallFlags (..), defaultGlobalFlags)+import Distribution.Client.TargetProblem (TargetProblem)+import Distribution.Client.Types.SourcePackageDb (SourcePackageDb) import Distribution.Simple (OptimisationLevel (NoOptimisation))-import Distribution.Simple.Setup (ConfigFlags (..), Flag (..), HaddockFlags (..))+import Distribution.Simple.Setup (ConfigFlags (..), HaddockFlags (..), toFlag) import Distribution.Simple.Utils (die') import qualified Distribution.Verbosity as Verbosity import Options.Applicative import System.FilePath ((</>))+# if MIN_VERSION_Cabal(3,14,0)+import Distribution.Simple.Setup (CommonSetupFlags (..))+import Distribution.Utils.Path (makeSymbolicPath)+#endif  data GlobalOptions = GlobalOptions   { _globalOptions_builddir :: FilePath,@@ -61,7 +70,7 @@   [String] ->   IO Context readContext GlobalOptions {..} targetStrings =-  withContextAndSelectors RejectNoTargets Nothing flags targetStrings' globalFlags HaddockCommand $ \targetCtx ctx targetSelectors -> do+  withContextAndSelectors' RejectNoTargets Nothing flags targetStrings' globalFlags HaddockCommand $ \targetCtx ctx targetSelectors -> do     let targetAction = TargetActionBuild      baseCtx <- case targetCtx of@@ -69,13 +78,12 @@       GlobalContext -> return ctx       ScriptContext path exemeta -> updateContextAndWriteProjectFile ctx path exemeta -    let verbosity = Verbosity.normal-    buildCtx <- runProjectPreBuildPhase verbosity baseCtx $ \elaboratedPlan -> do+    buildCtx <- runProjectPreBuildPhase defaultVerbosity baseCtx $ \elaboratedPlan -> do       -- Interpret the targets on the command line as build targets       -- (as opposed to say repl or haddock targets).       targets <--        either (reportTargetProblems verbosity "build") return $-          resolveTargets+        either (reportTargetProblems defaultVerbosity "build") return $+          resolveTargets'             selectPackageTargets             selectComponentTarget             elaboratedPlan@@ -90,7 +98,7 @@       elaboratedPlan'' <-         if buildSettingOnlyDeps (buildSettings baseCtx)           then-            either (die' verbosity . renderCannotPruneDependencies) return $+            either (die' defaultVerbosity . renderCannotPruneDependencies) return $               pruneInstallPlanToDependencies                 (Map.keysSet targets)                 elaboratedPlan'@@ -109,23 +117,84 @@     defaultFlags = defaultNixStyleFlags defaultBuildFlags     flags =       defaultFlags-        { configFlags =-            (configFlags defaultFlags)-              { configOptimization = Flag NoOptimisation,-                configDistPref = Flag _globalOptions_builddir-              },+        { configFlags = setBuildDir _globalOptions_builddir . disableOptimization $ configFlags defaultFlags,           haddockFlags =             (haddockFlags defaultFlags)-              { haddockHoogle = Flag True,-                haddockHtml = Flag True,-                haddockLinkedSource = Flag True,-                haddockQuickJump = Flag True+              { haddockHoogle = toFlag True,+                haddockHtml = toFlag True,+                haddockLinkedSource = toFlag True,+                haddockQuickJump = toFlag True               },           installFlags =             (installFlags defaultFlags)-              { installDocumentation = Flag True+              { installDocumentation = toFlag True               }         }     targetStrings' :: [String]     targetStrings' = if null targetStrings then ["all"] else targetStrings     globalFlags = defaultGlobalFlags++disableOptimization :: ConfigFlags -> ConfigFlags+disableOptimization flags = flags {configOptimization = toFlag NoOptimisation}++setBuildDir :: FilePath -> ConfigFlags -> ConfigFlags+#if MIN_VERSION_Cabal(3,14,0)+setBuildDir buildDir flags =+  flags+    { configCommonFlags =+        (configCommonFlags flags)+          { setupDistPref = toFlag $ makeSymbolicPath buildDir+          }+    }+#else+setBuildDir buildDir flags =+  flags { configDistPref = toFlag buildDir }+#endif++withContextAndSelectors' ::+  AcceptNoTargets ->+  Maybe ComponentKind ->+  NixStyleFlags a ->+  [String] ->+  GlobalFlags ->+  CurrentCommand ->+  ( TargetContext ->+    ProjectBaseContext ->+    [TargetSelector] ->+    IO b+  ) ->+  IO b+#if MIN_VERSION_Cabal(3,16,0)+withContextAndSelectors' = withContextAndSelectors defaultVerbosity+#else+withContextAndSelectors' = withContextAndSelectors+#endif++resolveTargets' ::+  ( forall k.+    TargetSelector ->+    [AvailableTarget k] ->+    Either+      (TargetProblem err)+      [k]+  ) ->+  ( forall k.+    SubComponentTarget ->+    AvailableTarget k ->+    Either (TargetProblem err) k+  ) ->+  ElaboratedInstallPlan ->+  Maybe SourcePackageDb ->+  [TargetSelector] ->+  Either+    [TargetProblem err]+    TargetsMap+#if MIN_VERSION_Cabal(3,16,0)+-- resolveTargetsFromSolver is a drop-in replacement of resolveTargets. See https://github.com/haskell/cabal/commit/0f1f67cb97dca952123f262e7670a200a783acf4+resolveTargets' = resolveTargetsFromSolver+#else+resolveTargets' = resolveTargets+#endif++defaultVerbosity :: Verbosity.Verbosity+defaultVerbosity = Verbosity.normal
src/Hoogle/Cabal/Command/Generate.hs view
@@ -40,6 +40,9 @@ import Distribution.Simple.Configure (ConfigStateFileError, tryGetPersistBuildConfig) import Distribution.Simple.PackageIndex (allPackagesByName) import Distribution.Types.LocalBuildInfo (LocalBuildInfo)+#if MIN_VERSION_Cabal(3,14,0)+import Distribution.Utils.Path (makeSymbolicPath)+#endif import qualified Distribution.Types.LocalBuildInfo as LocalBuildInfo import qualified Distribution.Types.PackageDescription as PackageDescription import qualified Distribution.Types.PackageId as PackageId@@ -126,7 +129,11 @@ symlinkLocalPackages :: Logger Log -> [FilePath] -> FilePath -> IO [(String, LocalBuildInfo)] symlinkLocalPackages logger pkgsPath destDir = do   fmap catMaybes . forM pkgsPath $ \pkgPath -> runMaybeT $ do+#if MIN_VERSION_Cabal(3,14,0)+    lbiEither <- liftIO $ tryGetPersistBuildConfig Nothing (makeSymbolicPath pkgPath)+#else     lbiEither <- liftIO $ tryGetPersistBuildConfig pkgPath+#endif     lbi <- MaybeT $ case lbiEither of       Left configStateFileErr -> do         logWith logger Error $ LogCanNotReadSetupConfig pkgPath configStateFileErr