Commit graph

97 commits

Author SHA1 Message Date
Viacheslav Lotsmanov 707671dae2
haskellPackages.shellFor: Fix typo in the comments
“hpkgs” → “haskellPkgs”
2021-07-12 11:35:09 +09:00
Joe Hermaszewski a3830da1aa haskell: default name to "" when root isn't a path in developPackage
See https://github.com/NixOS/nixpkgs/issues/103062
2021-05-08 18:22:54 +08:00
Dennis Gosnell 987b80a824
Merge pull request #109059 from jkachmar/haskell-generic-builder-args-modifier
Adds Haskell generic builder argument modifier
2021-01-27 22:37:41 +09:00
Ben Siraphob 2f78ee7e81 pkgs/development: stdenv.lib -> lib 2021-01-24 00:16:29 +07:00
Peter Simons c3792f6cdd Consistently use 'lib' instead of 'stdenv.lib' in the Haskell infrastructure.
Part of https://github.com/NixOS/nixpkgs/issues/108938.
2021-01-22 20:34:21 +01:00
Joe Kachmar 95d0e6c1b8 Adds Haskell generic args builder documentation 2021-01-14 11:41:31 -05:00
Joe Kachmar 335f1fb25f Adds Haskell generic builder argument modifier
This is a new argument to the Haskell builder's 'shellFor' which allows
the caller to adjust the 'genericBuilderArgs' after they are built.

One immediate application for this is that it allows users to disable
tests, enable benchmarks, etc. for _all_ packages in a given Haskell
package set.

This is often useful when so many of the derivations in the
package set have changed that most of the cache has been invalidated,
and there is no need for the user to run tests on their dependencies,
but they still want these dependencies available in their 'nix-shell'
environment for some package-under-development.
2021-01-11 18:00:21 -05:00
Joe Hermaszewski 49e9758ef3 haskell: Add cabal2nixOptions to developPackage
Also neaten documentation slightly
2020-11-13 21:37:57 +01:00
Joe Hermaszewski a32c231007 haskell: add withHoogle option to developPackage 2020-11-13 21:37:57 +01:00
Joe Hermaszewski 07e697d22d haskell: improve documentation on ghcWithHoogle and developPackage 2020-11-13 21:37:57 +01:00
(cdep)illabout d3fb9a25b3 haskellPackages.shellFor: add a doBenchmark argument for enabling benchmarks deps 2020-11-06 21:37:06 +01:00
Dennis Gosnell d26890fd15 haskellPackages.shellFor: fix spelling and grammar mistakes
Co-authored-by: maralorn <malte.brandy@maralorn.de>
2020-11-06 21:37:05 +01:00
(cdep)illabout 17eee57642 haskellPackages.shellFor: improve documentation 2020-11-06 21:37:05 +01:00
Georges Dubus 2645e1a1eb cabal2nix: split into a lightweight version and a wrapper
Current, the `cabal2nix` derivation contains both the executable, and a wrapper
that adds `nix` and `nix-prefetch-scripts`, which are required for some
features.

However, when calling `callCabal2nix` to create a derivation from a cabal file
at evaluation time,
these features are not actually used, but the huge closure of
`nix-prefetch-scripts` (which includes multiple vcs, as well as python and perl)
still needs to be fetched.

This commit splits cabal2nix into a lightweight version that is a standalone
static binary (`cabal2nix-unwrapped`), and a wrapper that includes the proper
dependencies in the path for full usage of the command line
utility (`cabal2nix`).

This commit also switches to the default ghc, to reduce the likelyhood of
building a different ghc when calling `callCabal2nix`.
2020-03-13 20:18:14 +01:00
John Ericson 196682b175 Merge remote-tracking branch 'upstream/master' into work-on-multi-shellFor 2020-02-22 17:34:08 -05:00
John Ericson 1c07ee7925 haskell shellFor: Fix hoogle 2020-02-22 13:10:30 -05:00
Matthew Bauer 07db0b248c Merge remote-tracking branch 'obsidiansystems/work-on-multi-shellFor' 2020-01-17 18:00:27 -05:00
Jacquin Mininger 7d67db3919 shellFor: Refactor for consistency and cross
This makes it work like work-on-multi from Reflex Platform. In
particular, rather than making `.env` from `shellFor`, we make `.env`
the primitive, and `shellFor` works by combining together the arguments
of all the packages to `generic-builder` and taking the `.env` of the
resulting mashup-package.

There are 2 benefits of this:

1. The dependency logic is deduplicated. generic builder just concatted
   lists, whereas all the envs until now would sieve apart haskell and
   system build inputs. Now, they both decide haskell vs system the same
   way: according to the argument list and without reflection.
   Consistency is good, especially because it mean that if the build
   works, the shell is more likely to work.

2. Cross is handled better. For native builds, because the
   `ghcWithPackages` calls would shadow, we through both the regular
   component (lib, exe, test, bench) haskell deps and Setup.hs haskell
   deps in the same `ghcWithPackages` call. But for cross builds we use
   `buildPackages.ghcWithPackages` to get the setup deps. This ensures
   everything works correctly.
2020-01-17 10:46:29 -05:00
Jack Kelly 9f41d8a9d0 callHackageDirect: correct type signature 2019-11-20 16:36:33 +10:00
John Ericson 66a9f39817 haskellSrc2nix
Since [1], cabal2nix has been able to parse full platform triples. We
need this for when the system doesn't say enough info (e.g. android).

[1]: 0bb88f0009 (diff-d9172aeec4039eef8cfcc8a2ab6c0677R143)
2019-10-15 11:23:33 -04:00
John Ericson d6f1e70560 haskell: Speed up cross callHackage by using native source
The extract of code from hackage is the same on all platforms.
2019-10-01 12:46:50 -04:00
volth f3282c8d1e treewide: remove unused variables (#63177)
* treewide: remove unused variables

* making ofborg happy
2019-06-16 19:59:05 +00:00
Robin Gloster 6cf583cf2f
Merge pull request #60406 from JohnAZoidberg/remove-isnull
treewide: Remove usage of isNull
2019-05-18 09:36:24 +00:00
Bryan Richter 6a74ba96fd
Add minimal docs for callHackage and friends
Specifically haskellSrc2nix, callHackage, and callHackageDirect. Other
functions should probably also be documented, but it's at least a start.
2019-05-14 08:18:02 +03:00
Daniel Schaefer 786f02f7a4 treewide: Remove usage of isNull
isNull "is deprecated; just write e == null instead" says the Nix manual
2019-04-29 14:05:50 +02:00
Matthew Bauer eaa5e85b35 haskell: add more hackage mirrors, use mirrors in more places
Fixes #58971
2019-04-05 13:51:56 -04:00
Silvan Mosberger 2075b3715b Revert "shellFor: Don't suck in src to compare to deps. [Fixes #51079]" 2019-02-15 12:18:44 +01:00
Will Fancher 24ccaf65df shellFor: Don't suck in src to compare to deps. [Fixes #51079] 2019-01-29 16:29:18 -05:00
Doug Beardsley 0cb5b013c0 Overrides can be passed to callHackageDirect 2019-01-27 12:28:01 -05:00
Doug Beardsley 83624524e2 Add a callHackage variant that doesn't require all-cabal-hashes 2018-12-25 12:19:24 -05:00
Guillaume Bouchard 62882d8cd2 haskellSrc2nix: disallow substitutes
Fix #49818. See the bug for more details.

The work done by haskellSrc2nix is usually lightweight, but needs to
be done each time a cabal file change. This triggers unexpected
network activity for a cache query which results most of the time on a
cache miss.

By disabling substitutes we:

- avoid the, mostly useless, binary cache query
- avoid unexpected network failure when users change a cabal file and
  try to rebuild without connectivity.
2018-11-22 16:24:13 +01:00
Doug Beardsley c3c82aa675 Update developPackage documentation 2018-10-17 14:44:07 -04:00
Doug Beardsley d36c55a530 Add name parameter to developPackage 2018-10-16 09:38:57 -04:00
Silvan Mosberger 5067773e39 haskellPackages.*.env: Use shellFor 2018-10-03 18:00:29 +02:00
Silvan Mosberger 56da05d459 haskellPackages.shellFor: Clean and fixup
- Now correctly sets NIX_GHC* env vars
2018-10-03 18:00:29 +02:00
John Ericson 9f768ff43c
Merge pull request #46795 from obsidiansystems/late-bind-buildHaskellPackages
haskell infra: "late bind" `buildHaskellPackages`
2018-09-17 16:20:56 -04:00
John Ericson 8da28de0e8 haskell infra: "late bind" buildHaskellPackages
This way it can be overridden.
2018-09-17 16:01:26 -04:00
Bas van Dijk d05a8bb410
Merge pull request #44424 from dhess/callCaball2nixWithOption
haskell-modules: add callCabal2nixWithOptions.
2018-09-11 09:00:03 +02:00
Shea Levy b00b2363b3
haskellPackages.shellFor: fix after recent getHaskellBuildInputs fix.
Fixes #45318
2018-08-19 15:17:35 -04:00
Bas van Dijk e9b7e73120
Merge pull request #44356 from ElvishJerricco/callcabal2nix-passthru-deriver
callCabal2nix: Passthru deriver
2018-08-11 10:34:06 +02:00
Will Fancher 08b766921d callCabal2nix: Passthru deriver 2018-08-10 11:38:09 -04:00
Drew Hess 4abb8be7ab
haskell-modules: add callCabal2nixWithOptions.
Fixes #44377.
2018-08-03 12:55:29 -07:00
Will Dietz da5383006d haskell-modules: only include glibc locales when using glibc
Fixes #43665.
Hopefully. :)
2018-07-17 08:44:17 -05:00
John Ericson f27f491784 Haskell infra: Do callPackage splicing 2018-07-09 16:39:37 -04:00
John Ericson f379be939c haskell infra: Use self.ghc rather than closing over initial value 2018-06-07 14:27:44 -04:00
John Ericson ecabdfd12f
Merge pull request #41330 from obsidiansystems/haskellSrc2nix-overriding
haskell infra: Allow overriding `haskellSrc2nix`
2018-05-31 16:42:16 -04:00
John Ericson 58ce59dd96 haskell infra: Allow overriding haskellSrc2nix 2018-05-31 16:29:02 -04:00
Peter Simons 07a045922d
Merge pull request #40710 from ElvishJerricco/overrideCabal-getHaskellBuildInputs
Make getHaskellBuildInputs / shellFor work with overrideCabal (Fixes #40266)
2018-05-22 10:37:26 +02:00
John Wiegley d33322d449
haskellPackages.developPackage: Add a defaulted provideDrv argument
The purpose of this argument is to allow you to get at the derivation (rather
than it's env) even when in the evaluation context of a nix-shell invocation.
2018-05-18 13:04:18 -07:00
Will Fancher 5523ec8f3c Make getHaskellBuildInputs / shellFor work with overrideCabal 2018-05-17 20:35:53 -04:00