Documentation: list and order of userHooks
- Dominant language
- Haskell
- Stars
- 1.7k
- Forks
- 750
- Avg merge
- 4d 3h
- Merged PRs (30d)
- 28
Description
Are the hooks in the order that they are listed in the documentation? Or is it possible that they don't all execute in lineair fashion? Here is a [graphviz](https://dreampuf.github.io/GraphvizOnline/#digraph%20G%20%7B%0A%0AreadDesc%20%20%5Blabel%3D%22readDesc%20%22%2C%20xlabel%3D%22IO%20(Maybe%20GenericPackageDescription)%5CnRead%20the%20description%20file%22%5D%3B%0AhookedPreProcessors%20%20%5Blabel%3D%22hookedPreProcessors%20%22%2C%20xlabel%3D%22%5BPPSuffixHandler%5D%5CnCustom%20preprocessors%20in%20addition%20to%20and%20overriding%20knownSuffixHandlers.%22%5D%3B%0AhookedPrograms%20%20%5Blabel%3D%22hookedPrograms%20%22%2C%20xlabel%3D%22%5BProgram%5D%5CnThese%20programs%20are%20detected%20at%20configure%20time.%20Arguments%20for%20them%20are%20added%20to%20the%20configure%20command.%22%5D%3B%0ApreConf%20%20%5Blabel%3D%22preConf%20%22%2C%20xlabel%3D%22Args%20-%3E%20ConfigFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20configure%20command%22%5D%3B%0AconfHook%20%20%5Blabel%3D%22confHook%20%22%2C%20xlabel%3D%22(GenericPackageDescription%2C%20HookedBuildInfo)%20-%3E%20ConfigFlags%20-%3E%20IO%20LocalBuildInfo%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20configure.%22%5D%3B%0ApostConf%20%20%5Blabel%3D%22postConf%20%22%2C%20xlabel%3D%22Args%20-%3E%20ConfigFlags%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20configure%20command%22%5D%3B%0ApreBuild%20%20%5Blabel%3D%22preBuild%20%22%2C%20xlabel%3D%22Args%20-%3E%20BuildFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20build%20command.%20Second%20arg%20indicates%20verbosity%20level.%22%5D%3B%0AbuildHook%20%20%5Blabel%3D%22buildHook%20%22%2C%20xlabel%3D%22PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20UserHooks%20-%3E%20BuildFlags%20-%3E%20IO%20()%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20build.%22%5D%3B%0ApostBuild%20%20%5Blabel%3D%22postBuild%20%22%2C%20xlabel%3D%22Args%20-%3E%20BuildFlags%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20build%20command.%20Second%20arg%20indicates%20verbosity%20level.%22%5D%3B%0ApreRepl%20%20%5Blabel%3D%22preRepl%20%22%2C%20xlabel%3D%22Args%20-%3E%20ReplFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20repl%20command.%20Second%20arg%20indicates%20verbosity%20level.%22%5D%3B%0AreplHook%20%20%5Blabel%3D%22replHook%20%22%2C%20xlabel%3D%22PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20UserHooks%20-%3E%20ReplFlags%20-%3E%20%5BString%5D%20-%3E%20IO%20()%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20interpretation.%22%5D%3B%0ApostRepl%20%20%5Blabel%3D%22postRepl%20%22%2C%20xlabel%3D%22Args%20-%3E%20ReplFlags%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20repl%20command.%20Second%20arg%20indicates%20verbosity%20level.%22%5D%3B%0ApreClean%20%20%5Blabel%3D%22preClean%20%22%2C%20xlabel%3D%22Args%20-%3E%20CleanFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20clean%20command.%20Second%20arg%20indicates%20verbosity%20level.%22%5D%3B%0AcleanHook%20%20%5Blabel%3D%22cleanHook%20%22%2C%20xlabel%3D%22PackageDescription%20-%3E%20()%20-%3E%20UserHooks%20-%3E%20CleanFlags%20-%3E%20IO%20()%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20clean.%22%5D%3B%0ApostClean%20%20%5Blabel%3D%22postClean%20%22%2C%20xlabel%3D%22Args%20-%3E%20CleanFlags%20-%3E%20PackageDescription%20-%3E%20()%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20clean%20command.%20Second%20arg%20indicates%20verbosity%20level.%22%5D%3B%0ApreCopy%20%20%5Blabel%3D%22preCopy%20%22%2C%20xlabel%3D%22Args%20-%3E%20CopyFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20copy%20command%22%5D%3B%0AcopyHook%20%20%5Blabel%3D%22copyHook%20%22%2C%20xlabel%3D%22PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20UserHooks%20-%3E%20CopyFlags%20-%3E%20IO%20()%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20copy.%22%5D%3B%0ApostCopy%20%20%5Blabel%3D%22postCopy%20%22%2C%20xlabel%3D%22Args%20-%3E%20CopyFlags%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20copy%20command%22%5D%3B%0ApreInst%20%20%5Blabel%3D%22preInst%20%22%2C%20xlabel%3D%22Args%20-%3E%20InstallFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20install%20command%22%5D%3B%0AinstHook%20%20%5Blabel%3D%22instHook%20%22%2C%20xlabel%3D%22PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20UserHooks%20-%3E%20InstallFlags%20-%3E%20IO%20()%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20install.%22%5D%3B%0ApostInst%20%20%5Blabel%3D%22postInst%20%22%2C%20xlabel%3D%22Args%20-%3E%20InstallFlags%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20install%20command.%20postInst%20should%20be%20run%20on%20the%20target%2C%20not%20on%20the%20build%20machine.%22%5D%3B%0ApreReg%20%20%5Blabel%3D%22preReg%20%22%2C%20xlabel%3D%22Args%20-%3E%20RegisterFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20register%20command%22%5D%3B%0AregHook%20%20%5Blabel%3D%22regHook%20%22%2C%20xlabel%3D%22PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20UserHooks%20-%3E%20RegisterFlags%20-%3E%20IO%20()%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20registration.%22%5D%3B%0ApostReg%20%20%5Blabel%3D%22postReg%20%22%2C%20xlabel%3D%22Args%20-%3E%20RegisterFlags%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20register%20command%22%5D%3B%0ApreUnreg%20%20%5Blabel%3D%22preUnreg%20%22%2C%20xlabel%3D%22Args%20-%3E%20RegisterFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20unregister%20command%22%5D%3B%0AunregHook%20%20%5Blabel%3D%22unregHook%20%22%2C%20xlabel%3D%22PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20UserHooks%20-%3E%20RegisterFlags%20-%3E%20IO%20()%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20unregistration.%22%5D%3B%0ApostUnreg%20%20%5Blabel%3D%22postUnreg%20%22%2C%20xlabel%3D%22Args%20-%3E%20RegisterFlags%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20unregister%20command%22%5D%3B%0ApreHscolour%20%20%5Blabel%3D%22preHscolour%20%22%2C%20xlabel%3D%22Args%20-%3E%20HscolourFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20hscolour%20command.%20Second%20arg%20indicates%20verbosity%20level.%22%5D%3B%0AhscolourHook%20%20%5Blabel%3D%22hscolourHook%20%22%2C%20xlabel%3D%22PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20UserHooks%20-%3E%20HscolourFlags%20-%3E%20IO%20()%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20hscolour.%22%5D%3B%0ApostHscolour%20%20%5Blabel%3D%22postHscolour%20%22%2C%20xlabel%3D%22Args%20-%3E%20HscolourFlags%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20hscolour%20command.%20Second%20arg%20indicates%20verbosity%20level.%22%5D%3B%0ApreDoctest%20%20%5Blabel%3D%22preDoctest%20%22%2C%20xlabel%3D%22Args%20-%3E%20DoctestFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20doctest%20command.%20Second%20arg%20indicates%20verbosity%20level.%22%5D%3B%0AdoctestHook%20%20%5Blabel%3D%22doctestHook%20%22%2C%20xlabel%3D%22PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20UserHooks%20-%3E%20DoctestFlags%20-%3E%20IO%20()%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20doctest.%22%5D%3B%0ApostDoctest%20%20%5Blabel%3D%22postDoctest%20%22%2C%20xlabel%3D%22Args%20-%3E%20DoctestFlags%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20doctest%20command.%20Second%20arg%20indicates%20verbosity%20level.%22%5D%3B%0ApreHaddock%20%20%5Blabel%3D%22preHaddock%20%22%2C%20xlabel%3D%22Args%20-%3E%20HaddockFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20haddock%20command.%20Second%20arg%20indicates%20verbosity%20level.%22%5D%3B%0AhaddockHook%20%20%5Blabel%3D%22haddockHook%20%22%2C%20xlabel%3D%22PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20UserHooks%20-%3E%20HaddockFlags%20-%3E%20IO%20()%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20haddock.%22%5D%3B%0ApostHaddock%20%20%5Blabel%3D%22postHaddock%20%22%2C%20xlabel%3D%22Args%20-%3E%20HaddockFlags%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20haddock%20command.%20Second%20arg%20indicates%20verbosity%20level.%22%5D%3B%0ApreTest%20%20%5Blabel%3D%22preTest%20%22%2C%20xlabel%3D%22Args%20-%3E%20TestFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20test%20command.%22%5D%3B%0AtestHook%20%20%5Blabel%3D%22testHook%20%22%2C%20xlabel%3D%22Args%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20UserHooks%20-%3E%20TestFlags%20-%3E%20IO%20()%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20test.%22%5D%3B%0ApostTest%20%20%5Blabel%3D%22postTest%20%22%2C%20xlabel%3D%22Args%20-%3E%20TestFlags%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20test%20command.%22%5D%3B%0ApreBench%20%20%5Blabel%3D%22preBench%20%22%2C%20xlabel%3D%22Args%20-%3E%20BenchmarkFlags%20-%3E%20IO%20HookedBuildInfo%5CnHook%20to%20run%20before%20bench%20command.%22%5D%3B%0AbenchHook%20%20%5Blabel%3D%22benchHook%20%22%2C%20xlabel%3D%22Args%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20UserHooks%20-%3E%20BenchmarkFlags%20-%3E%20IO%20()%5CnOver-ride%20this%20hook%20to%20get%20different%20behavior%20during%20bench.%22%5D%3B%0ApostBench%20%20%5Blabel%3D%22postBench%20%22%2C%20xlabel%3D%22Args%20-%3E%20BenchmarkFlags%20-%3E%20PackageDescription%20-%3E%20LocalBuildInfo%20-%3E%20IO%20()%5CnHook%20to%20run%20after%20bench%20command.%22%5D%3B%0A%0AreadDesc%20-%3E%20hookedPreProcessors%3B%0AhookedPreProcessors%20-%3E%20hookedPrograms%3B%0AhookedPrograms%20-%3E%20preConf%3B%0ApreConf%20-%3E%20confHook%3B%0AconfHook%20-%3E%20postConf%3B%0ApostConf%20-%3E%20preBuild%3B%0ApreBuild%20-%3E%20buildHook%3B%0AbuildHook%20-%3E%20postBuild%3B%0ApostBuild%20-%3E%20preRepl%3B%0ApreRepl%20-%3E%20replHook%3B%0AreplHook%20-%3E%20postRepl%3B%0ApostRepl%20-%3E%20preClean%3B%0ApreClean%20-%3E%20cleanHook%3B%0AcleanHook%20-%3E%20postClean%3B%0ApostClean%20-%3E%20preCopy%3B%0ApreCopy%20-%3E%20copyHook%3B%0AcopyHook%20-%3E%20postCopy%3B%0ApostCopy%20-%3E%20preInst%3B%0ApreInst%20-%3E%20instHook%3B%0AinstHook%20-%3E%20postInst%3B%0ApostInst%20-%3E%20preReg%3B%0ApreReg%20-%3E%20regHook%3B%0AregHook%20-%3E%20postReg%3B%0ApostReg%20-%3E%20preUnreg%3B%0ApreUnreg%20-%3E%20unregHook%3B%0AunregHook%20-%3E%20postUnreg%3B%0ApostUnreg%20-%3E%20preHscolour%3B%0ApreHscolour%20-%3E%20hscolourHook%3B%0AhscolourHook%20-%3E%20postHscolour%3B%0ApostHscolour%20-%3E%20preDoctest%3B%0ApreDoctest%20-%3E%20doctestHook%3B%0AdoctestHook%20-%3E%20postDoctest%3B%0ApostDoctest%20-%3E%20preHaddock%3B%0ApreHaddock%20-%3E%20haddockHook%3B%0AhaddockHook%20-%3E%20postHaddock%3B%0ApostHaddock%20-%3E%20preTest%3B%0ApreTest%20-%3E%20testHook%3B%0AtestHook%20-%3E%20postTest%3B%0ApostTest%20-%3E%20preBench%3B%0ApreBench%20-%3E%20benchHook%3B%0AbenchHook%20-%3E%20postBench%3B%0A%7D) with the order as i found it. Maybe at one point the order could be written in the documentation somewhere.
Contributor guide
Research direction
Start from the userHooks documentation and compare its listed order with the execution flow represented in the linked Graphviz diagram. Confirm whether the hooks execute in that order or follow separate command lifecycles, then update the documentation so the ordering and any non-linear behavior are explicit.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- build-system, documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100