Skip to content

Commit fae5089

Browse files
committed
Implement v2-outdated command for cabal-install
This commit updates the outdated command to the new v2 architecture: - Transform the old `outdated` command into a new v2-style command `v2-outdated` - Support three modes of operation: - Check for outdated dependencies in v1-style freeze file - Check for outdated dependencies in project context (cabal.project & cabal.project.freeze) - Check for outdated dependencies in local packages Since the `cabal outdated` command now supports the v2-architecture, you can request to run the `v2-outdated` command on any target. I also introduced the `resolveTargetsFromLocalPackages` which resolves which local packages targets refer to without having to run the solver. This will be useful for `cabal check` as well. A change in behaviour from before is that the package description is flattened, so all bounds will be warned about rather than those in conditional branches being ignored. Fixes #8283
1 parent 96ce5a8 commit fae5089

File tree

40 files changed

+1355
-291
lines changed

40 files changed

+1355
-291
lines changed

cabal-install-solver/src/Distribution/Solver/Types/ProjectConfigPath.hs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import qualified System.FilePath.Posix as Posix
3838
import qualified System.FilePath.Windows as Windows
3939
import qualified Data.List.NonEmpty as NE
4040
import Distribution.Solver.Modular.Version (VR)
41-
import Distribution.Pretty (prettyShow)
41+
import Distribution.Pretty (prettyShow, Pretty(..))
4242
import Distribution.Utils.String (trim)
4343
import Text.PrettyPrint
4444
import Distribution.Simple.Utils (ordNub)
@@ -58,6 +58,9 @@ import Distribution.System (OS(Windows), buildOS)
5858
newtype ProjectConfigPath = ProjectConfigPath (NonEmpty FilePath)
5959
deriving (Eq, Show, Generic)
6060

61+
instance Pretty ProjectConfigPath where
62+
pretty = docProjectConfigPath
63+
6164
-- | Sorts URIs after local file paths and longer file paths after shorter ones
6265
-- as measured by the number of path segments. If still equal, then sorting is
6366
-- lexical.

cabal-install/src/Distribution/Client/CmdBench.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ benchAction flags@NixStyleFlags{..} targetStrings globalFlags = do
132132
-- (as opposed to say build or haddock targets).
133133
targets <-
134134
either (reportTargetProblems verbosity) return $
135-
resolveTargets
135+
resolveTargetsFromSolver
136136
selectPackageTargets
137137
selectComponentTarget
138138
elaboratedPlan

cabal-install/src/Distribution/Client/CmdBuild.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ buildAction flags@NixStyleFlags{extraFlags = buildFlags, ..} targetStrings globa
157157
-- (as opposed to say repl or haddock targets).
158158
targets <-
159159
either (reportBuildTargetProblems verbosity) return $
160-
resolveTargets
160+
resolveTargetsFromSolver
161161
selectPackageTargets
162162
selectComponentTarget
163163
elaboratedPlan

cabal-install/src/Distribution/Client/CmdHaddock.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ haddockAction relFlags targetStrings globalFlags = do
177177
-- haddock targets
178178
targets <-
179179
either (reportBuildDocumentationTargetProblems verbosity) return $
180-
resolveTargets
180+
resolveTargetsFromSolver
181181
(selectPackageTargets haddockFlags)
182182
selectComponentTarget
183183
elaboratedPlan

cabal-install/src/Distribution/Client/CmdHaddockProject.hs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import Distribution.Client.ProjectOrchestration
2828
, ProjectBuildContext (..)
2929
, TargetSelector (..)
3030
, pruneInstallPlanToTargets
31-
, resolveTargets
31+
, resolveTargetsFromSolver
3232
, runProjectPreBuildPhase
3333
, selectComponentTargetBasic
3434
)
@@ -146,7 +146,7 @@ haddockProjectAction flags _extraArgs globalFlags = do
146146
-- (as opposed to say repl or haddock targets).
147147
targets <-
148148
either reportTargetProblems return $
149-
resolveTargets
149+
resolveTargetsFromSolver
150150
selectPackageTargets
151151
selectComponentTargetBasic
152152
elaboratedPlan

cabal-install/src/Distribution/Client/CmdInstall.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,7 @@ partitionToKnownTargetsAndHackagePackages
828828
-> IO (TargetsMap, [PackageName])
829829
partitionToKnownTargetsAndHackagePackages verbosity pkgDb elaboratedPlan targetSelectors = do
830830
let mTargets =
831-
resolveTargets
831+
resolveTargetsFromSolver
832832
selectPackageTargets
833833
selectComponentTarget
834834
elaboratedPlan
@@ -868,7 +868,7 @@ partitionToKnownTargetsAndHackagePackages verbosity pkgDb elaboratedPlan targetS
868868
-- removed (or we've given up).
869869
targets <-
870870
either (reportBuildTargetProblems verbosity) return $
871-
resolveTargets
871+
resolveTargetsFromSolver
872872
selectPackageTargets
873873
selectComponentTarget
874874
elaboratedPlan
@@ -888,7 +888,7 @@ constructProjectBuildContext verbosity baseCtx targetSelectors = do
888888
-- Interpret the targets on the command line as build targets
889889
targets <-
890890
either (reportBuildTargetProblems verbosity) return $
891-
resolveTargets
891+
resolveTargetsFromSolver
892892
selectPackageTargets
893893
selectComponentTarget
894894
elaboratedPlan

cabal-install/src/Distribution/Client/CmdListBin.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ listbinAction flags@NixStyleFlags{..} args globalFlags = do
106106
-- (as opposed to say repl or haddock targets).
107107
targets <-
108108
either (reportTargetProblems verbosity) return $
109-
resolveTargets
109+
resolveTargetsFromSolver
110110
selectPackageTargets
111111
selectComponentTarget
112112
elaboratedPlan

0 commit comments

Comments
 (0)