- Add upper bound
crypton < 1.1, as dependencyhttp-client-tls <= 0.3.6.4does not supportcrypton-1.1.0but does not itself have an upper bound.
- Depend on
cryptohash-sha256, rather thancrypton, for SHA256 hashes
- Add support for
mhs-options(MicroHs)
- Handle multi-line values for the
descriptionfield offlags(see #623) and other fields
- Accept a list for
category(see #624)
- Infer
cabal-version: 3.12whenPackageInfo_*is used (see #620)
- Add support for
extra-files(see #603) - Preserve empty lines in
descriptionwhencabal-version >= 3(see #612)
- Generate
build-tool-dependsinstead ofbuild-toolsstarting withcabal-version: 2(fixes #596)
- Add support for
asm-optionsandasm-sources(see #573)
- Allow
Cabal-3.12.* - Support
base >= 4.20.0(Importsdoes not re-exportData.List.List)
- Don't infer
Paths_-module withspec-version: 0.36.0or later
- Add (undocumented)
listcommand
- Add
--canonical, which can be used to produce canonical output instead of trying to produce minimal diffs - Avoid unnecessary writes on
--force(see #555) - When an existing
.cabaldoes not align fields then do not align fields in the generated.cabalfile. - Fix a bug related to git conflict markers in existing
.cabalfiles: When a.cabalfile was essentially unchanged, but contained git conflict markers thenhpackdid not write a new.cabalfile at all. To address thishpacknow unconditionally writes a new.cabalfile when the existing.cabalfile contains any git conflict markers.
- Depend on
cryptoninstead ofcryptonite
- Add support for
ghc-shared-options
- Allow
Cabal-3.8.* - Additions to internal API
- Add support for
language(thanks @mpilgrem) - Accept Cabal names for fields where Hpack and Cabal use different
terminology, but still warn (e.g. accept
hs-source-dirsas an alias forsource-dirs)
- Support
Cabal-3.6.* - Make sure that verbatim
importfields are rendered at the beginning of a section (see #486)
- Add
Paths_module toautogen-moduleswhencabal-version >= 2
- Compatibility with
aeson-2.*
- Render
default-extensions/other-extensionsline-separated - Compatibility with
Cabal-3.4.0.0
- Ignore duplicate source directories (see #356)
- Do not infer duplicate modules (see #408, #406, #353)
- Reject empty
then/elsesections (see #362) - Omit conditionals that are always
falsefrom generated.cabalfile (see #404) - Infer correct
cabal-versionwhenPaths_is used withRebindableSyntaxandOverloadedStringsorOverloadedLists(see #400) - Do not use indentation from any existing
.cabalfile if it is invalid (e.g.0) (fixes #252) - Accept lists for
tested-with(see #407) - Render current directory as
./instead of./.for forward compatibility with future version of Cabal
- Accept subcomponents as dependencies (close #382)
- Fix a bug in
github: ...introduced with0.34.0(f63eb19b956517b4dd8e28dc5785be5889a99298)
- Use
PreferNoHashas defaultGenerateHashStrategy - Add support for library
visibility(see #382) - Reject URLs for
github
-
Add
GenerateHashStrategy. The default isPreferHashfor0.33.0and will change toPreferNoHashwith0.34.0. See #390) for details. -
Add command-line options
--hashand--no-hash
- Silently ignore missing hash when the cabal file content didn't change at all (for forward compatibility with #390)
- Support GHC 8.8.1:
failis no longer a part ofMonad. Instead, it lives in theMonadFailclass. Adapting our code to this change meant changing the types of exporting functions, unfortunately, hence the major version bump.
- Support Cabal 3.0
- Switch reexported-modules to comma-separated list
- Add default value for maintainer (see #339)
- Escape commas and spaces in filenames when generating cabal files
- Show the header when printing to stdout (see #331)
- Add help for
--numeric-version(see #337)
- Add
mixinto the fields read by dependencies when they are objects (see #318) hpacknow returns with a successful exit code if the.cabalfile is up to date, even if it was generated by a newer version ofhpack.
- Warn on duplicate fields (see #283)
- Always render
cabal-versionasx.yinstead of>= x.yso thatcabal checkdoes not complain (see #322) - Extend
build-toolsso that it subsumes Cabal'sbuild-toolsandbuild-tool-depends(see #254) - Add support for
system-build-tools - Keep declaration order for literal files in c-sources (and other fields that accept glob patterns). This is crucial as a workaround for https://ghc.haskell.org/trac/ghc/ticket/13786 (see #324)
- Expose more stuff from
Hpack.Yamlso that it can be used by third parties
- Add
spec-version(see #300)
- Fix a regression related to indentation sniffing (close #310)
- Desugar ^>= when dependency is a string (see #309)
- Add support for Apache, MPL and ISC when inferring
license(see #305)
- Desugar
^>=for compatibility withCabal < 2(see #213) - Add support for GPL, LGPL and AGPL when inferring
license(see #305)
- Add missing
extra-source-files(see #302)
- Infer
licensefromlicense-file
- Put the
cabal-versionat the beginning of the generated file. This Is required withcabal-version: 2.1and higher. (see #292) - With
cabal-version: 2.1or higher omit>=when rendering (see #292) - Require
cabal-version: 2.2when SPDX license identifiers are used (see #292) - Map cabal-style licenses to SPDX license identifiers when
cabal-versionis 2.2 or higher (see #292)
- Exit with
exitFailureonAlreadyGeneratedByNewerHpackorExistingCabalFileWasModifiedManuallyinHpack.printResult
- GHC 8.4.1 compatibility
- Add support for
cxx-optionsandcxx-sources(see #205) - Add support for
data-dir(see #100) - Generate valid
.cabalfiles whenverbatimis used top-level (see #280)
- Local defaults are now resolved relative to the file they are mentioned in, not the CWD that hpack is invoked from.
- Major refactoring of the exposed API (much cleaner now, but lot's of breaking changes!)
- Remove Git conflict markers before checking the hash of any existing
.cabalfiles (equivalent togit checkout --ours). This allows to regenerate the.cabalfile on conflicts when rebasing without passing-fin some cases and helps with preserving the formatting. - Allow local files to be used as defaults (#248)
- Keep non-existing literal files on glob expansion (see #101)
- Add support for
verbatimCabal escape hatch - Allow
versionbe a numbers - Ignore fields that start with an underscore everywhere, not just globally
- Add support for custom decoders to allow for alternate syntax (e.g. Dhall)
generated-exposed-modulesandgenerated-other-modules, for populating theautogen-modulesfield (#207).- Corrected
cabal-versionsetting forreexported-modulesinside a conditional.
- Add support for
defaults - Add
--numeric-version - Add support for
signatures extra-doc-filesrequires settingcabal-versionto at least 1.18; this is now done properly.- Accept bool for
condition(see #230)
- Fix a bug in module inference for conditionals (see #236)
- Add support for
extra-doc-files. - Add support for
pkg-config-dependencies
- Allow dependency constraints to be numbers (see #234)
- Accept section-specific fields in conditionals (see #175, thanks to Scott Fleischman)
- New section:
internal-libraries, for Cabal 2's internal libraries (see #200).
- Do not overwrite any existing cabal file if it has been modified manually
- Add support for
frameworksandextra-frameworks-dirs
- Compatibility with
Glob >= 0.9.0
- Add
IsListinstance forDependencies
- Add Paths_* module to executables (see #195, for GHC 8.2.1 compatibility)
- Allow specifying dependencies as a hash (see #198)
- Output generated cabal file to
stdoutwhen-is given as a command-line option (see #113) - Recognize
.chs,.y,.lyand.xas Haskell modules when inferring modules for
- Make
executablea shortcut ofexecutables: { package-name: ... } - Add support for
ghcjs-optionsandjs-sources(see #161) - Allow
license-fileto be a list - Accept input file on command-line (see #106)
- Add Paths_* when no modules are specified (see #86)
- Do not descend into irrelevant directories when inferring modules (see #165)
- Added custom-setup section
- Add support for
!includedirectives
- Warn when
nameis missing - Support globs in
c-sources - Use binary I/O for cabal files avoiding problems with non-UTF-8 locales
- Fix rendering of
.as directory (cabal syntax issue)