Skip to content
Snippets Groups Projects
  • sheaf's avatar
    c5f99331
    Introduce SetupHooks · c5f99331
    sheaf authored
    This commit introduces a new build-type, Hooks. A package using this
    build type should provide a SetupHooks.hs module which exports
    a value `setupHooks :: SetupHooks`. This is intended to replace the
    Custom setup type. This allows Cabal to have finer-grained information
    about the build, instead of having an opaque Setup executable to invoke.
    
    Tests include:
    
      - error when returning an invalid component diff in a
        per-component pre-configure hook
      - error when declaring pre-build rules whose dependency
        graph contains cycles
      - error when we cannot find a dependency of a pre-build rule
      - warning when there are pre-build rules that are declared but
        never demanded
      - correctness tests for SetupHooks, e.g. that
        pre-build rules are run in dependency order (see the
        `SetupHooksRuleOrdering` test)
    c5f99331
    History
    Introduce SetupHooks
    sheaf authored
    This commit introduces a new build-type, Hooks. A package using this
    build type should provide a SetupHooks.hs module which exports
    a value `setupHooks :: SetupHooks`. This is intended to replace the
    Custom setup type. This allows Cabal to have finer-grained information
    about the build, instead of having an opaque Setup executable to invoke.
    
    Tests include:
    
      - error when returning an invalid component diff in a
        per-component pre-configure hook
      - error when declaring pre-build rules whose dependency
        graph contains cycles
      - error when we cannot find a dependency of a pre-build rule
      - warning when there are pre-build rules that are declared but
        never demanded
      - correctness tests for SetupHooks, e.g. that
        pre-build rules are run in dependency order (see the
        `SetupHooksRuleOrdering` test)
Code owners
Assign users and groups as approvers for specific file changes. Learn more.