<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