-
Use
dhall
version 1.25. -
New utility function,
prelude.utils.mapBuildInfo
, which maps over the common fields of all non-setup components. -
Port to Cabal 3.0. Included changes:
-
types.CompilerOptions
now only knows about options for GHC and GHCJS. -
types.Dependency
now has alibrary-names
field, to identify which library components of the dependency package to use. These can be build withtypes.LibraryName
.prelude.majorVersions
reflects this with a third parameter. -
types.BuildInfo.pkgconfig-depends.version
is now its own type,types.PkgconfigVersionRange
. There are functions to construct it underprelude.pkg-config
. -
prelude.defaults.Library
has been split intoMainLibrary
andNamedLibrary
. UseMainLibrary
in thelibrary
field, andNamedLibrary
in thesub-libraries
field. -
New
types.Library
field,visibility
, and a new type,types.LibraryVisibility
. -
New
types.BuildInfo
fields,autogen-includes
andextra-dyn-lib-flavours
.
-
-
Add compatibility for
optparse-applicative-0.15
. -
Remove
dhall/types/CustomSetup.dhall
in favour of the identicaldhall/types/SetupBuildInfo.dhall
. -
cabal-to-dhall
no longer generates bogus output for an unknown kind ofsource-repository
stanza. -
Added
dhall/types/ForeignLibOption.dhall
, also available astypes.ForeignLibOption
, and--print-type ForeignLibOption
. LikewiseForeignLibType
. -
Support
prettyprinter
1.3. -
Teach
--print-type
aboutDependency
,SetupBuildInfo
,TestType
,Mixin
andFlag
. -
Use
dhall
version 1.24.
-
All constructors that previously took an empty record now use the new nullary syntax instead. This is a breaking change for user code. For example, instead of
types.Compiler.GHC {=}
, now you just writetypes.Compiler.GHC
. -
Use
dhall
version 1.23.0. -
Educated
--print-type
aboutScope
andModuleRenaming
. -
Fix
cabal-to-dhall
output for unknown licenses usingcabal
spec version below2.0
. Now it uses values of typeLicense.Unknown Text
for them. -
Improved
--print-type
and--print-default
output to use multi-bindinglet
.
-
Use
dhall
version 1.20.1. -
prelude.dhall
no longer provides types (as this isn't supported in Dhall 1.20.1). Instead, there is now a newtypes.dhall
file. -
dhall-to-cabal
now accepts--output-stdout
,--output-dir-cwd DIR
, and--output-dir-input DIR
flags control the destination of the generated.cabal
file.--output-dir-cwd
interprets its argument relative to the current working directory and--output-dir-input
interprets its argument relative to the input file.The default has been changed to
--output-dir-input .
, which writes to the same directory as the input file; previously it corresponded to--output-stdout
.
-
Allow
Cabal
version 2.4.0.0. There have been consequent changes to the extensions, compilers and licenses recognised. -
Allow
dhall
version 1.18. -
dhall-to-cabal
andcabal-to-dhall
now understand themixins
field properly.On the Dhall side,
types.ModuleRenaming
has changed significantly: it is now a union.prelude.types.ModuleRenaming
has been added for convenient access to the new constructors. -
Fix issue with alpha-normalized expressions. This was identified in issue #124 and fixed in issue #126.
- Include all files necessary to run tests.
DhallToCabal.dhallToCabal
now takes anInputSettings
fromdhall
as its first argument.
-
dhall-to-cabal
has a new--print-default TYPE
flag. -
When reading from a file,
dhall-to-cabal
now interprets imports as being relative to that file, rather than the current working directory. (#114)
-
Remove orphan
Dhall.Core.Inject
instances for[Char]
andCompilerFlavor
. -
CabalToDhall.cabalToDhall
is now a pure function that accepts aGenericPackageDescription
. A new convenience function has been added toCabalToDhall
,parseGenericPackageDescriptionThrows
.
-
os
conditions where the operating system's name was not recognised (e.g.,os(multics)
) were crashing cabal-to-dhall. They now work as expected. -
dhall-to-cabal
andcabal-to-dhall
now respond to--version
. -
The
dhall
subdirectory has been reorganised so that things that are not types are not in thetypes
subdirectory. Specifically,dhall/types/Version/v.dhall
, all ofdhall/types/VersionRange/*.dhall
and the operations (i.e., the enumerationsLicenseId.dhall
andLicenseExceptionId.dhall
) fromdhall/types/SPDX/*.dhall
have been moved to, respectively,dhall/Version/v.dhall
,dhall/VersionRange/*.dhall
, anddhall/SPDX/*.dhall
. In addition, the files have been renamed as appropriate to reflect the name that they are exported from the prelude as; in practice, this means that they have gone from TitleCase to camelCase.Code that only imports
prelude.dhall
andtypes.dhall
is unaffected by this change. -
prelude.defaults.Package.license
is nowAllRightsReserved
. -
dhall-to-cabal
now mapsAllRightsReserved
toSPDX.NONE
whencabal-version
is at least 2.2. -
cabal-to-dhall
will now generate more compact.dhall
files by using defaults. -
The default
build-type
is now omission, to use Cabal 2.2's inference, and the defaultcabal-version
has been bumped to 2.2. -
Export
prelude.types.Scopes
.
- Bump upper-bounds for
base
,containers
andcontravariant
. This project can build on GHC 8.6 (though will need--allow-newer
forCabal
until this is official released).
- The type of DhallToCabal.license has changed to
Dhall.Type (Either SPDX.License Cabal.License)
to accomodate Cabal 2.2.
-
Increase upper-bound of base to allow 4.11.
-
Increase upper-bound of tasty to allow 1.1.
-
Switch to Dhall 1.14.0.
-
dhall-to-cabal: Fix tracking which branches are already true or false in conditionals. Dhall expressions with lots of conditions previously produced Cabal files that did not correctly match the requested conditions. See #56, #53 and #55 for more information.
Thank you to @jneira and @quasicomputational for helping identify and fix this bug.
-
cabal-to-dhall: Rewrite conditional handling to avoid hangs with complicated ones. See #54 and linked issues.
-
Added a warning to generated
.cabal
files against hand-editing. -
cabal-to-dhall
now pretty prints the resulting Dhall. -
The signature of
CabalToDhall.cabalToDhall
has changed: it now takes the location of theprelude.dhall
andtypes.dhall
to import as a parameter. -
Upgrade to Cabal 2.2. This introduces SPDX license identifiers and Dhall functionality to manipulate them; see <golden-tests/dhall-to-cabal/SPDX.dhall> for a (convoluted) demonstration.
-
prelude.defaults.Executable
has lost itsmain-is
field, as it makes little sense to have an executable without it. -
--print-type
now omits the lengthy definition ofExtension
, instead importing it from the prelude.--self-contained
is a new switch to disable this behaviour.
Small packaging only tweaks:
- Missing README.md
- Missing author
The irony of this change is not lost on me.
First release!