Releases: srid/haskell-flake
Releases · srid/haskell-flake
0.5.0
- Breaking changes
- #221: Switch from
buildFromCabalSdisttobuildFromSdist, to allow using non-standard package sets (whereincabal-installis otherwise built without using user's overrides)
- #221: Switch from
- Enhancements
- Fixes
- #222: Improve
cabal.projectparser by handling files not ending with newline - #271, #223: Change all
types.attrsOftotypes.lazyAttrsOf. If you uselib.mkIfforattrsOfvalues (notsubmoduleoptions), uselib.optionalAttrsinstead. This fixes #270 (basePackages) and improves performance. - #296: Fix
removeConfigureFlagsto actually work. - #297: Fix
brokenVersionsto actually work.
- #222: Improve
0.4.0
- #162: Completely new way to override Haskell packages: removed
overridesandsource-overrides. Usepackagesto specify your source overrides; usesettingsto override individual packages in modular fashion (like NixOS modules). See https://zero-to-flakes.com/haskell-flake/dependency Additional changes include:- Add
package.<name>.cabal.executablesreferring to the executables in a package. This is auto-detected by parsing the Cabal file. - Add
packages.<name>.local.*to determine of a package is a local package or not. - Add
projectFlakeNameoption (useful in debug logging prefix) flake.haskellFlakeProjectModules: Dropped all defaults, except theoutputmodule, which now exportspackagesandsettings. Added adefaults.projectModules.outputoption that allows the user to override this module, or directly access the generated module.- Add
project.config.defaults.settings.defaultdefining sensible defaults for local packages. - Add
project.config.defaults.enableto turn off all default settings en masse. - Regressions in this PR: #169, #178
- Add
- #175:
devShell: Add optionsbenchmark(to enable benchmark dependencies) andhoogle(whether to include Hoogle in development shell) - #189: Use
types.strinstead oftypes.stringin option types
0.3.0
- #134: Add
autoWireoption to control generation of flake outputs - #137: Expose cabal executables as flake apps. Add a corresponding
outputs.appsoption, while theoutputs.localPackagesoption is renamed tooutputs.packages(it now contains package metadata, including packages and its executables).- #151: Use
lib.getBinto get the bin output
- #151: Use
- #148: Remove automatic hpack->cabal generation. Use
pre-commit-hooks.nixinstead. - #149: Fix unnecessary re-runs of cabal2nix evaluation. Add a
debugoption to have haskell-flake produce diagnostic messages. - #153: Add
config.defaultssubmodule to allow overriding the default devShell tools added by haskell-flake
0.2.0
- New features
- #68, #79, #106: Add support for project modules that can be imported in
imports. Export them inflake.haskellFlakeProjectModules. Default modules are exported by default, to reuse overrides and local packages from external flakes. For details, see https://haskell.flake.page/modules- #67:
overrideswill be combined usingcomposeManyExtensions, however their order is arbitrary. This is an experimental feature, and a warning will be logged.
- #67:
- Dev shell
- #63, #52: Add
config.haskellProjects.${name}.outputscontaining all flake outputs for that project; as well as (#102)finalPackagesandlocalPackages. - #49 & #91 & #110: The default value for the
packagesoption is now determined from thecabal.projectfile. If it doesn't exist, it looks for top-level.cabalfile orpackage.yaml. Better hpack support throughout. - #100:
source-overridesoption now supports specifying Hackage versions as string. - #114: Prevent unnecessary Nix rebuilds of packages in sub-directories when parent contents change.
- #68, #79, #106: Add support for project modules that can be imported in
- API changes
- #37: Group
buildTools(renamed totools),hlsCheckandhlintCheckunder the newdevShellsubmodule option - #64: Remove hlintCheck (use treefmt-nix instead)
- #52: Rename
haskellPackagestobasePackages. Overlays are applied on top ofbasePackage-- usingsource-overrides,overrides,packagesin that order -- to producefinalPackages. - #69: The default flake template creates
flake.nixonly, while the#exampleone creates the full Haskell project template.
- #37: Group