This file contains a summary of changes to Haskell.nix and nix-tools
that will impact users.
- Added support for cross package refs (with a project). Relative directory references between packages within a project should now work.
- Added
includeSiblingstocleanSourceWith. Whentrueit prevents thesubDirarg from causing filtering of other directories. - Added
keepGitDirtocleanGitto allow.gitdirectory to be kept (useful for components that use thegithashpackage).
- Renamed
otherShellsarg forshellForto `inputsFrom
- The
shellFormakeConfigFilesghcWithHoogleandghcWithPackagesfunctions have been removed fromproject.hsPkgs. Instead access them fromprojectitself (e.g. changep.hsPkgs.shellFortop.shellFor). - The reflex-platform like
project.shells.ghchas been removed. If needed, add something likep // { shells.ghc = p.shellFor {} }toshell.nix.
- Added
${targetPrefix}cabalwrapper script for running cross compilers inshellFor. otherShellsarg added toshellFor.
- Passing
tools.hoogletoshellForwith a value suitable forhaskel-nix.toolwill use the specifiedhoogleinsideshellFor. This allows for materialization ofhoogle.
- Passing
compiler-nix-nameto project functions forstack.yamlbased projects now overrides the compiler used (was ignored before).
- Added the ability to generate coverage reports for packages and projects.
- Added the
doCoveragemodule option that allows users to choose packages to enable coverage for. - Added a
doCoverageflag to the component builder that outputs HPC information when coverage is enabled. - Added test for coverage.
- Removed
components.all, usesymlinkJoinon components.exes orshellForif you need a shell. - Added
componentsargument toshellFor.
- Added GHC 8.8.4 and replaced 8.8.3 in tests and as the ghc used to build nix-tools for stack projects.
- Changed
haskell-nix.rootsandp.rootsto single derivations.
- Removed
sources.nixpkgs-default, usesources.nixpkgsinstead. - Removed
./nixpkgsdirectory, use(import ./. {}).sourcesor./nix/sources.nixinstead. - Removes V1 interface for details on how to fix old code see: input-output-hk#709
- Removed defaultCompilerNixName.
- cabalProject, cabalProject', hackage-project and hackage-package
now require a
compiler-nix-nameargument. haskell-nix.tooland.toolsnow require acompiler-nix-nameargument. New functionsp.toolandp.tools(where p is a project) do not. LikeshellFor { tools = ... }they will use the compiler nix name from the project (including stack projects where it is derived from the resolver).haskell-nix.alexandhaskell-nix.happyhave been removed. Usep.tool "alex" "3.2.5"orshellFor { tools = { alex = "3.2.5"; } }.haskell-nix.nix-tools->haskell-nix.nix-tools.ghc883(it includes the hpack exe now).haskell-nix.cabal-install->p.tool "cabal" "3.2.0.0"orshellFor { tools = { cabal = "3.2.0.0"; } }haskell-nix.haskellNixRoots->haskell-nix.roots ghc883orp.roots
- Haddock docs are now built in their own derivation when needed (not as part
of the component build).
They should build automatically when something (such as
shellFor) attempts to accesses the.docattribute of component.
- Fix overlays/bootstrap.nix to provide LLVM 6, not LLVM 5, to ghc-8.6.X compilers.
- Changed the
cleanSourceHaskellto accept an attrset ofsrcand (optional)nameparameters. This allows you to keep the source derivation name constant, so that your builds are always cached. Usage ofcleanSourceHaskellwill need to be updated.
shellForno longer setsCABAL_CONFIGby default. This avoids surprising users, but means that Cabal may select a plan which is different to your Haskell.nix package set. If you would like the old behaviour, useshellFor { exactDeps = true; }.
- Add the
haskellLib.collectComponentsfunction.
- Add
ghcWithPackagesandghcWithHoogleto hsPkgs (documentation. - Benchmark components can now build successfully.
- Reduced the closure bloat of nix-tools, and added closure size limit to CI.
- Added more reference documentation and set up auto-generated documentation for Module Options.
- Miscellaneous bug fixes.
- Several additions to the documentation.
- More information about getting nix-tools, Haskell.nix, pinning.
- Updates the stack-to-nix and cabal-to-nix guides.
- Adds a section on development environments.
- Adds a little information about cross compilation.
- Adds a (partially complete) reference section (command line manuals, library reference).
- Symlinks the changelog into the documentation pages.
- Added
shellForfunction to package set.
- Added
snaphotsandhaskellPackagesattributes to the Haskell.nix top-level.
- Add the
cleanSourceHaskellutility function to the Haskell.nix top-level.
- Add the
callCabalProjectToNixfunction, which uses "import from derivation" (IFD) so that nix-tools doesn't need to be run manually. - The
hackage.nixupdate process has changed, so that Cabal index state hashes are also included in the generated repo.
- Remove Travis CI in favour of Buildkite.
- Add the
callStackToNixfunction, which uses "import from derivation" (IFD) so thatstack-to-nixdoesn't need to be run manually.
-
overlayswas renamed toextrasin #79 to prevent confusion between the notion of Nix overlays.Therefore
plan-pkgsandstack-pkgsas generated byplan-to-nixandstack-to-nixwill exposeextrasinstead ofoverlay. SimilarlymkStackPkgSet,mkPkgSetandmkCabalProjectPkgSettake apkg-def-extrasinstead ofpkg-def-overlayargument. If you are usingiohk-nix, theiohk-overlaywas parameter was renamed toiohk-extras.