cabal-install-3.14.2.0: The command-line interface for Cabal and Hackage.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Distribution.Client.ProjectBuilding.PackageFileMonitor

Synopsis

Documentation

data PackageFileMonitor Source #

As part of the dry run for local unpacked packages we have to check if the package config or files have changed. That is the purpose of PackageFileMonitor and checkPackageFileMonitorChanged.

When a package is (re)built, the monitor must be updated to reflect the new state of the package. Because we sometimes build without reconfiguring the state updates are split into two, one for package config changes and one for other changes. This is the purpose of updatePackageConfigFileMonitor and updatePackageBuildFileMonitor.

type BuildResultMisc = (DocsResult, TestsResult) Source #

This is all the components of the BuildResult other than the [InstalledPackageInfo].

We have to split up the BuildResult components since they get produced at different times (or rather, when different things change).

checkPackageFileMonitorChanged :: PackageFileMonitor -> ElaboratedConfiguredPackage -> FilePath -> [BuildStatus] -> IO (Either BuildStatusRebuild BuildResult) Source #

Do all the checks on whether a package has changed and thus needs either rebuilding or reconfiguring and rebuilding.