angerman changed the topic of #haskell.nix to: https://input-output-hk.github.io/haskell.nix - alternative haskell infrastructure for nix; logs at https://logs.nix.samueldr.com/haskell.nix
<tnks> shapr: that might not be your problem, but it's still something I feel it's not a good practice, even for "quick start" guides.
<tnks> Not your fault, just something that takes time to convince the community of.
<shapr> I'd prefer task specific quick start guides
<shapr> b4afb5f1a8a5bfe210ca2cf348ce52c2db9f4b34 seems to be the most recent commit that passed tests
<shapr> tnks: do you have a working haskell.nix project I could steal from?
<shapr> work codebase is too customised, I think
<tnks> shapr: what I have readily available is factored into pieces that are not minimal for your purposes.
<tnks> I mean, it's not nearly as complicated as what we have at work, but still not what I'd recommend sharing.
<shapr> fair enough
<tnks> Also, I'm not building my own Haskell with it as much as building other people's, so for instance, you could take a look at my Nix expression to build HLS with Haskell.nix: https://github.com/shajra/nix-haskell-hls/blob/master/default.nix
<shapr> that is a later step in my todo chain, so that's nice
<shapr> 1. get a simple project working with haskell.nix 2. get hls working with that project and haskell.nix
<tnks> shapr: still, other than the fact that I'm building source I downloaded from the internet, as opposed to code I'm developing locally, it's pretty close.
<tnks> shapr: that whole project has documentation I'm currently working on to help people get set up with your 2.
<tnks> I've been working on it off and on for weeks. Still not quite done.
<tnks> Found myself writing a few helper scripts because I got tired of documenting corner case work-arounds.
<shapr> yeah, automate them away forever
<tnks> Just ended up making a wrapper for hls-wrapper that automatically detects if you have a Nix shell and goes into it before running hls-wrapper.
<shapr> oh that's smart
<tnks> Kind of like Stack's built-in Nix integration, but much more principled about never using `<nixpkgs>`.
<shapr> I don't understand why that's significant
<shapr> I have so much to learn about nix
<tnks> After I square away my HLS project, my next thing to update is my Nix tutorials, which are targeting exactly your perspective as a user: 1) getting started with Nix 2) advice on using Nix with Haskell that isn't so much of a toy that it's bad advice.
<tnks> shapr: `<nixpkgs>` reads it's values from `NIX_PATH`, which as an environment variable can vary too much... for most people it updates with `nix-channel` updates.
<shapr> ah!
<tnks> So people use Nix because it's extremely deterministic, and then angle brackets just throws that to the wind.
<shapr> I didn't know that
<tnks> On top of that, even if you got a stable version of Nixpkgs, loading it with `{}` is bad too, because it will look in ~/.config/nixpkgs` for extra configuration. And people might have junk there that gets picked up.
<shapr> That would explain why haskell.nix suggests pinning to a particular version
<tnks> Yeah, this is why Niv or Flakes are really important for real work.
<tnks> I mean, you can do it without either, but it's kind of tedious.
<shapr> I'm not gonna dig into those until I have basic haskell things working
<shapr> one step at a time, don't let myself get overwhelmed
<shapr> or off track
<shapr> tnks: so I want to try writing a basic file duplicate finder, first step is to get enough libraries imported that I can just hash all the files
<shapr> that's the cheap and easy way
<shapr> then maybe bin by file size
<shapr> but first I need a project that builds at all!
* shapr sighs
* shapr takes a break
<tnks> sorry, this is exactly why I'm working on these docs. All this started when I started using Nix in a company _without_ a lot of Nix expertise. And I needed to give them _something_ that wasn't just cruel and unusual. They didn't sign up for that degree of maintenance burden.
<tnks> but that documentation has been a work in progress, and often times, people power through without it, or they just give up on Nix.
<shapr> I'll power through, it'll just take me longer
<tnks> Still, all that was before Haskell.nix. And at least the docs for Haskell.nix are somewhat decent.
<tnks> But I think it's missing one tutorial with an accompanying example.
<tnks> Which is all I really wanted to contribute there. I just haven't gotten to it.
<angerman> hamishmack: is working on some longer intro explaination blogpost. But I think that will take some more time as well.
acarrico has joined #haskell.nix
<shapr> I still want a getting started tutorial
__monty__ has joined #haskell.nix
hekkaidekapus_ is now known as hekkaidekapus
fendor_ has joined #haskell.nix
fendor_ has quit [Read error: Connection reset by peer]
<shapr> ok, one more try
fendor_ has joined #haskell.nix
fendor has quit [Ping timeout: 256 seconds]
fendor_ is now known as fendor
<shapr> How does everyone else here start a new project with haskell.nix ?
<shapr> Anybody?
__monty__ has quit [Quit: leaving]
fendor has quit [Remote host closed the connection]
ChanServ has quit [*.net *.split]
ChanServ has joined #haskell.nix
julm has quit [Remote host closed the connection]
julm has joined #haskell.nix
<stites[m]1> I've got an old template I use: https://github.com/stites/haskell.nix-niv I think my next greenfield project I need to update it with flakes, but probably not anytime soon
hekkaidekapus_ has joined #haskell.nix
hekkaidekapus has quit [Ping timeout: 240 seconds]
hekkaidekapus_ has quit [Remote host closed the connection]
acarrico has quit [Ping timeout: 240 seconds]
hekkaidekapus_ has joined #haskell.nix
<shapr> stites[m]1: thanks! I'll try it