by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
Joe Graham
@josgraha
@jwiegley how do i get your build environment? :smile:
Anton Latukha
@Anton-Latukha
@josgraha Meanwhile you waiting for a direct response. Wiegley has a YouTube channel with videos where he shows development process, he also has several blogs, up to date GitHub repos of configs, including Emacs configs, he appeared on couple of podcasts as a guest where he described his workflow. If you piece it all together - you would have a very good material.
John Wiegley
@jwiegley
@josgraha Hi Joe, which aspect of the build environment did you want?
Joe Graham
@josgraha
Oh wow thank you so much I dont know why I didnt think about searching YouTube 😪
Anton Latukha
@Anton-Latukha

@josgraha
Also every-ones different tooling now revolves around ghcid and Haskell IDE Engine. HIE becomes well-integrated in majority of cases.

In the HNix project, inside its Nix-shell you can right-away start ghcid to aid you. For example, I currently use this: ghcid --command='cabal new-repl --ghc-options=-fno-code --ghc-options=-fno-break-on-exception --ghc-options=-fno-break-on-error --ghc-options=-v1 --ghc-options=-ferror-spans --ghc-options=-j'.

John has a lot of niceties to draw from into your setup, if you make an effort learning and integrating them.

Anton Latukha
@Anton-Latukha

====

Please suggest exception handling ideas into: haskell-nix/hnix#509

Anton Latukha
@Anton-Latukha
@Infinisil Travis can fall because of git depth 1 setting. Opened haskell-nix/hnix#510
Anton Latukha
@Anton-Latukha

====

Some time passed. And I found a way to integrate NixOS/Nix, Emacs, Haskell IDE Engine.
And made guide for it:
https://www.reddit.com/r/haskell/comments/cigdqp/integration_of_nixosnix_with_haskell_ide_engine/

@josgraha
Anton Latukha
@Anton-Latukha

This is the most versatile Haskell setup today. You can get the Nix and all the tricks, Emacs and canonicalized Haskell IDE at the same time.

I already tested the setup making a HNix contribution.

Anton Latukha
@Anton-Latukha

====

I decided to break the dead air.

I started to get more and more errors with NixOps making it impossible to use even for me. NixOps is still fully Python2, and that kick of the can ends in 3 month. Maybe someone has some thoughts/motives about it.

Anton Latukha
@Anton-Latukha

====

Also people keep complaining about issues, that I reported, solved and gave to Nix already three years ago. Sill not merged thou.
Since people still complain, maybe someone can help me to merge my fully ready POSIX Nix installer into Nix mainline, or at least as beta-option installer. It is good to push for somewhere right after NixOS release.

====

For interest looked at what tooling currently uses HNix:

dhall-nix
hocker (Interact with the docker registry and generate nix build instructions)
jenkinsPlugins2nix
nixfromnpm
servant-nix (Servant Nix content-type)
update-nix-fetchgit
yarn2nix

Seems pretty good functionality already.

Bryan Richter
@chreekat
Hi all, hello from NixCon 2019. :) Is anyone else here?
Plus, I would like to work on hnix during the Sunday hackday. @jwiegley , @mightybyte any suggestions for work items?
Bryan Richter
@chreekat
@domenkozar and @shlevy as well
Bryan Richter
@chreekat
I've been told this project is basically archived now 😅
Brian McKenna
@puffnfresh
:(
nooooooo
Ryan Trinkle
@ryantrinkle
@chreekat Who told you that?
Bryan Richter
@chreekat
@ryantrinkle archived was a strong word. Rather I just heard that some core contributors have run out of energy for the project.
I'm still interested in it myself, although I don't have any time to spare for it. :( I was hoping to use NixCon as a reason to get familiar with it, but didn't end up connecting with anyone. @domenkozar was around but was making progress on Hercules instead
Domen Kožar
@domenkozar
@chreekat should have pinged me, would love to help :)
Ryan Trinkle
@ryantrinkle
@chreekat I think a lot of us are in that same situation - interested but don't have time to spare. Obsidian has been growing (again! we'll be up to ~44 after this round of hiring), which will eventually help hnix and other community projects, but for now takes almost all of my time. I know @jwiegley has also been very busy at his job - also because of good things happening, afaict! In any case, I've been really happy about the amount of use this codebase has gotten even though it doesn't completely evaluate nixpkgs yet.
Domen Kožar
@domenkozar
I think more cooperation would help. Talk about the goals and joining up and focus on those closer to completion.
@chreekat can you share more about your goals?
Bryan Richter
@chreekat
@domenkozar , @ryantrinkle that's all good to hear! I'm also quite busy for good reasons, and was thinking NixCon would be a good opportunity to just dip my toes into the project. So I don't have any definite goals right now. However, we will be generating more and more nix expressions from Haskell apps soon, which makes hnix interesting
(I think?)
I assume hnix, like GHC, provides both a utility for evaluating nix expressions, as well as libraries for manipulating them
In that regard, has anyone looked at Trees That Grow? I tinkered with its usage in GHC, and I assume it would be useful to hnix as well. But I've strayed into the realm of idle gossip now, because that's a refactoring that I bet none of us has time for right now :)
matrixbot
@matrixbot
vaibhavsagar I personally want us to get a comment-preserving parser before embarking on a TTG refactoring
Bryan Richter
@chreekat
Does gitter not send mobile notifications? Or is it just me?
tomberek
@tomberek
@Anton-Latukha i remember seeing a POSIX nix installer earlier. What's needed for a merge?
John Wiegley
@jwiegley
Hi @Anton-Latukha !
Anton Latukha
@Anton-Latukha

@jwiegley
I understood you.

You are right, things like this must be transcended.

Thank you for properly moderating and giving a chance for self-correction.

John Wiegley
@jwiegley
Did I really communicate all of that by saying, "Hi"? Wow!
Anton Latukha
@Anton-Latukha

@tomberek
PR was ready for 2 years, and I've done a lot of work trying to merge it.

With the current state in the upstream installer, it can be safely assumed that POSIX installer would not be merged. Merging it would mean to allow me greatly simplify and refactor all installers there into one installer codebase. This is unreal to expect that this would be allowed and happen.

Compl Yue
@complyue
just found here, help needed on this strange situation NixOS/nixpkgs#73443
can this bcoz pre-built GHCs from nixpkgs were built in env purer than my local one? I've tried on both macOS mojave and Ubuntu 18.04, same result.
Anton Latukha
@Anton-Latukha

@complyue

Sorry for long response.

Nix already has idealized build setup implemented, if you have:

nix.useSandbox = true;   # under NixOS 'true' is default

It is the main advertised feature and everything NixPkgs builds and pains upon.

To check:

nix-shell
echo $IN_NIX_SHELL
# must be 'pure'

HNix internally uses Nix for many processes. Since I did not read the code that does build - I am sure HNix reuses build environment abstraction from Nix, AKA nix-shell.

AFAIK, Nix build environment on macOS did not had "pure" mode, only "impure".
Ubuntu AFAIK should be able to do/enabled "pure" Nix build mode.

I would've recommended the use of a container, or entire NixOS host/vm - those allow "pure" build.

GHC use to use two versions of GHC to build new one, and anyway at least should use old version of itself to build itself, and also had a requirement to be able to do that without package management, which lead to internal conflicts/collisions, for example of libraries, during build. Maybe you had something related to that. I do not see how in current state Nix can solve that. Official GHC docs&Guides you probably seen.

So, in short, HNix can not help you in any way.

Anyway interested what problem was about and what the continuation was.

Richard Marko
@sorki
ping!
Compl Yue
@complyue
@Anton-Latukha Thanks for the response, I ended up solving it by not renaming GHC 's name in the nix expr, cdepillabout@github who helped me alot neither thought it should be a problem but anyway it worked out that way.
matrixbot
@matrixbot
Ericson2314 https://github.com/haskell-nix/hnix/issues/328#issuecomment-605466836 what do you all think about splitting the packages and merging the repos?
Ericson2314 I like the pairing of the two--monorepo offsets difficulties of smaller packages.
Anton Latukha
@Anton-Latukha

My PR is dependent of any big Haskell code reshuffles/changes.

I see that this is about Nix packaging. It would be good to atomize the builds of course.

Anton Latukha
@Anton-Latukha
/Nix&Cabal packaging/.
Anton Latukha
@Anton-Latukha

+====

Lets continue our out of Report and PR discussions here, this chat is for this, any current stuff.

I've fixed something in my understanding and Travis CI.
Anton Latukha
@Anton-Latukha

From now on Travis CI would indeed mandatory do a daily build of the master branch.

Since the Hydra channel builds update several times a day, and Nixpkgs-unstable releases frequently.

And quite freuently PRs can not pass the CI since they need a >50m rebuild of the stack.

========

Now CI prepares a fresh cache for PRs every day, so PR builds would pass in stable times ~9-10 minutes and they more stably would pass in 50 min Travis free tier mark if rebuilds happen.

========

Of course, as always, it would be great to receive the rights to migrate the project to more flexible CI/s, for example, GitHub Actions seem to have much faster machines, much cleaner more cared for Nix profile setup and faster node startup times. These in their sum going to result in the crunch of builds in 3/4 of the current time, wich would be great for testing of the development processes.

And, moreover, to the current practice of heating-up the Nix cache, GitHub Actions also has the virtually unlimited time of the builds, which is in line with Nix stack paradigm. That would result into a much more stable CI.