Commit Graph

2145 Commits

Author SHA1 Message Date
Anton-Latukha 2dc211314e src/Nix/Options/Parser.hs: m upd alignment 2020-09-12 13:31:59 +03:00
Anton-Latukha 38215317b9 src/Nix/Options/Parser.hs: add CLI option `--version` 2020-09-12 13:31:59 +03:00
Anton-Latukha 03545e5309 default.nix: upd rev 2020-09-12 12:20:03 +03:00
Anton-Latukha a613ceb6a5 CI: On-Release-Cabal-Linux: fx 'on/release/created' type
Only on merge to `master` CI checked that YAML does not typecheck for it, so
fixing it posteriorly.
2020-09-12 11:59:38 +03:00
Anton-Latukha e1998798fb default.nix: pin Nixpkgs to last known good revision
Due to number of frequently occuring issues, latest being
the #705, #706, #707, #708, #709,
and upstream Nixpkgs issues, pinning Nixpkgs for Nix Haskell dev env.
2020-09-12 11:59:38 +03:00
Anton-Latukha 3ab3fd0801 hnix.cabal: bump megaparsec bound to 9.1
Changelog: https://hackage.haskell.org/package/megaparsec/changelog
2020-09-11 21:01:30 +03:00
Anton-Latukha 4dbb757296 default.nix: upd neat-interpolation version 2020-09-11 21:01:30 +03:00
Anton Latukha 9d31c56cff
Merge pull request #709 Upd CI, manage Nix builds
* Remove all additional optional informative CI Nix builds, preferring following Hackage currently, and keep Nix dev narrow.

* Add Cabal Hackage builds for all GHCs HNix supports.

* Rename Nix workflows to direct literal meaning of what they are (`Nix-dev-env`).

* Created a release test for middle GHC versions. CI tests always the latest and the oldest version, that seems good enough to track the development process. The middle GHC versions get tested when someone creates a GitHub prerelease/release.
2020-09-10 18:53:41 +03:00
Anton-Latukha f2c5f07b15
CI: GitHub: mv (->Optional-)Nix-dev-env-macOS 2020-09-10 18:35:27 +03:00
Anton-Latukha b1fbc25963
CI: GitHub: mv (Nixpkgs-Linux-main -> Optional-Nix-dev-env-main)
Underlining that Nixpkgs are currently optional.
2020-09-10 18:35:23 +03:00
Anton-Latukha c2e696e86f
CI: GitHub: Cabal-Linux: rm middle GHCs tests in favour release test 2020-09-10 18:04:54 +03:00
Anton-Latukha 10ae6f031e
CI: GitHub: add On-Release-Cabal-Linux
CI build that is triggered on release creation.

A  .github/workflows/On-Release-Cabal-Linux.yml
2020-09-10 18:04:47 +03:00
Anton-Latukha 2d78d84630
CI: GitHub: rm Nixpkgs-Linux-additional
Removing optional informational sake tests.

GHC version Cabal Hackage tests were added
2020-09-10 17:49:49 +03:00
Anton-Latukha 12d108d394
CI: GitHub: Cabal-Linux: test all GHCs
M  .github/workflows/Cabal-Linux.yml
2020-09-10 17:49:49 +03:00
Simon Jakobi 4cd3aa0e17
Remove broken "NixOS 20.03 stable channel, default GHC (8.8)" CI job (#704)
Fixes #700.
2020-09-02 21:07:24 +02:00
Simon Jakobi 93ecf531c4 Remove overlapping [From,To]JSON instances for NExpr
…for compatibility with aeson-1.5.3.

Closes #690.
2020-08-19 15:22:33 -07:00
Anton-Latukha 0449dc4570 Merge update from `haskell-with-nixpkgs`
* "rev" "default" tracks local default Nixpkgs channel.

* "compiler" "default" tracks default Nixpkgs GHC compiler.

* Properly providing secret to the GitHub CI workflows.

* Clean-up.

* Project freed form reliance on Travis CI.

* Removing unmaintained GHCJS build, in favor for the further move to Haskell to WebAssembly compilation.

---

In terms of the fish shell the rebase merge is done in this way:

```fish
set -l tmpDir "$HOME/src/tmp"
set -l sourceDir 'haskell-with-nixpkgs'
set -l sourceUrl "git@github.com:haskell-nix/$sourceDir.git"
set -l masterDir 'hnix'
set -l masterUrl "git@github.com:haskell-nix/$masterDir.git"
set -l fileList \
default.nix \
build.sh \
ghcjs-build.sh \
Cabal-Linux.yml \
Nixpkgs-GHCJS.yml \
Nixpkgs-Linux-additional.yml \
Nixpkgs-Linux-maim.yml \
Nixpkgs-macOS.yml
mkdir -p "$tmpDir"
rm -rf "$tmpDir/$sourceDir"
rm -rf "$tmpDir/$masterDir"
cd "$tmpDir"
git clone "$sourceUrl" "$sourceDir"
cd "$sourceDir"
git-pass-filter $fileList
cd "$tmpDir"
git clone "$masterUrl" "$masterDir"
cd "$masterDir"
git checkout -b upd-from-"$sourceDir"
git remote add hn "$tmpDir/$sourceDir"
git fetch hn master
git merge -S --allow-unrelated-histories hn/master
```

---

```log
10 files changed, 42 insertions(+), 401 deletions(-)
.github/workflows/Cabal-Linux.yml              |   4 -
.github/workflows/Nixpkgs-Linux-main.yml       |  12 +-
.github/workflows/Nixpkgs-Linux-additional.yml |   4 +-
.github/workflows/Nixpkgs-macOS.yml            |   5 +-
default.nix                                    |  33 +++--
build.sh                                       |  97 ++-------------
.github/workflows/Nixpkgs-GHCJS-turned-off     |  45 -------
ghcjs/nix.conf                                 |   2 -
ghcjs/default.nix                              |  79 ------------
.travis.yml                                    | 162 -------------------------
```
2020-08-18 10:13:36 +03:00
Anton-Latukha c83bbbe587 CI: Cabal-Linux: add caching 2020-08-17 13:22:51 +03:00
Anton-Latukha 23e51ef4f4 CI: Cabal-Linux: group builds together 2020-08-17 13:22:51 +03:00
Anton-Latukha 15ae0356be cabal: aeson < 1.5.3
1.5.3 introduced instances for `strict` & `data-fix`, some intstances overlap.

Trying to remove/sync instances results in:

```text
src/Nix/Expr/Types.hs:1:1: error:
    Exception when trying to run compile-time code:
      Constructor ‘DynamicKey‘ must only use its last 1 type variable(s) within
      the last 1 argument(s) of a data type
```
2020-08-17 13:05:46 +03:00
Simon Jakobi adc2f36a74
Allow optparse-applicative 0.16 (#697)
Changelog:
http://hackage.haskell.org/package/optparse-applicative-0.16.0.0/changelog

Stackage:
https://github.com/commercialhaskell/stackage/issues/5597
2020-08-16 22:00:56 +02:00
Simon Jakobi 1a2d627a58 Use prettyprinter-1.7.0
Changelog:
http://hackage.haskell.org/package/prettyprinter-1.7.0/changelog

hnix is likely to be affected by this change:

> Use floor instead of round to compute ribbon width.

…due to its use of custom `LayoutOptions`.
2020-08-07 12:21:12 +03:00
Anton Latukha 778edf2c38
Merge pull request #685 from Anton-Latukha/2020-08-03-badges
Update to badges
2020-08-04 13:04:19 +03:00
Anton-Latukha 9cb4157a5b
README: upd badge name to "Release dependencies"
M  README.md
2020-08-03 23:52:26 +03:00
Anton-Latukha c208b03218
README: add table 2020-08-03 23:41:17 +03:00
Anton-Latukha 120753f494
README: add GitHub badges 2020-08-03 23:13:40 +03:00
Anton-Latukha fd41357bb6
README: rm Travis badge
Travis was fully superseded.
2020-08-03 23:10:50 +03:00
Anton Latukha 7cd6a0f276
Merge of haskell-with-nixpkgs back into HNix (#681)
There were 668 commits which got squashed:

* CI: Travis: env: global: rev: upd: note for haskell-update branch

M  .travis.yml

* CI: Travis: build.sh: BUILD_PROJECT: *Optparse*Completion: upd: directional note

M  build.sh

* Travis: Add CI job with linux and GHC-8.4.4 (#603)

GHC 8.4 is still widely used, so it's good to check compatibility
with it.

* Fix CI builds on internal branches (#604)

* CI: Travis: rm cache | Builds 2X times faster without Travis cache

M  .travis.yml

* CI: Travis: build.sh: mv `set` declaration | fx master CI statuses

M  .travis.yml
M  build.sh

* default.nix: make GHC 8.8.3 default

M  default.nix

* default.nix: rm allowUnfree - there is none

M  default.nix

* default.nix: add haskell.lib profiling options explicitly

Integrates with CI.

M  default.nix

* default.nix: add flags {doCheck,doHaddock,doCoverage}

M  default.nix

* CI: Travis: build.sh: init CACHIX_SIGNING_KEY with default empty value

Due to new strict `set` rules `if` statement check agains empty variable was
failing the build, this fixes builds in PRs.

...sigh.

M  build.sh

* default.nix: expose more features of `haskell.lib` API

M  default.nix

* default.nix: add docs to the exposed haskell.lib options

M  default.nix

* CI: build.sh: rm empty args from nix-build

M  build.sh

* CI: build.sh: update Nix after its installation

Nix that installs through Nix installer is 2.0.4.
Current Nix release is 2.3.5.

To to have a less of old bugs, and more of new bugs - Nix after installation
needs an update right away.

Old Nix literally prevented importing Nix channels on Linux Nix installations.

M  build.sh

* default.nix: to allow use of current channels remove hash guarding

M  default.nix

* default.nix: set `rev` default to `nixpkgs-unstable`

M  default.nix

* default.nix: for import form separate explicit override set

M  default.nix

* default.nix: add if useRev - then use rev, else use <nixpkgs>

M  default.nix

* CI: build.sh: MAIN: add the channel update

M  build.sh

* default.nix: default enableDeadCodeElimination to false | GHC macOS build bug

M  default.nix

* default.nix: off enableSharedExecutables | rare feature, not passes macOS tests

This feature seems to enable binaries as also a dynamic library, with is a rare
and largely unknown feature, and it not used. Since it is unexpected optional
rare not standard feature - turn it off by default.

M  default.nix

* default.nix: expose additional part of Nixpkgs haskell.lib API

M  default.nix

* default.nix: m doc upd

M  default.nix

* default.nix: upd docs for Header.lib args in headers, sort

Providing docs to them and sort them roughly in order of their application/stage

M  default.nix

* default.nix: abstract the developPackage into value

M  default.nix

* default.nix: package: sort inherited Haskell.lib args, provide doc

M  default.nix

* default.nix: add option enableSeparateBinOutput

M  default.nix

* default.nix: allow apply composition over the package

M  default.nix

* default.nix: allow apply composition over the package

M  default.nix

* default.nix: expose functionality: sdistTarball; add doc

M  default.nix

* default.nix: expose functionality: buildFromSdist; add doc

M  default.nix

* default.nix: expose functionality: failOnAllWarnings; add doc

M  default.nix

* default.nix: expose functionality: buildStrictly; add doc

M  default.nix

* default.nix: expose functionality: disableOptimization; add doc

M  default.nix

* default.nix: expose functionality: linkWithGold; add doc

M  default.nix

* default.nix: expose functionality: enableDWARFDebugging; add doc

M  default.nix

* default.nix: expose functionality: doJailbreak

Argument was already exposed in the header

M  default.nix

* default.nix: expose functionality: doStrip

Argument and doc was already provided in the header

M  default.nix

* default.nix: expose functionality: justStaticExecutables

Argument and doc was already provided in the header.

M  default.nix

* default.nix: expose functionality: checkUnusedPackages; provide doc

M  default.nix

* default.nix: expose functionality: gen*Optparse*Completion; provide doc

M  default.nix

* default.nix: expose functionality: doHyperlinkSource; provide doc

M  default.nix

* default.nix: rm doStrict (superceeded by failOnAllWarnings)

M  default.nix

* default.nix: rm doOptimize (superceeded by disableOptimizations)

M  default.nix

* default.nix: doc: add to header args

M  default.nix

* default.nix: doc: add to body (functions fold and composePackage)

M  default.nix

* default.nix: doc: add beginning doc and link to lib for more info on options

M  default.nix

* CI: Travis: add Nix packages upd

M  .travis.yml

* CI: Travis: fix Cachix nix-env install rights menegement

The Cachix suddenly started to fall with:

```
$ nix-env -iA cachix -f https://cachix.org/api/v1/install

error: creating directory '/Users/travis/.cache/nix/tarballs': Permission denied

The command "nix-env -iA cachix -f https://cachix.org/api/v1/install" exited with 1.
```

There are changes to macOS procedures, Nix updated to 2.2, and Cachix has big
upstream changes for macOS processes.

So fixing rights management in this way.

M  .travis.yml

* CI: Travis: rm sleep 2 - redundant

Anyway it takes 30s-1m to the nix-build.

M  .travis.yml

* CI: Travis: add HACK to fix reload Nix-daemon after Nix update 2.0 -> 2.2

M  .travis.yml

* CI: Travis: explicitly state the builds

M  .travis.yml

* CI: Travis: env: rm jobs matrix

M  .travis.yml

* CI: Travis: rm `os:` and `dist:`, since they are explicitly put below

M  .travis.yml

* CI: Travis: enable strict build in GHC 8.6.5

M  .travis.yml

* CI: Travis: upd explicit build names

M  .travis.yml

* CI: Travis: make GHC 8.10 mandatory

M  .travis.yml

* CI: Travis: move SDist check to GHC 8.10

M  .travis.yml

* CI: .travis.tml: clean-up

Since conf no longer multiplies rows into matrix, but provides it explitly,
exclusions not needed.

M  .travis.yml

* CI: make generate*Complettions work and accept a list of executables

M  .travis.yml
M  build.sh
M  default.nix

* CI: rm buildStackProject, it does not work that way, and better to use real stack

M  .travis.yml
M  build.sh

* default.nix: clean-up docs

M  default.nix

* build.sh: default to GHC 8.10

M  build.sh

* build.sh: sort the options into logical order

M  build.sh

* build.sh: provide docs to options

M  build.sh

* build.sh: add disclamer for options

M  build.sh

* build.sh: add more options and their docs

M  build.sh

* build.sh: add new options into the build commands

M  build.sh

* CI: .travis.yml: use linkWithGold in Linux builds, a bit faster builds

M  .travis.yml

* CI: .travis.yml: GHC 8.10: add Haddock, optimize, Benchmark, Shell Complettions

M  .travis.yml

* build.sh: rm `pkgName` (not used), return `name` - used by Cachix

M  build.sh

* Silence redundant import warnings for Control.Monad.Fail (#633)

Also address mysterious redundant import warnings in the testsuite

This allows us to enable `buildStrictly=true` for GHC 8.8.

Fixes #613.

* default.nix: clean-up no longer relevant commented-out code

buildInputs populated automatically.

Environment overloads we can do any time, no need to keep trivial code
commented.

There is no AWS S3 use. If we would need we would write new deployment
implementation  outside of `default.nix` using actual NixOps.

* CI: .travis.yml: rm Strict from GHC 8.6.5

M  .travis.yml

* CI: .travis.yml: properly name GHC 8.8.3 macOS as Strict

M  .travis.yml

* CI: .travis.yml: add explicit quotes

M  .travis.yml

* CI: .travis.yml: add description to the channels

M  .travis.yml

* CI: .travis.yml: add description for executableNamesToShellComplete

M  .travis.yml

* default.nix: filter package root with nix-gitignore

so we don't copy stuff like `dist-newstyle`.

* CI: .travis.yml: add the disclaimer

M  .travis.yml

* CI: mv rev doc (.travis.yml->build.sh)

M  .travis.yml
M  build.sh

* CI: build.sh: upd disclaimer

M  build.sh

* CI: build.sh: add setting section disclaimer

M  build.sh

* CI: build.sh: upd NIX_PATH doc

M  .travis.yml
M  build.sh

* CI: .travis.yml: reduce not used pkgName

getOptParseApplicativeComplettions does not need it

M  .travis.yml

* CI: {.travis.yml,build.sh}: rename (name->project) more unique and descriptive

M  .travis.yml
M  build.sh

* CI: {.travis.yml,build.sh}: merge documentation into buildh.sh

M  .travis.yml
M  build.sh

* CI: .travis.yml: rm NOTEs from less important explanations

M  .travis.yml

* CI: .travis.yml: {add,set,sort} features from `build.sh` explicitly

M  .travis.yml

* CI: build.sh: mv doHyperlinkSource into logical place

M  build.sh

* CI: .travis.yml: upd the disclaimer

M  .travis.yml

* CI: .travis.yml: rm ALL_TESTS, since it does not work for nix-build

and also just plainly does not passes itself, so it is useless in CI build setup

M  .travis.yml

* CI: .travis.yml: upd CACHIX_SIGNING_KEY explanation

M  .travis.yml

* CI: .travis.yml: GHC 8.10: add Haddock and sources hyperlinking

M  .travis.yml

* CI: {.travis.yml,build.sh}: rename (GHCVERSION->compiler)

M  .travis.yml
M  build.sh

* CI: default.nix: add `compiler` explanation

M  default.nix

* CI: {.travis.yml,build.sh}: upd: make conf work with new Nix installer

M  .travis.yml
M  build.sh

* CI: .travis.yml: rm irrelevant remount

M  .travis.yml

* CI: {build.sh,default.nix}: upd settings structure, upd descriptions

M  build.sh
M  default.nix

* CI: default.nix: upd header disclamer

M  build.sh

* CI: mv rev doc (build.sh->default.nix)

M  build.sh
M  default.nix

* CI: merge docs (build.sh->default.nix)

M  build.sh
M  default.nix

* CI: build.sh: rm most of NOTE tags

M  build.sh

* CI: .travis.yml: rm Nix updates

After refactoring they are right beside/before build.sh Nix updates, so this
update can be reduced.

M  .travis.yml

* CI: .travis.yml: upd service restart

Since service is not touched the daemon-reload is probably not needed, restart
is sufficient.

M  .travis.yml

* CI: build.sh: add report of Nixpkgs channel revision

Since Nix and Nixpkgs channel were just updated and build is next - report the
revision.

M  build.sh

* default.nix: use dummy package name

* default.nix: upd rephrase

* default.nix: upd rephrase

M  default.nix

* default.nix: add explanation

M  default.nix

* default.nix: clean-up

M  default.nix

* default.nix: upd

M  default.nix

* default.nix: upd

M  default.nix

* default.nix: add explanation

M  default.nix

* add initial .github/workflows/test.yml

* M  .github/workflows/test.yml

* test.yml: upd name: (Test->CI)

M  .github/workflows/test.yml

* test.yml: add env of Nixpkgs Haskell Lib from HNix

M  .github/workflows/test.yml

* test.yml: (nix-build->./build.sh)

M  .github/workflows/test.yml

* test.yml: upd update of Nix to update all Nix installed packages

M  build.sh

* test.yml: jobs: tests->Basic_build

M  .github/workflows/test.yml

* {test.yml,build.sh}: project: hnix->replaceWithProjectNameInCachix

M  .github/workflows/test.yml
M  build.sh

* {test.yml,build.sh}: executableNames..Complete: hnix->replaceWith...

M  .github/workflows/test.yml
M  build.sh

* test.yml: jobs: Basic_build: name the steps

M  .github/workflows/test.yml

* build.sh: compiler: add explanation

M  build.sh

* default.nix: compiler: mv explanation

M  build.sh
M  default.nix

* test.yml: m upd

M  .github/workflows/test.yml

* test.yml: trigger CI on push to master, track only PRs| trigger build once

M  .github/workflows/test.yml

* Simplify step names

M  .github/workflows/test.yml

* GitHub CI: add Linux_GHC-8-10

M  .github/workflows/test.yml

* GitHub CI: add Linux_GHCJS

M  .github/workflows/test.yml

* GitHub CI: add macOS_default

M  .github/workflows/test.yml

* GitHub CI: Nixpkgs: disable withHoogle

M  .github/workflows/test.yml

* GitHub CI: add Hackage_Cabal

M  .github/workflows/test.yml

* GitHub CI: Hackage_Cabal: add cabal v2-configure

M  .github/workflows/test.yml

* GitHub CI: Hackage_Cabal: add cabal v2-build

M  .github/workflows/test.yml

* GitHub CI: Hackage_Cabal: add cabal v2-test

M  .github/workflows/test.yml

* .github/workflows/(test->main).yml

R  .github/workflows/test.yml -> .github/workflows/main.yml

* builds: rname project->cachixAccount

M  .github/workflows/main.yml
M  build.sh

* .travis.yml: add withHoogle=false for CI builds

M  .travis.yml

* .travis.yml: group cachix conf

M  .travis.yml

* GitHub CI: add name tags to builds

M  .github/workflows/main.yml

* GitHub CI: Nixpkgs custom build: add customization

M  .github/workflows/main.yml

* builds: pass-through useRev

M  .github/workflows/main.yml
M  build.sh
M  default.nix

* builds: use rev

M  .github/workflows/main.yml

* GitHub CI: add Nixpkgs_stable_Linux

M  .github/workflows/main.yml

* build.sh: provide a NIX_PATH change if rev is chosen

M  build.sh

* GitHub CI: add build schedule

M  .github/workflows/main.yml

* GitHub CI: add explanations

M  .github/workflows/main.yml

* GitHub CI: make all builds optional

M  .github/workflows/main.yml

* name Hackage_Cabal

M  .github/workflows/main.yml

* GitHub CI: Nixpkgs_unstable_macOS: upd

M  .github/workflows/main.yml

* build.sh: rm NIX_PATH setup| default.nix solves it internally

M  build.sh

* build.sh: short-curcuit the Nix tools update

M  build.sh

* add .github/workflows/Cabal-Linux.yml

* mv Hackage_Cabal build main->Cabal-Linux.yml

M  .github/workflows/Cabal-Linux.yml
M  .github/workflows/main.yml

* Cabal-Linux.yml: add schedule

M  .github/workflows/Cabal-Linux.yml

* main.yml: switch all Nix installer nix_path to nixos-unstable

M  .github/workflows/main.yml

* main.yml: rm all Nix installer nix_path resetting to default

M  .github/workflows/main.yml

* GitHub CI: workflow: add macOS, mv job into it

A  .github/workflows/Nixpkgs-macOS.yml
M  .github/workflows/main.yml

* GitHub CI: workflow: Nixpkgs-macOS: add triggers and shedule

M  .github/workflows/Nixpkgs-macOS.yml

* GitHub CI: workflow: Nixpkgs-macOS: m build rename

M  .github/workflows/Nixpkgs-macOS.yml

* GitHub CI: workflow: Nixpkgs-GHCJS: mv build in

A  .github/workflows/Nixpkgs-GHCJS.yml
M  .github/workflows/main.yml

* GitHub CI: workflow: main: rm withHoogle overload since it is redundant

M  .github/workflows/main.yml

* GitHub CI: workflow: main: (CI->Nixpkgs, Linux)

M  .github/workflows/main.yml

* GitHub CI: workflow: main: linkWithGold

M  .github/workflows/main.yml

* GitHub CI: workflow: main: upd build ids

M  .github/workflows/main.yml

* GitHub CI: workflow: main: upd build names

M  .github/workflows/main.yml

* GitHub CI: workflow: main: add NixOS-unstable Strict build

M  .github/workflows/main.yml

* GitHub CI: workflow: main: upd build names

M  .github/workflows/main.yml

* GitHub CI: workflow: main: add build GHC 8.6.5

M  .github/workflows/main.yml

* GitHub CI: workflow: main: add build GHC 8.4.4

M  .github/workflows/main.yml

* GitHub CI: workflow: main: upd build name

M  .github/workflows/main.yml

* GitHub CI: workflow: main: upd build names, wrap in "

M  .github/workflows/main.yml

* GitHub CI: main: upd name: add GHC for GitHub CI to not mix-in GHCJS

M  .github/workflows/main.yml

* GitHub CI: workflow: mv (main->Nixpkgs-GHC-Linux).yml

R  .github/workflows/main.yml -> .github/workflows/Nixpkgs-GHC-Linux.yml

* GitHub CI: workflow: mv Quality build

M  .github/workflows/Nixpkgs-GHC-Linux.yml

* GitHub CI: workflow: m rname builds

M  .github/workflows/Nixpkgs-GHC-Linux.yml

* GitHub CI: workflow: m rename of the build

M  .github/workflows/Nixpkgs-GHC-Linux.yml

* GitHub CI: workflow: Quality build: add nix-shell test

M  .github/workflows/Nixpkgs-GHC-Linux.yml

* GitHub CI: workflow: add denotation towards main examples

M  .github/workflows/Nixpkgs-GHC-Linux.yml

* GitHub CI: workflow: Quality build: fx nix-shell command

M  .github/workflows/Nixpkgs-GHC-Linux.yml

* GitHub CI: workflow: mv Nixpkgs-(GHC-->)Linux.yml

R  .github/workflows/Nixpkgs-GHC-Linux.yml -> .github/workflows/Nixpkgs-Linux.yml

* GitHub CI: workflow: GHCJS: clean-up

M  .github/workflows/Nixpkgs-GHCJS.yml

* GitHub CI: workflow: GHCJS: use nixos-unstable rev

M  .github/workflows/Nixpkgs-GHCJS.yml

* GitHub CI: workflow: GHCJS: use linkWithGold

M  .github/workflows/Nixpkgs-GHCJS.yml

* R  .github/workflows/Nixpkgs-Linux.yml -> .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: Nixpgs, Linux: recommend nixos-unstable

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: Nixpgs, Linux: recommend test for nixos-20.03 stable

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: mv additiona builds into Nixpgs-Linux-additional

A  .github/workflows/Nixpkgs-Linux-additional.yml
M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: rname workflows

M  .github/workflows/Nixpkgs-Linux-additional.yml
M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: make main builds mandatory

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: make build not strict, to not scare off people ;)

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: make Nix-shell into a separate test

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: Nix-shell: from the hip nix-shell'ing

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: Nix-shell: add separate Hoogle test

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: rename GHCJS

M  .github/workflows/Nixpkgs-GHCJS.yml

* GitHub CI: workflow: main: prettify

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: fx Nix-shell test

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: rename Nix-shell build

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: m upd

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: upd Nix-shell build

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: upd Quality build

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: upd NixOS stable build

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: upd disclaimer

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: upd steps to "Determined Nix-build"

M  .github/workflows/Nixpkgs-GHCJS.yml
M  .github/workflows/Nixpkgs-Linux-additional.yml
M  .github/workflows/Nixpkgs-Linux-main.yml
M  .github/workflows/Nixpkgs-macOS.yml

* GitHub CI: workflow: main: upd Hoogle step name

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: m upd

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: upd Hoogle step name

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: upd Hoogle build name

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: upd Basic build name

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: add explicit nixos-unstable

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: Basic: add nixos-unstable explanation

M  .github/workflows/Nixpkgs-Linux-main.yml

* GitHub CI: workflow: main: Nix-shell: use pure shell (*sic)

M  .github/workflows/Nixpkgs-Linux-main.yml

* default.nix: abstract over package root| now able to manage monorepos

* default.nix: abstract over package name| full support of monorepos

M  default.nix

* build.sh: passthrough package{Name,Root} into default.nix

* {default.nix,build.sh}: (package->cabal)Name end explanation

* CI: Nixpkgs-Linux-main: add template for monorepo matrix

* CI: Cabal-Linux: add template for monorepo matrix

* D  ghcjs/default.nix

* Nixpkgs-macOS: mv env attrset

* CI: Nixpkgs workflows: use haskell-with-nixpkgs cachix account

M  .github/workflows/Nixpkgs-GHCJS.yml
M  .github/workflows/Nixpkgs-Linux-additional.yml
M  .github/workflows/Nixpkgs-Linux-main.yml
M  .github/workflows/Nixpkgs-macOS.yml
M  .travis.yml

* CI: Nixpkgs workflows: provide CACHIX_SIGNING_KEY

M  .github/workflows/Nixpkgs-GHCJS.yml
M  .github/workflows/Nixpkgs-Linux-additional.yml
M  .github/workflows/Nixpkgs-Linux-main.yml
M  .github/workflows/Nixpkgs-macOS.yml
M  .travis.yml

* CI: GitHub: Nixpkgs workflows: Cachix action, provide account to it

M  .github/workflows/Nixpkgs-GHCJS.yml
M  .github/workflows/Nixpkgs-Linux-additional.yml
M  .github/workflows/Nixpkgs-Linux-main.yml
M  .github/workflows/Nixpkgs-macOS.yml

* CI: GitHub: Nixpkgs-Linux-main: quality build: upd name

* CI: GitHub: add submodule recursion to checkouts

M  .github/workflows/Cabal-Linux.yml
M  .github/workflows/Nixpkgs-GHCJS.yml
M  .github/workflows/Nixpkgs-Linux-additional.yml
M  .github/workflows/Nixpkgs-Linux-main.yml
M  .github/workflows/Nixpkgs-macOS.yml

* CI: GitHub: Cabal-Linux: provide libsodium

* default.nix: upd neat-interpolation override

* build.sh: clean-up

rm redundant settings, since default.nix is the main API propagation point

* default.nix: set proper cabalName

* CI: switch back to HNix Cachix account

M  .github/workflows/Nixpkgs-GHCJS.yml
M  .github/workflows/Nixpkgs-Linux-additional.yml
M  .github/workflows/Nixpkgs-Linux-main.yml
M  .github/workflows/Nixpkgs-macOS.yml
M  .travis.yml

* .travis.yml: switch back to HNix Cachix account secret

* default.nix: upd GHC to 8.8.4

* CI: update GHC 8.8.(3->4)

Also dropping minor numbers from build names for bravity of tracking Nixpkgs

M  .github/workflows/Nixpkgs-Linux-additional.yml
M  .github/workflows/Nixpkgs-Linux-main.yml
M  .travis.yml

* CI: rm Nixpkgs GHC 8.4.4 builds

8.4.4 support is removed from Nixpkgs

M  .github/workflows/Nixpkgs-Linux-additional.yml
M  .travis.yml

* CI: Cabal-Linux: add GHC 8.4 build

Since Nixpkgs removed 8.4, adding it to Hackage builds.

* CI: Cabal-Linux: enable tests in configuration

M  .github/workflows/Cabal-Linux.yml

* CI: Cabal-Linux: clean-up

M  .github/workflows/Cabal-Linux.yml

* CI: Cabal-Linux: add Nix installation, instantiate still required for tests

M  .github/workflows/Cabal-Linux.yml

* CI: Cabal-Linux: make builds pass mandatory

* CI: Nixpkgs-Linux-main: make all builds optional

Due to Nixpkgs brittleness - it often blocks the development process, when the
PRs do not pass due to issues of downstream Nixpkgs.

Moreover that HNix builds in Nixpkgs with Nix, so the point of this builds is
just to check that HNix builds with Nixpkgs under Nix.

When Nixpkgs build is mandatory - PRs get blocked by it and PRs await on fixing
Nixpkgs.

Making Nixpkgs builds optional allows parallelization of code development and
Nixpkgs fixing.

More in discussion: https://github.com/haskell-nix/hnix/pull/681#discussion_r463983376

* CI: Nixpkgs-Linux-main: make all builds optional cache builders

Due to Nixpkgs brittleness - it often blocks the development process, when the
PRs do not pass due to issues of downstream Nixpkgs.

Moreover that HNix builds in Nixpkgs with Nix, so the point of this builds is
just to check that HNix builds with Nixpkgs under Nix.

When Nixpkgs build is mandatory - PRs get blocked by it and PRs await on fixing
Nixpkgs.

Making Nixpkgs builds optional allows parallelization of code development and
Nixpkgs fixing.

More in discussion: https://github.com/haskell-nix/hnix/pull/681#discussion_r463983376

CI: Travis: fx optional builds

CI: Nixpkgs-Linux-main: make all builds optional

Due to Nixpkgs brittleness - it often blocks the development process, when the
PRs do not pass due to issues of downstream Nixpkgs.

Moreover that HNix builds in Nixpkgs with Nix, so the point of this builds is
just to check that HNix builds with Nixpkgs under Nix.

When Nixpkgs build is mandatory - PRs get blocked by it and PRs await on fixing
Nixpkgs.

Making Nixpkgs builds optional allows parallelization of code development and
Nixpkgs fixing.

More in discussion: https://github.com/haskell-nix/hnix/pull/681#discussion_r463983376

CI: Travis: fx optional builds

* CI: Travis: enable fast skip

See: https://github.com/haskell-nix/hnix/pull/681#discussion_r463996365

M  .travis.yml

* CI: Travis: add "bypass" to keep CI green, send cache gen to background

M  .travis.yml

* CI: Nixpkgs-Linux-main: proper executable name to shell complete

* CI: Nixpkgs-Linux-main: Quality build: add shell completion test

M  .github/workflows/Nixpkgs-Linux-main.yml

* CI: Nixpkgs-Linux-main: default build: add strict build

M  .github/workflows/Nixpkgs-Linux-main.yml

* CI: Nixpkgs-GHCJS: print log tail

* CI: Nixpkgs-GHCJS: turn-off build which is not persued

Co-authored-by: Simon Jakobi <simon.jakobi@gmail.com>
Co-authored-by: Richard Marko <srk@48.io>
2020-08-03 20:25:22 +03:00
Simon Jakobi 695a47fac3
Remove unnecessary extra-source-files (#672)
More files than necessary were included from the nix submodule.

This also adds some missing eval-compare test files. The testsuite
now always runs the same number of tests, no matter the
`buildFromSdist` setting.

This also sorts the files from the submodule, so they are easier to
navigate.
2020-07-27 13:09:45 +03:00
Simon Jakobi 54030284fa Update to data-fix-0.3
Changelog: http://hackage.haskell.org/package/data-fix-0.3.0/changelog

Context: https://github.com/commercialhaskell/stackage/issues/5535
2020-07-24 12:35:59 +03:00
Anton-Latukha f4b116f197 add HNix small logo
A  doc/images/HNixSmall.svg
2020-07-23 20:37:39 +03:00
Anton-Latukha a8a9ebabb1 add HNix logo 2020-07-23 20:37:39 +03:00
Anton-Latukha e3d4254258 cabal: clean-up bound copies 2020-07-16 21:21:11 +03:00
Anton-Latukha 5f63b2aa61 cabal: library: m cosmetics 2020-07-16 21:21:11 +03:00
Anton-Latukha c6f9ab81b9 CHANGELOG: 0.9.1: mv additional info into additional; explain deps 2020-07-13 19:48:34 +03:00
Anton-Latukha 37fde9b3d0 CHANGELOG: 0.9.0: m upd on GHC support status 2020-07-13 19:48:34 +03:00
Richard Marko 0b61040bee hnix.cabal: version 0.9.1 2020-07-13 19:20:31 +03:00
Richard Marko e9c9a27504 changelog: add 0.9.1 2020-07-13 19:20:31 +03:00
Richard Marko 06edd4b8cf builtins.nixVersion: version 2.0 -> 2.3
Nixpkgs now has minimum required version 2.2, this allows us to
import it again.
2020-07-11 19:18:07 +03:00
Anton-Latukha 7fae8fa962 CI: .travis.yml: switch all builds to nixos-unstable
M  .travis.yml
2020-07-09 16:08:20 +03:00
Anton Latukha 3fb78fcc40
Merge pull request #658 from sorki/fix/repline_0_4
Epic Support repline 0.4
2020-07-08 18:43:07 +03:00
Richard Marko c9eb24626a repl: drop GHC pragams disabling warnings, prune imports 2020-07-04 18:42:16 +02:00
Richard Marko 0cf6be6be2 readme: add short REPL section 2020-07-04 18:42:16 +02:00
Richard Marko f964284c66 repl: improve tab completion 2020-07-04 18:42:16 +02:00
Richard Marko 8d0e325cf5 repl: Add ReplConfig and :set command 2020-07-04 18:42:16 +02:00
Richard Marko b84f4f6c19 repl: Support loading .hnixrc from current directory 2020-07-04 18:42:16 +02:00
Richard Marko f7704b4c28 repl: Pass result of --eval -E "..expr.." to REPL
Allows us to do
```
hnix --eval -E '{ a = 2; b = "test"; }' --repl

hnix> :browse
input = { a = 2; b = "test"; }
hnix> input.a
2
hnix> input.b
"test"
```

Closes #292.
2020-07-04 18:42:16 +02:00
Richard Marko 4ce176d1a1 repl: Better help using HelpOption type 2020-07-04 18:42:16 +02:00
Richard Marko 0e8e73ec88 repl: Extend IState, handle bindings, add browse and debug commands
Bindings are now handled correctly and you can do

```
a = 2
b = 3
c = a + b
:browse
:t c
```

Converted IState to data type instead of `newtype`.
Now tracks `replIt` for last entered expression that parsed
successfully.

`replCtx` is now extended with bindings and browseable via `:browse`.

:`debug` can be used to enable dumping of `IState` on input.

Scope taken from `replCtx` is now pushed to evaluated values.
2020-07-04 18:42:16 +02:00
Richard Marko d9303f385c repl: Refactor error handling
Drops Repline `abort`s and switches to `Maybe` result for `call` function.

Few other bits handled too:
- `M.empty` -> `mempty`
- qualified use of `Data.Text`
- minor formatting fixes for readability

Closes #505.
2020-07-04 18:42:16 +02:00