Commit Graph

67 Commits

Author SHA1 Message Date
Hamish Mackenzie c83b33f419 Split checking hydra eval on buildkite (#1633) 2022-08-31 12:15:24 +02:00
Hamish Mackenzie 638ed961a7 Remove nixpkgs 21.11 from CI and reduce tests (#1597)
The time taken to run CI is getting very long.  Hopefully removing nixpkgs 21.11 and no longer runs full tests for GHC 9.0.2 well make room for GHC 9.4.1.

Uses nixpkgs-unstable for broken out jobs.
2022-08-18 19:33:33 +12:00
Hamish Mackenzie fc124c83a8 ifdLevel 3 2022-05-13 10:59:32 +12:00
Hamish Mackenzie 20ae99c9e2 ifdLevel 2 2022-05-13 08:35:55 +12:00
Hamish Mackenzie a226667e1a ifdLevel 1 2022-05-13 00:32:26 +12:00
Hamish Mackenzie fae257efd7 ifdLevel 0 2022-05-11 23:20:11 +12:00
Hamish Mackenzie 82832676a1 ifdLevel 3 2022-04-08 18:52:37 +12:00
Hamish Mackenzie aaae688f47 ifdLevel 2 2022-04-08 15:11:50 +12:00
Hamish Mackenzie aef9e94377 ifdLevel 1 2022-04-08 13:09:22 +12:00
Hamish Mackenzie 31eea6644d ifdLevel 0 (for hydra sigh) 2022-04-07 22:10:42 +12:00
Hamish Mackenzie dbb6409cab Add windows-secp256k1 binary distribution (#1424) 2022-04-04 16:54:07 +12:00
Hamish Mackenzie 59799a29cb ifdLevel 3
Got set to 1 inadvertently when combining the testing of two PRs and then merging them separately.
2022-01-09 03:50:48 +13:00
Hamish Mackenzie 6101c6ea7b Add GHC 9.0.2 (#1338)
Co-authored-by: Ollie Charles <ollie@ocharles.org.uk>
2022-01-09 03:10:05 +13:00
Hamish Mackenzie e95a1f0dac Update nixpkgs pins. Turn off CI for nixpkgs-2105 (#1308)
* Turn off haskell.nix tests for nixpkgs-2105
* nix flake lock --update-input the nixpkgs pins
* Update docs
2021-12-13 18:05:15 +13:00
Hamish Mackenzie 91ec10c032 ifdLevel 3 2021-11-13 23:07:19 +13:00
Hamish Mackenzie 24b421cbfc Add ghc 9.2.1 and update internal cabal to 3.6.2 (#1286) 2021-11-13 12:43:04 +13:00
Hamish Mackenzie 0f89172fe0 ifdLevel 2
Eval is failing and this will reduce load on hydra servers
2021-11-12 20:15:58 +13:00
Hamish Mackenzie 1f4c2c9b08 Add GHC 8.10.7 (#1220) 2021-09-01 22:43:31 +12:00
Teo Camarasu f624ca5662 Add GHC-8.10.6 (#1214)
Add GHC-8.10.6

Co-authored-by: Peter Becich <peter@simspace.com>
Co-authored-by: Teo Camarasu <teofilcamarasu@gmail.com>
Co-authored-by: Hamish Mackenzie <Hamish.K.Mackenzie@gmail.com>
2021-08-31 04:19:40 +12:00
Hamish Mackenzie d5d304d5b5 Flakify all inputs (#1180)
* Include dependencies of haskell.nix that were tracked in `nix/sources.json`
  as flake inputs (`flake.lock` replaces `nix/sources.json`).
* Use `flake-compat` to continue to provide a compatible interface for non
  flake projects.

Co-authored-by: Alexander Bantyev <balsoft@balsoft.ru>
Co-authored-by: Shea Levy <shea@shealevy.com>
2021-08-06 15:54:39 +12:00
Hamish Mackenzie a28099f2f6 Put ifdLevel back to 3 (#1187)
I forgot to bump it back after setting it to 2 in #1184
2021-08-03 13:43:06 +12:00
Rodney Lorrimar a4234bfaa2 Bump nix-tools to PR input-output-hk/nix-tools#98 branch (#1184)
Adds a fix for this error when regenerating files with `stack-to-nix`:
```
stack-to-nix: .stack-to-nix.cache: openFile: resource busy (file is locked)
```
2021-08-03 12:01:42 +12:00
Hamish Mackenzie 674f5b0a3d Better support for source-repository-packages, only include planned components and pick latest packages (#1166)
This change updates to the latest `nix-tools` to get the following fixes (there are 3 PRs in nix-tools, but just the one in haskell.nix to avoid having to update the materialized files multiple times):

## Better support for source repository packages

* https://github.com/input-output-hk/nix-tools/pull/107

Currently these are replaced by the `cabalProject` functions with regular `packages:` before running cabal configure.  Cabal does not treat these the same (the setting of `tests:` and `benchmarks:` in the `cabal.project` file):

* The plan found by `cabalProject` may not match the one used when running `cabal`.
* The performance of the solver may not be consistent with running `cabal`.

This change replaces `source-repository-package` with another `source-repository-package` pointing at a minimal git repo.

## Only include planned components

* https://github.com/input-output-hk/nix-tools/pull/108

Only the components in the `plan.json` are now included in the haskell.nix cabal projects.  This avoids missing dependencies attempting to build components that were not in the plan.  Should fix #993.

## Pick latest packages

* https://github.com/input-output-hk/nix-tools/pull/109

When the same package occurs more than once in a `plan.json` file (perhaps because it is needed both by the project itself and by one of the `setup` dependencies or `build-tool-dependencies` of the project) the latest version will now be the one picked by haskell.nix. This is a work around for a common issue with `cabal-doctest` when cross compiling to windows (an old version of Win32 is used even if a newer one was required by the projects `constraints`).
2021-07-23 14:27:56 +12:00
Moisés Ackerman 2b842f282c Add nixpkgs-2105 (#1133)
* Add nixpkgs-2105

* [WIP] Drop nixpkgs-2003

* Update all the nixpkgs pins

* Default to nixpkgs-2009 for build.nix

* Update individual jobs to nixpkgs 2105

Co-authored-by: Hamish Mackenzie <Hamish.K.Mackenzie@gmail.com>
2021-06-23 13:28:52 +12:00
Hamish Mackenzie a5b74bf002 niv update nixpkgs-unstable and add ghc 8.10.5 (#1121) 2021-06-15 19:50:45 +12:00
Hamish Mackenzie dc49a0f404 ifdLevel 3 2021-05-24 16:47:37 +12:00
Hamish Mackenzie f5be1a7ca9 ifdLevel 2 2021-05-23 23:49:32 +12:00
Hamish Mackenzie dcadec4a2d ifdLevel 1 2021-05-23 23:26:59 +12:00
Hamish Mackenzie 986a800713 Try to fix qAddDependentFile for windows (#1116)
Co-authored-by: Moritz Angermann <moritz.angermann@gmail.com>
2021-05-22 06:54:19 +12:00
Hamish Mackenzie 197eddd4a1 ifdLevel 1 2021-05-20 13:42:23 +12:00
Hamish Mackenzie 1c77a16e45 ifdLevel 3 2021-05-19 10:37:02 +12:00
Hamish Mackenzie 5daad7b286 ifdLevel 2 2021-05-19 00:30:11 +12:00
Hamish Mackenzie 05f999da80 ifdLevel 1 2021-05-18 23:04:44 +12:00
Hamish Mackenzie 7e5eeaabef ifdLevel 2 2021-05-18 22:24:03 +12:00
Hamish Mackenzie 31aa9319b0 ifdLevel 1 2021-05-18 19:12:25 +12:00
Hamish Mackenzie 72beef11fc ifdLevel 3 2021-03-21 21:52:11 +13:00
Hamish Mackenzie ab909a8a5c ifdLevel 2 2021-03-21 19:18:07 +13:00
Hamish Mackenzie f600106883 ifdLevel 1 (hydra eval is building ghc for some reason) 2021-03-20 22:55:22 +13:00
Hamish Mackenzie cd91692380 GHC 8.10.4 (#1033)
* Adds GHC 8.10.4 support

* Drops GHC 8.8.3, 8.10.2 and 8.10.3 from CI

* Adds warning to encourage people to use less buggy ghc
2021-02-09 14:30:32 +13:00
Hamish Mackenzie 0f7c5afc41 Add ghc 8.10.3 (#980) 2021-01-11 18:47:56 +13:00
Hamish Mackenzie e02d5a8ca4 Smaller required jobs (#990)
We still seem to be getting some OOM errors.  This is likely to be
because some of the required jobs are still very large (with multiple
cross compilation target platforms). Hopefully breaking these out will
help.
2021-01-06 17:40:15 +13:00
Michael Peyton Jones f6bc2f7315 Better 'required' job that includes everything (#976)
This requires explicitly identifying the things tht don't work and
removing them. I used our own `disabled` attribute, because `broken` is
weird and breaks evaluation, which isn't really what we want.

Cuts the number of jobs from over 2000 to 216. This seems to greatly
speeds up the time it takes small changes (where most stuff remains the
same) to be processed by hydra.

Uses https://github.com/NixOS/hydra/issues/715 to reference the
jobs in required by name avoiding OOM issues.

Co-authored-by: Hamish Mackenzie <Hamish.Mackenzie@iohk.io>
2021-01-06 16:44:43 +13:00
Michael Peyton Jones 738af22ce9 Move more CI to 20.09 (attempt 2) (#975)
* Update default nixpkgs to 20.09

* Move more CI to work on 20.09 by default

* IFD level 1

* Use nixpkgs 20.03 emscripten (needed for ghcjs)

* Add missing materialized files

* Add missing materialized files

* Fix for ghc 8.8 build on darwin

* Fix for ghcjs 8.8 build on darwin

* Fix hls stack test eval for ghc810220201118

* ifdLevel 2

* Oops: accidentally turned on tests for experimental GHC

* Revert "Fix hls stack test eval for ghc810220201118"

This reverts commit b405cd7ee8bd62214bd2d0a61e0317673b5bf1b5.

* ifdLevel 3

* Disable GHC 8.6.5 windows cross on nixpkgs 20.09

* Update supported GHC doc with a table

* Add emscripten comment

Co-authored-by: Hamish Mackenzie <Hamish.Mackenzie@iohk.io>
2020-12-17 15:57:09 +00:00
John A. Lotoski 09526c8555 Spelling, typo and whitespace fixes (#833)
* Spelling and typo fixes in doc and code comments
* Trailing whitespace or whitespace only truncation
* readTheDocs formatting corrections
2020-08-31 11:08:25 +12:00
Hamish Mackenzie 4cac8bd00f Remove internal deps on default ghc and stackage (#738)
Changes to the interface of haskell.nix (from the changelog.md file):

* Removed `sources.nixpkgs-default`, use `sources.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:
    https://github.com/input-output-hk/haskell.nix/issues/709
* Removed defaultCompilerNixName.
* cabalProject, cabalProject', hackage-project and hackage-package
  now require a `compiler-nix-name` argument.
* `haskell-nix.tool` and `.tools` now require a `compiler-nix-name` argument.
  New functions `p.tool` and `p.tools` (where p is a project) do not.
  Like `shellFor { tools = ... }` they will use the compiler nix name
  from the project (including stack projects where it is derived from
  the resolver).
* `haskell-nix.alex` and `haskell-nix.happy` have been removed. Use
  `p.tool "alex" "3.2.5"` or `shellFor { 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"` or `shellFor { tools = { cabal = "3.2.0.0"; } }`
* `haskell-nix.haskellNixRoots` -> `haskell-nix.roots ghc883` or `p.roots`

Other changes:

Adds hpack executable to the nix-tools derivations.

Adds a `cabal-hpack` test to make sure `hpack` works with
`cabalProject`.

Reduces the number of calls to `cabalProject` (particularly when
checking materialization), by giving internal tools a per-compiler
attribute.

Uses happy 1.19.12 when building newer ghc versions.

Updates cabal-install 3.2.0.0 to use the source from github that
is compatible with ghc 8.10.1.

Updates the docs for callCabalProjectToNix.

Adds a license mapping to fix a common warning.
2020-07-08 22:54:01 +12:00
Hamish Mackenzie 15fc6b3774 Add ghc 8.10.1 (#541)
* ghc 8.10
* Adds/Updates/Removes materialization files
* Disable one-shot-kqueue-on-macos patch on ghc-8.10
* Test ghc883 and ghc8101 but only with nix 20.03
* Various smaller fixes.

This should fix the infinite recursion issue with #654

Co-authored-by: Lennart Spitzner <hexagoxel@hexagoxel.de>
2020-06-07 11:05:44 +08:00
Hamish Mackenzie ff9a01e82e Add missing pins and test ghc865 and ghc883 (#641)
Now that the defaultCompilerNixName is used to choose which GHC to use
for tools we need to update haskellNixRoots to make sure the common
tools wind up in the cache.

To do this we add the compilerNixName as a dimension in ci.nix.
This has the added bonus of ensuring the tests a run with the
supported versions of ghc (not just the default one).

haskellNixRoots is also updated to include the tools built with the
defaultCompilerNixName (in particular cabal-install was not pinned
and this was the likely cause of significant builds due to cache
misses).
2020-06-02 11:44:03 +12:00
Hamish Mackenzie cbe66fffa4 ifdLevel 3 2020-05-12 12:07:41 +12:00
Hamish Mackenzie ce8abdb1c1 ifdLevel 2 2020-05-12 02:28:57 +12:00
Hamish Mackenzie e37927d4ed ifdLevel 1 2020-05-12 02:07:01 +12:00