1This file contains a summary of changes to Haskell.nix and `nix-tools`
5* Project arguments are now validated with the Nix module system.
6 If unexpected argments are passed to a project function this may now
10* Add `.dwarf` to build any component with DWARF dubug info on linux
12* Pass `enableDWARF` to `shellFor` for to get a shell where all the
13 components are the `.dwarf` ones.
16* `ghcOptions` has been moved from package and is now a list of strings.
17 old: packages.x.package.ghcOptions = "someGHCoption";
18 new: packages.x.ghcOptions = ["someGHCoption"];
19 To specify ghcOptions for all packages:
20 ghcOptions = ["someGHCoption"];
21 For a single component:
22 packages.x.compoents.library.ghcOptions = ["someGHCoption"];
25* Removed older versions of haskell-language-server from custom-tools
26 (0.8.0 is in hackage so we can still get that version).
29* Added support for cross package refs (with a project). Relative
30 directory references between packages within a project should now
32* Added `includeSiblings` to `cleanSourceWith`. When `true` it
33 prevents the `subDir` arg from causing filtering of other directories.
34* Added `keepGitDir` to `cleanGit` to allow `.git` directory to be kept
35 (useful for components that use the `githash` package).
38* Renamed `otherShells` arg for `shellFor` to `inputsFrom
41* The `shellFor` `makeConfigFiles` `ghcWithHoogle` and `ghcWithPackages`
42 functions have been removed from `project.hsPkgs`. Instead access
43 them from `project` itself (e.g. change `p.hsPkgs.shellFor` to `p.shellFor`).
44* The reflex-platform like `project.shells.ghc` has been removed.
45 If needed, add something like `p // { shells.ghc = p.shellFor {} }`
49* Added `${targetPrefix}cabal` wrapper script for running cross
50 compilers in `shellFor`.
51* `otherShells` arg added to `shellFor`.
54* Passing `tools.hoogle` to `shellFor` with a value suitable for `haskel-nix.tool` will
55 use the specified `hoogle` inside `shellFor`. This allows for materialization
59* Passing `compiler-nix-name` to project functions for `stack.yaml`
60 based projects now overrides the compiler used (was ignored before).
63* Added the ability to generate coverage reports for packages and
65* Added the `doCoverage` module option that allows users to choose
66 packages to enable coverage for.
67* Added a `doCoverage` flag to the component builder that outputs HPC
68 information when coverage is enabled.
69* Added test for coverage.
72* Removed `components.all`, use `symlinkJoin` on components.exes or
73 `shellFor` if you need a shell.
74* Added `components` argument to `shellFor`.
77* Added GHC 8.8.4 and replaced 8.8.3 in tests and as the ghc
78 used to build nix-tools for stack projects.
81* Changed `haskell-nix.roots` and `p.roots` to single derivations.
84* Removed `sources.nixpkgs-default`, use `sources.nixpkgs` instead.
85* Removed `./nixpkgs` directory, use `(import ./. {}).sources`
86 or `./nix/sources.nix` instead.
87* Removes V1 interface for details on how to fix old code see:
88 https://github.com/input-output-hk/haskell.nix/issues/709
89* Removed defaultCompilerNixName.
90* cabalProject, cabalProject', hackage-project and hackage-package
91 now require a `compiler-nix-name` argument.
92* `haskell-nix.tool` and `.tools` now require a `compiler-nix-name` argument.
93 New functions `p.tool` and `p.tools` (where p is a project) do not.
94 Like `shellFor { tools = ... }` they will use the compiler nix name
95 from the project (including stack projects where it is derived from
97* `haskell-nix.alex` and `haskell-nix.happy` have been removed. Use
98 `p.tool "alex" "3.2.5"` or `shellFor { tools = { alex = "3.2.5"; } }`.
99* `haskell-nix.nix-tools` -> `haskell-nix.nix-tools.ghc883` (it includes
101* `haskell-nix.cabal-install` ->
102 `p.tool "cabal" "3.2.0.0"` or `shellFor { tools = { cabal = "3.2.0.0"; } }`
103* `haskell-nix.haskellNixRoots` -> `haskell-nix.roots ghc883` or `p.roots`
106* Haddock docs are now built in their own derivation when needed (not as part
107 of the component build).
108 They should build automatically when something (such as `shellFor`) attempts
109 to accesses the `.doc` attribute of component.
112* Fix overlays/bootstrap.nix to provide LLVM 6, not LLVM 5, to ghc-8.6.X compilers.
115 * Changed the `cleanSourceHaskell` to accept an attrset of `src` and
116 (optional) `name` parameters. This allows you to keep the source
117 derivation name constant, so that your builds are always
118 cached. Usage of `cleanSourceHaskell` will need to be updated.
121 * [`shellFor`](https://input-output-hk.github.io/haskell.nix/reference/library/#shellfor) no longer sets `CABAL_CONFIG` by default.
122 This avoids surprising users, but means that Cabal may select a plan which is different to your Haskell.nix package set.
123 If you would like the old behaviour, use `shellFor { exactDeps = true; }`.
126 * Add the [`haskellLib.collectComponents`](https://input-output-hk.github.io/haskell.nix/reference/library/#haskellLib) function.
129 * Add `ghcWithPackages` and `ghcWithHoogle` to hsPkgs ([documentation](https://input-output-hk.github.io/haskell.nix/reference/library/#package-set-functions).
130 * Benchmark components can now build successfully.
131 * Reduced the closure bloat of nix-tools, and added closure size limit to CI.
132 * Added more reference documentation and set up auto-generated
133 documentation for [Module Options](https://input-output-hk.github.io/haskell.nix/reference/modules/).
134 * Miscellaneous bug fixes.
137 * Several additions to the [documentation](https://input-output-hk.github.io/haskell.nix/).
138 * More information about getting nix-tools, Haskell.nix, pinning.
139 * Updates the stack-to-nix and cabal-to-nix guides.
140 * Adds a section on development environments.
141 * Adds a little information about cross compilation.
142 * Adds a (partially complete) reference section (command line manuals, library reference).
143 * Symlinks the changelog into the documentation pages.
146 * Added `shellFor` function to package set.
149 * Added `snaphots` and `haskellPackages` attributes to the
150 Haskell.nix top-level.
153 * Add the `cleanSourceHaskell` utility function to the Haskell.nix
157 * Add the `callCabalProjectToNix` function, which uses "import from
158 derivation" (IFD) so that nix-tools doesn't need to be run
160 * The `hackage.nix` update process has changed, so that Cabal index
161 state hashes are also included in the generated repo.
164 * Remove Travis CI in favour of Buildkite.
167 * Add the `callStackToNix` function, which uses "import from
168 derivation" (IFD) so that `stack-to-nix` doesn't need to be run
172 * `overlays` was renamed to `extras` in
173 [#79](https://github.com/input-output-hk/haskell.nix/pull/79)
174 to prevent confusion between the notion of Nix overlays.
176 Therefore `plan-pkgs` and `stack-pkgs` as generated by `plan-to-nix` and `stack-to-nix` will
177 expose `extras` instead of `overlay`. Similarly `mkStackPkgSet`, `mkPkgSet` and `mkCabalProjectPkgSet`
178 take a `pkg-def-extras` instead of `pkg-def-overlay` argument. If you are using `iohk-nix`, the
179 `iohk-overlay` was parameter was renamed to `iohk-extras`.
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list