This file contains a summary of changes to Haskell.nix and nix-tools
that will impact users.
- Removed
components.all
, usesymlinkJoin
on components.exes orshellFor
if you need a shell. - Added
components
arguemnt 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.roots
andp.roots
to single derivations.
- Removed
sources.nixpkgs-default
, usesources.nixpkgs
instead. - Removed
./nixpkgs
directory, use(import ./. {}).sources
or./nix/sources.nix
instead. - 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-name
argument. haskell-nix.tool
and.tools
now require acompiler-nix-name
argument. New functionsp.tool
andp.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.alex
andhaskell-nix.happy
have 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 ghc883
orp.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.doc
attribute of component.
- Fix overlays/bootstrap.nix to provide LLVM 6, not LLVM 5, to ghc-8.6.X compilers.
- Changed the
cleanSourceHaskell
to accept an attrset ofsrc
and (optional)name
parameters. This allows you to keep the source derivation name constant, so that your builds are always cached. Usage ofcleanSourceHaskell
will need to be updated.
shellFor
no longer setsCABAL_CONFIG
by 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.collectComponents
function.
- Add
ghcWithPackages
andghcWithHoogle
to 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
shellFor
function to package set.
- Added
snaphots
andhaskellPackages
attributes to the Haskell.nix top-level.
- Add the
cleanSourceHaskell
utility function to the Haskell.nix top-level.
- Add the
callCabalProjectToNix
function, which uses "import from derivation" (IFD) so that nix-tools doesn't need to be run manually. - The
hackage.nix
update 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
callStackToNix
function, which uses "import from derivation" (IFD) so thatstack-to-nix
doesn't need to be run manually.
-
overlays
was renamed toextras
in #79 to prevent confusion between the notion of Nix overlays.Therefore
plan-pkgs
andstack-pkgs
as generated byplan-to-nix
andstack-to-nix
will exposeextras
instead ofoverlay
. SimilarlymkStackPkgSet
,mkPkgSet
andmkCabalProjectPkgSet
take apkg-def-extras
instead ofpkg-def-overlay
argument. If you are usingiohk-nix
, theiohk-overlay
was parameter was renamed toiohk-extras
.