Cabal-hooks 3.14 → 3.16
raw patch · 7 files changed
+88/−86 lines, 7 filesdep ~Cabaldep ~Cabal-syntaxdep ~containersnew-uploaderPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: Cabal, Cabal-syntax, containers
API changes (from Hackage documentation)
- Distribution.Simple.SetupHooks: [haddockKeepTempFiles] :: HaddockFlags -> Flag Bool
+ Distribution.Simple.SetupHooks: [jsppOptions] :: BuildInfo -> [String]
- Distribution.Simple.SetupHooks: BuildInfo :: Bool -> [LegacyExeDependency] -> [ExeDependency] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [PkgconfigDependency] -> [RelativePath Framework 'File] -> [SymbolicPath Pkg ('Dir Framework)] -> [SymbolicPath Pkg 'File] -> [SymbolicPath Pkg 'File] -> [SymbolicPath Pkg 'File] -> [SymbolicPath Pkg 'File] -> [SymbolicPath Pkg 'File] -> [SymbolicPath Pkg ('Dir Source)] -> [ModuleName] -> [ModuleName] -> [ModuleName] -> Maybe Language -> [Language] -> [Extension] -> [Extension] -> [Extension] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [SymbolicPath Pkg ('Dir Lib)] -> [SymbolicPath Pkg ('Dir Lib)] -> [SymbolicPath Pkg ('Dir Include)] -> [SymbolicPath Include 'File] -> [RelativePath Include 'File] -> [RelativePath Include 'File] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> [(String, String)] -> [Dependency] -> [Mixin] -> BuildInfo
+ Distribution.Simple.SetupHooks: BuildInfo :: Bool -> [LegacyExeDependency] -> [ExeDependency] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [PkgconfigDependency] -> [RelativePath Framework 'File] -> [SymbolicPath Pkg ('Dir Framework)] -> [SymbolicPath Pkg 'File] -> [SymbolicPath Pkg 'File] -> [SymbolicPath Pkg 'File] -> [SymbolicPath Pkg 'File] -> [SymbolicPath Pkg 'File] -> [SymbolicPath Pkg ('Dir Source)] -> [ModuleName] -> [ModuleName] -> [ModuleName] -> Maybe Language -> [Language] -> [Extension] -> [Extension] -> [Extension] -> [String] -> [String] -> [String] -> [String] -> [String] -> [String] -> [SymbolicPath Pkg ('Dir Lib)] -> [SymbolicPath Pkg ('Dir Lib)] -> [SymbolicPath Pkg ('Dir Include)] -> [SymbolicPath Include 'File] -> [RelativePath Include 'File] -> [RelativePath Include 'File] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> PerCompilerFlavor [String] -> [(String, String)] -> [Dependency] -> [Mixin] -> BuildInfo
- Distribution.Simple.SetupHooks: HaddockFlags :: !CommonSetupFlags -> [(String, FilePath)] -> [(String, [String])] -> Flag Bool -> Flag Bool -> Flag String -> Flag HaddockTarget -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag FilePath -> Flag Bool -> Flag Bool -> Flag FilePath -> Flag PathTemplate -> Flag PathTemplate -> Flag Bool -> Flag String -> Flag String -> Flag FilePath -> Flag Bool -> HaddockFlags
+ Distribution.Simple.SetupHooks: HaddockFlags :: !CommonSetupFlags -> [(String, FilePath)] -> [(String, [String])] -> Flag Bool -> Flag Bool -> Flag String -> Flag HaddockTarget -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag Bool -> Flag FilePath -> Flag Bool -> Flag Bool -> Flag FilePath -> Flag PathTemplate -> Flag PathTemplate -> Flag String -> Flag String -> Flag FilePath -> Flag Bool -> HaddockFlags
Files
- CHANGELOG.md +12/−0
- Cabal-hooks.cabal +11/−11
- LICENSE +1/−1
- README.md +64/−0
- changelog.md +0/−6
- readme.md +0/−64
- src/Distribution/Simple/SetupHooks.hs +0/−4
+ CHANGELOG.md view
@@ -0,0 +1,12 @@+# Changelog for `Cabal-hooks`++## 3.16.0 – July 2025+ * No changes++## 3.14.2 – April 2025+ * No changes++## 3.14 – November 2024++ * Initial release of the `Hooks` API.+
Cabal-hooks.cabal view
@@ -1,7 +1,7 @@-cabal-version: 2.2 +cabal-version: 3.6 name: Cabal-hooks -version: 3.14 -copyright: 2023, Cabal Development Team +version: 3.16 +copyright: 2025, Cabal Development Team license: BSD-3-Clause license-file: LICENSE author: Cabal Development Team <cabal-devel@haskell.org> @@ -14,8 +14,8 @@ category: Distribution build-type: Simple -extra-source-files: - readme.md changelog.md +extra-doc-files: + README.md CHANGELOG.md source-repository head type: git @@ -27,13 +27,13 @@ hs-source-dirs: src build-depends: - Cabal-syntax >= 3.14 && < 3.15, - Cabal >= 3.14 && < 3.15, - base >= 4.13 && < 5, - containers >= 0.5.0.0 && < 0.8, - transformers >= 0.5.6.0 && < 0.7 + , Cabal-syntax >= 3.16 && < 3.17 + , Cabal >= 3.16 && < 3.17 + , base >= 4.13 && < 5 + , containers >= 0.5.0.0 && < 0.9 + , transformers >= 0.5.6.0 && < 0.7 - ghc-options: -Wall -fno-ignore-asserts -fwarn-tabs -fwarn-incomplete-uni-patterns -fwarn-incomplete-record-updates + ghc-options: -Wall -fno-ignore-asserts -Wtabs -Wincomplete-uni-patterns -Wincomplete-record-updates exposed-modules: Distribution.Simple.SetupHooks
LICENSE view
@@ -1,4 +1,4 @@-Copyright (c) 2003-2023, Cabal Development Team. +Copyright (c) 2003-2025, Cabal Development Team. See the AUTHORS file for the full list of copyright holders. See */LICENSE for the copyright holders of the subcomponents.
+ README.md view
@@ -0,0 +1,64 @@+# `Cabal-hooks` + +This library provides an API for the `Cabal` `Hooks` build type. + +## What is the `Hooks` build type? + +The `Hooks` build type is a new `Cabal` build type that is scheduled to +replace the `Custom` build type, providing better integration with +the rest of the Haskell ecosystem. + +The original specification for the `Hooks` build type can be found in +the associated [Haskell Foundation Tech Proposal](https://github.com/haskellfoundation/tech-proposals/pull/60). + +These *setup hooks* allow package authors to customise the configuration and +building of a package by providing certain hooks that get folded into the +general package configuration and building logic within `Cabal`. + +## Defining a package with custom hooks + +To use the `Hooks` build type, you will need to + + * Update your `.cabal` file by: + + - using `cabal-version >= 3.14`, + - declaring `build-type: Hooks`, + - declaring a `custom-setup` stanza, with a `setup-depends` + field which includes a dependency on `Cabal-hooks`. + + * Define a Haskell module `SetupHooks`, which must be placed + at the root of your project and must define a value + `setupHooks :: SetupHooks`. + +That is, your `.cabal` file should contain the following + +```cabal +-- my-package.cabal +cabal-version: 3.14 +name: my-package +build-type: Hooks + +custom-setup + setup-depends: + Cabal-hooks >= 3.14 && < 3.15 +``` + +and your `SetupHooks.hs` file should look like: + +```haskell +-- SetupHooks.hs +module SetupHooks ( setupHooks ) where + +-- Cabal-hooks +import Distribution.Simple.SetupHooks + +setupHooks :: SetupHooks +setupHooks = ... + -- use the API provided by 'Distribution.Simple.SetupHooks' + -- to define the hooks relevant to your package +``` + +## Using the API + +The [Haddock documentation](https://hackage.haskell.org/package/Cabal-hooks) +should help you get started using this library's API.
− changelog.md
@@ -1,6 +0,0 @@-# Changelog for `Cabal-hooks` - -## 3.14 – November 2024 - - * Initial release of the `Hooks` API. -
− readme.md
@@ -1,64 +0,0 @@-# `Cabal-hooks` - -This library provides an API for the `Cabal` `Hooks` build type. - -## What is the `Hooks` build type? - -The `Hooks` build type is a new `Cabal` build type that is scheduled to -replace the `Custom` build type, providing better integration with -the rest of the Haskell ecosystem. - -The original specification for the `Hooks` build type can be found in -the associated [Haskell Foundation Tech Proposal](https://github.com/haskellfoundation/tech-proposals/pull/60). - -These *setup hooks* allow package authors to customise the configuration and -building of a package by providing certain hooks that get folded into the -general package configuration and building logic within `Cabal`. - -## Defining a package with custom hooks - -To use the `Hooks` build type, you will need to - - * Update your `.cabal` file by: - - - using `cabal-version >= 3.14`, - - declaring `build-type: Hooks`, - - declaring a `custom-setup` stanza, with a `setup-depends` - field which includes a dependency on `Cabal-hooks`. - - * Define a Haskell module `SetupHooks`, which must be placed - at the root of your project and must define a value - `setupHooks :: SetupHooks`. - -That is, your `.cabal` file should contain the following - -```cabal --- my-package.cabal -cabal-version: 3.14 -name: my-package -build-type: Hooks - -custom-setup - setup-depends: - Cabal-hooks >= 0.1 && < 0.2 -``` - -and your `SetupHooks.hs` file should look like: - -```haskell --- SetupHooks.hs -module SetupHooks ( setupHooks ) where - --- Cabal-hooks -import Distribution.Simple.SetupHooks - -setupHooks :: SetupHooks -setupHooks = ... - -- use the API provided by 'Distribution.Simple.SetupHooks' - -- to define the hooks relevant to your package -``` - -## Using the API - -The [Haddock documentation](https://hackage.haskell.org/package/Cabal-hooks) -should help you get started using this library's API.
src/Distribution/Simple/SetupHooks.hs view
@@ -2,12 +2,8 @@ {-# LANGUAGE CPP #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE DuplicateRecordFields #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE RankNTypes #-}-{-# LANGUAGE RecursiveDo #-} {-# LANGUAGE StaticPointers #-}-{-# LANGUAGE TupleSections #-}-{-# LANGUAGE OverloadedStrings #-} {-| Module: Distribution.Simple.SetupHooks