Skip to content

Commit

Permalink
Merge pull request #6103 from commercialhaskell/fix2407-4
Browse files Browse the repository at this point in the history
Re #2407 Move Project out of Stack.Types.Config
  • Loading branch information
mpilgrem authored Apr 19, 2023
2 parents 2d3c9d0 + e99aa3d commit 5ddd9e8
Show file tree
Hide file tree
Showing 34 changed files with 413 additions and 383 deletions.
4 changes: 4 additions & 0 deletions package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -274,12 +274,14 @@ library:
- Stack.Types.Config.Build
- Stack.Types.Config.Exception
- Stack.Types.ConfigMonoid
- Stack.Types.Curator
- Stack.Types.Docker
- Stack.Types.DockerEntrypoint
- Stack.Types.DownloadInfo
- Stack.Types.DumpLogs
- Stack.Types.DumpPackage
- Stack.Types.EnvConfig
- Stack.Types.EnvSettings
- Stack.Types.GHCDownloadInfo
- Stack.Types.GHCVariant
- Stack.Types.GhcOptionKey
Expand All @@ -293,6 +295,8 @@ library:
- Stack.Types.Package
- Stack.Types.PackageName
- Stack.Types.Platform
- Stack.Types.Project
- Stack.Types.ProjectConfig
- Stack.Types.PvpBounds
- Stack.Types.Resolver
- Stack.Types.Runner
Expand Down
5 changes: 3 additions & 2 deletions src/Stack/Build/ConstructPlan.hs
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,15 @@ import Stack.Types.CompilerPaths
( CompilerPaths (..), HasCompiler (..) )
import Stack.Types.Config
( BuildOpts (..), BuildOptsCLI (..), BuildSubset (..)
, Config (..), Curator (..), EnvSettings (..), HasConfig (..)
, minimalEnvSettings, stackRootL
, Config (..), HasConfig (..), stackRootL
)
import Stack.Types.Curator ( Curator (..) )
import Stack.Types.Dependency
( DepValue (DepValue), DepType (AsLibrary) )
import Stack.Types.DumpPackage ( DumpPackage (..) )
import Stack.Types.EnvConfig
( EnvConfig (..), HasEnvConfig (..), HasSourceMap (..) )
import Stack.Types.EnvSettings ( EnvSettings (..), minimalEnvSettings )
import Stack.Types.GHCVariant ( HasGHCVariant (..) )
import Stack.Types.GhcPkgId ( GhcPkgId )
import Stack.Types.NamedComponent ( exeComponents, renderComponent )
Expand Down
8 changes: 5 additions & 3 deletions src/Stack/Build/Execute.hs
Original file line number Diff line number Diff line change
Expand Up @@ -149,9 +149,9 @@ import Stack.Types.CompilerPaths
)
import Stack.Types.Config
( BenchmarkOpts (..), BuildOpts (..), BuildOptsCLI (..)
, CabalVerbosity (..), Config (..), Curator (..)
, EnvSettings (..), HaddockOpts (..), HasConfig (..)
, TestOpts (..), buildOptsL, stackRootL, whichCompilerL
, CabalVerbosity (..), Config (..), HaddockOpts (..)
, HasConfig (..), TestOpts (..), buildOptsL, stackRootL
, whichCompilerL
)
import Stack.Types.DumpLogs ( DumpLogs (..) )
import Stack.Types.DumpPackage ( DumpPackage (..) )
Expand All @@ -162,6 +162,7 @@ import Stack.Types.EnvConfig
, packageDatabaseLocal, platformGhcRelDir
, shouldForceGhcColorFlag
)
import Stack.Types.EnvSettings ( EnvSettings (..) )
import Stack.Types.GhcPkgId ( GhcPkgId, ghcPkgIdString, unGhcPkgId )
import Stack.Types.GlobalOpts ( GlobalOpts (..) )
import Stack.Types.NamedComponent
Expand All @@ -176,6 +177,7 @@ import Stack.Types.Package
)
import Stack.Types.PackageFile ( PackageWarning (..) )
import Stack.Types.Platform ( HasPlatform (..) )
import Stack.Types.Curator ( Curator (..) )
import Stack.Types.Runner ( HasRunner, globalOptsL, terminalL )
import Stack.Types.SourceMap ( Target )
import Stack.Types.Version ( withinRange )
Expand Down
11 changes: 5 additions & 6 deletions src/Stack/Build/Source.hs
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,9 @@ import Stack.Types.CabalConfigKey ( CabalConfigKey (..) )
import Stack.Types.CompilerPaths ( HasCompiler, getCompilerPath )
import Stack.Types.Config
( ApplyCLIFlag (..), BuildOpts (..), BuildOptsCLI (..)
, Config (..), Curator (..), HasConfig (..)
, ProjectPackage (..), TestOpts (..), buildOptsL, ppGPD
, ppRoot
, Config (..), HasConfig (..), TestOpts (..), buildOptsL
)
import Stack.Types.Curator ( Curator (..) )
import Stack.Types.EnvConfig
( EnvConfig (..), HasEnvConfig (..), HasSourceMap (..)
, actualCompilerVersionL
Expand All @@ -58,9 +57,9 @@ import Stack.Types.Package
import Stack.Types.PackageFile ( PackageWarning, getPackageFiles )
import Stack.Types.Platform ( HasPlatform (..) )
import Stack.Types.SourceMap
( CommonPackage (..), DepPackage (..), SMActual (..)
, SMTargets (..), SourceMap (..), SourceMapHash (..)
, Target (..)
( CommonPackage (..), DepPackage (..), ProjectPackage (..)
, SMActual (..), SMTargets (..), SourceMap (..)
, SourceMapHash (..), Target (..), ppGPD, ppRoot
)
import System.FilePath ( takeFileName )
import System.IO.Error ( isDoesNotExistError )
Expand Down
8 changes: 3 additions & 5 deletions src/Stack/Build/Target.hs
Original file line number Diff line number Diff line change
Expand Up @@ -76,17 +76,15 @@ import Stack.SourceMap ( additionalDepPackage )
import Stack.Prelude
import Stack.Types.BuildConfig
( BuildConfig (..), HasBuildConfig (..) )
import Stack.Types.Config
( BuildOptsCLI (..), Config (..), ProjectConfig (..)
, ppComponents, ppRoot
)
import Stack.Types.Config ( BuildOptsCLI (..), Config (..) )
import Stack.Types.NamedComponent
( NamedComponent (..), renderComponent )
import Stack.Types.Build ( BuildPrettyException (..) )
import Stack.Types.ProjectConfig ( ProjectConfig (..) )
import Stack.Types.SourceMap
( DepPackage (..), GlobalPackage (..), PackageType (..)
, ProjectPackage, SMActual (..), SMTargets (..)
, SMWanted (..), Target (..)
, SMWanted (..), Target (..), ppComponents, ppRoot
)

-- | Do we need any targets? For example, `stack build` will fail if
Expand Down
4 changes: 2 additions & 2 deletions src/Stack/Clean.hs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ import Stack.Prelude
import Stack.Runners ( ShouldReexec (..), withConfig )
import Stack.Types.BuildConfig
( BuildConfig (..), HasBuildConfig (..), getProjectWorkDir )
import Stack.Types.Config ( Config, ppRoot )
import Stack.Types.Config ( Config )
import Stack.Types.Runner ( Runner )
import Stack.Types.SourceMap ( SMWanted (..) )
import Stack.Types.SourceMap ( SMWanted (..), ppRoot )

-- | Type representing exceptions thrown by functions exported by the
-- "Stack.Clean" module.
Expand Down
11 changes: 6 additions & 5 deletions src/Stack/Config.hs
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,10 @@ import Stack.Types.BuildConfig ( BuildConfig (..) )
import Stack.Types.ColorWhen ( ColorWhen (..) )
import Stack.Types.Compiler ( defaultCompilerRepository )
import Stack.Types.Config
( BuildOpts (..), Config (..), HasConfig (..), Project (..)
, ProjectAndConfigMonoid (..), ProjectConfig (..)
, askLatestSnapshotUrl, configProjectRoot
, parseProjectAndConfigMonoid, platformOnlyRelDir, stackRootL
, workDirL
( BuildOpts (..), Config (..), HasConfig (..)
, ProjectAndConfigMonoid (..), askLatestSnapshotUrl
, configProjectRoot, parseProjectAndConfigMonoid
, platformOnlyRelDir, stackRootL, workDirL
)
import Stack.Types.Config.Exception
( ConfigException (..), ConfigPrettyException (..)
Expand All @@ -120,6 +119,8 @@ import Stack.Types.DumpLogs ( DumpLogs (..) )
import Stack.Types.GlobalOpts ( GlobalOpts (..) )
import Stack.Types.Nix ( nixEnable )
import Stack.Types.Platform ( PlatformVariant (..) )
import Stack.Types.Project ( Project (..) )
import Stack.Types.ProjectConfig ( ProjectConfig (..) )
import Stack.Types.PvpBounds ( PvpBounds (..), PvpBoundsType (..) )
import Stack.Types.Resolver ( AbstractResolver (..), Snapshots (..) )
import Stack.Types.Runner
Expand Down
2 changes: 1 addition & 1 deletion src/Stack/Config/Docker.hs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import Data.List ( find )
import qualified Data.Text as T
import Distribution.Version ( simplifyVersionRange )
import Stack.Prelude
import Stack.Types.Config ( Project (..) )
import Stack.Types.Project ( Project (..) )
import Stack.Types.Docker
( DockerOpts (..), DockerMonoidRepoOrImage (..)
, DockerOptsMonoid (..), dockerImageArgName
Expand Down
7 changes: 3 additions & 4 deletions src/Stack/ConfigCmd.hs
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,14 @@ import Stack.Config
)
import Stack.Constants ( stackDotYaml )
import Stack.Prelude
import Stack.Types.Config
( Config (..), EnvSettings (..), HasConfig (..)
, ProjectConfig (..)
)
import Stack.Types.Config ( Config (..), HasConfig (..) )
import Stack.Types.ConfigMonoid
( configMonoidInstallGHCName, configMonoidSystemGHCName )
import Stack.Types.EnvConfig ( EnvConfig )
import Stack.Types.EnvSettings ( EnvSettings (..) )
import Stack.Types.GHCVariant ( HasGHCVariant )
import Stack.Types.GlobalOpts ( GlobalOpts (..) )
import Stack.Types.ProjectConfig ( ProjectConfig (..) )
import Stack.Types.Resolver ( AbstractResolver, readAbstractResolver )
import Stack.Types.Runner ( globalOptsL )
import System.Environment ( getEnvironment )
Expand Down
8 changes: 3 additions & 5 deletions src/Stack/Constants/Config.hs
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,9 @@ import Stack.Constants ( cabalPackageName )
import Stack.Prelude
import Stack.Types.BuildConfig ( HasBuildConfig, projectRootL )
import Stack.Types.CompilerPaths ( cabalVersionL )
import Stack.Types.Config
( Config, HasConfig, stackRootL, useShaPathOnWindows
, workDirL
)
import Stack.Types.EnvConfig ( HasEnvConfig, platformGhcRelDir )
import Stack.Types.Config ( Config, HasConfig, stackRootL, workDirL )
import Stack.Types.EnvConfig
( HasEnvConfig, platformGhcRelDir, useShaPathOnWindows )

-- | Output .o/.hi directory.
objectInterfaceDirL :: HasBuildConfig env => Getting r env (Path Abs Dir)
Expand Down
5 changes: 2 additions & 3 deletions src/Stack/Coverage.hs
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,7 @@ import Stack.Types.BuildConfig
( BuildConfig (..), HasBuildConfig (..) )
import Stack.Types.Compiler ( getGhcVersion )
import Stack.Types.CompilerPaths ( cabalVersionL )
import Stack.Types.Config
( BuildOptsCLI (..), defaultBuildOptsCLI, ppRoot )
import Stack.Types.Config ( BuildOptsCLI (..), defaultBuildOptsCLI )
import Stack.Types.EnvConfig
( EnvConfig (..), HasEnvConfig (..), actualCompilerVersionL
, hpcReportDir
Expand All @@ -58,7 +57,7 @@ import Stack.Types.Package
import Stack.Types.Runner ( Runner )
import Stack.Types.SourceMap
( PackageType (..), SMTargets (..), SMWanted (..)
, SourceMap (..), Target (..)
, SourceMap (..), Target (..), ppRoot
)
import System.FilePath ( isPathSeparator )
import Trace.Hpc.Tix ( Tix (..), TixModule (..), readTix, writeTix )
Expand Down
8 changes: 4 additions & 4 deletions src/Stack/Exec.hs
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@ import Stack.Types.BuildConfig
import Stack.Types.CompilerPaths
( CompilerPaths (..), HasCompiler (..), getGhcPkgExe )
import Stack.Types.Config
( BuildOptsCLI (..), EnvSettings (..), HasConfig (..)
, configProcessContextSettings, defaultBuildOptsCLI
, ppComponents
( BuildOptsCLI (..), Config (..), HasConfig (..)
, defaultBuildOptsCLI
)
import Stack.Types.EnvConfig ( EnvConfig )
import Stack.Types.EnvSettings ( EnvSettings (..) )
import Stack.Types.Runner ( Runner )
import Stack.Types.SourceMap ( SMWanted (..) )
import Stack.Types.SourceMap ( SMWanted (..), ppComponents )
import System.Directory ( withCurrentDirectory )
import System.FilePath ( isValid )

Expand Down
8 changes: 7 additions & 1 deletion src/Stack/Ghci.hs
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,14 @@ import Stack.Types.BuildConfig
import Stack.Types.CompilerPaths
( CompilerPaths (..), HasCompiler (..) )
import Stack.Types.Config
( ApplyCLIFlag, BuildOptsCLI (..), Config (..)
, HasConfig (..), buildOptsL, defaultBuildOptsCLI
)
import Stack.Types.EnvConfig
( EnvConfig (..), HasEnvConfig (..), actualCompilerVersionL )
( EnvConfig (..), HasEnvConfig (..), actualCompilerVersionL
, shaPathForBytes
)
import Stack.Types.EnvSettings ( defaultEnvSettings )
import Stack.Types.NamedComponent
import Stack.Types.Package
import Stack.Types.PackageFile
Expand Down
7 changes: 4 additions & 3 deletions src/Stack/Hoogle.hs
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,15 @@ import Stack.Runners
, withEnvConfig
)
import Stack.Types.Config
( BuildOptsCLI (..), Config (..), EnvSettings (..)
, HasConfig (..), buildOptsMonoidHaddockL
, defaultBuildOptsCLI, globalOptsBuildOptsMonoidL
( BuildOptsCLI (..), Config (..), HasConfig (..)
, buildOptsMonoidHaddockL, defaultBuildOptsCLI
, globalOptsBuildOptsMonoidL
)
import Stack.Types.EnvConfig
( EnvConfig, HasSourceMap (..), hoogleDatabasePath
, hoogleRoot
)
import Stack.Types.EnvSettings ( EnvSettings (..) )
import Stack.Types.GlobalOpts ( GlobalOpts (..) )
import Stack.Types.Runner ( Runner, globalOptsL )
import Stack.Types.SourceMap ( DepPackage (..), SourceMap (..) )
Expand Down
4 changes: 2 additions & 2 deletions src/Stack/IDE.hs
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ import Stack.Runners
( ShouldReexec (..), withBuildConfig, withConfig )
import Stack.Types.BuildConfig
( BuildConfig (..), HasBuildConfig (..) )
import Stack.Types.Config ( ppComponents )
import Stack.Types.NamedComponent
( NamedComponent, renderPkgComponent )
import Stack.Types.Runner ( Runner )
import Stack.Types.SourceMap ( ProjectPackage (..), SMWanted (..) )
import Stack.Types.SourceMap
( ProjectPackage (..), SMWanted (..), ppComponents )
import System.IO ( putStrLn )

-- Type representing output channel choices for the @stack ide packages@ and
Expand Down
3 changes: 2 additions & 1 deletion src/Stack/Init.hs
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,11 @@ import Stack.Runners
( ShouldReexec (..), withConfig, withGlobalProject )
import Stack.SourceMap
( SnapshotCandidate, loadProjectSnapshotCandidate )
import Stack.Types.Config ( HasConfig, Project (..) )
import Stack.Types.Config ( HasConfig )
import Stack.Types.Config.Exception ( ConfigPrettyException (..) )
import Stack.Types.GHCVariant ( HasGHCVariant )
import Stack.Types.GlobalOpts ( GlobalOpts (..) )
import Stack.Types.Project ( Project (..) )
import Stack.Types.Runner (Runner, globalOptsL )
import Stack.Types.Resolver ( AbstractResolver, Snapshots (..) )
import Stack.Types.Version ( stackMajorVersion )
Expand Down
4 changes: 3 additions & 1 deletion src/Stack/Options/Completion.hs
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,11 @@ import Stack.Options.GlobalParser ( globalOptsFromMonoid )
import Stack.Runners
import Stack.Prelude
import Stack.Types.BuildConfig ( BuildConfig (..), HasBuildConfig (..) )
import Stack.Types.Config
import Stack.Types.Config ( Config (..) )
import Stack.Types.EnvConfig ( EnvConfig )
import Stack.Types.GlobalOpts ( GlobalOpts (..) )
import Stack.Types.Project ( Project (..) )
import Stack.Types.ProjectConfig ( ProjectConfig (..) )
import Stack.Types.NamedComponent
import Stack.Types.SourceMap

Expand Down
2 changes: 1 addition & 1 deletion src/Stack/Options/ExecParser.hs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import Stack.Exec
( ExecOpts (..), ExecOptsExtra (..), SpecialExecCmd (..) )
import Stack.Options.Completion
import Stack.Prelude
import Stack.Types.Config
import Stack.Types.EnvSettings ( EnvSettings (..) )

-- | Parse command line arguments for Stack's @exec@, @ghc@, @run@,
-- @runghc@ and @runhaskell@ commands.
Expand Down
13 changes: 10 additions & 3 deletions src/Stack/Options/GlobalParser.hs
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@ module Stack.Options.GlobalParser
) where

import Options.Applicative
( Parser, auto, completer, help, hidden, internal, long
, metavar, option, strOption, value
( Parser, ReadM, auto, completer, help, hidden, internal
, long, metavar, option, strOption, value
)
import Options.Applicative.Builder.Extra
( fileExtCompleter, firstBoolFlagsFalse
, firstBoolFlagsNoDefault, firstBoolFlagsTrue, optionalFirst
)
import Options.Applicative.Types ( readerAsk )
import Path.IO ( getCurrentDir, resolveDir', resolveFile' )
import qualified Stack.Docker as Docker
import Stack.Prelude
Expand All @@ -23,7 +24,6 @@ import Stack.Options.LogLevelParser ( logLevelOptsParser )
import Stack.Options.ResolverParser
( abstractResolverOptsParser, compilerOptsParser )
import Stack.Options.Utils ( GlobalOptsContext (..), hideMods )
import Stack.Types.Config ( defaultLogLevel, readStyles )
import Stack.Types.GlobalOpts ( GlobalOpts (..) )
import Stack.Types.GlobalOptsMonoid ( GlobalOptsMonoid (..) )
import Stack.Types.LockFileBehavior
Expand Down Expand Up @@ -143,3 +143,10 @@ globalOptsFromMonoid defaultTerminal GlobalOptsMonoid{..} = do
_ -> LFBReadOnly
in fromFirst defLFB globalMonoidLockFileBehavior
}

-- | Default logging level should be something useful but not crazy.
defaultLogLevel :: LogLevel
defaultLogLevel = LevelInfo

readStyles :: ReadM StylesUpdate
readStyles = parseStylesUpdateFromString <$> readerAsk
4 changes: 2 additions & 2 deletions src/Stack/SDist.hs
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ import Stack.Types.BuildConfig
( BuildConfig (..), HasBuildConfig (..), stackYamlL )
import Stack.Types.Config
( BuildOpts (..), Config (..), HasConfig (..)
, defaultBuildOpts, defaultBuildOptsCLI, ppRoot
, defaultBuildOpts, defaultBuildOptsCLI
)
import Stack.Types.EnvConfig
( EnvConfig (..), HasEnvConfig (..), actualCompilerVersionL )
Expand All @@ -83,7 +83,7 @@ import Stack.Types.PvpBounds ( PvpBounds (..), PvpBoundsType (..) )
import Stack.Types.Runner ( HasRunner, Runner )
import Stack.Types.SourceMap
( CommonPackage (..), ProjectPackage (..), SMWanted (..)
, SourceMap (..)
, SourceMap (..), ppRoot
)
import Stack.Types.Version
( intersectVersionRanges, nextMajorVersion )
Expand Down
Loading

0 comments on commit 5ddd9e8

Please sign in to comment.