DeterminateSystems / zero-to-nix

Zero to Nix is your guide to learning Nix and flakes. Created by Determinate Systems.

Home Page:https://zero-to-nix.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Overall impression

alper opened this issue · comments

I did the quick start. It did a bunch of stuff.

Then after there is a void and no realistic onramp for anybody who wants to learn more it seems.

That combination makes this guide feel like a magic trick.

The Learn More page provides some suggestions about other places to look: https://zero-to-nix.com/start/learn-more. Zero to Nix doesn't purport to be an all-encompassing guide but rather tries to provide some initial conceptual "wins" that can be hard to come by and that we didn't think other sources provide. It sounds like you got Nix installed and accomplished some things with it; we consider that a success. We may expand the scope of Z2N at a later date.

Based on its tone and its lack of actionable suggestions, this is not a constructive issue. I'm closing it.

I understand that your definition of success may have been met but my overall impression is at this point tending negative. Didn't know how else to give that feedback.

Just constructively: Of course I tried the "learn more" resources but then I found out relatively quickly that there is a huge gap between where I am and what those things talk about.

Fair enough. We will indeed take this into account in future work on Z2N.

What do you want to learn more about? Where are you trying to get to? That'll help us continue building the bridge.

Two main jobs tho be done at the moment:

  • Developing and compiling Rust for deployment which seems like it's a non-starter from a macOS system given all the cross-compilation issues. I'll have to figure out something here anyway, but the complexity is going to grow relatively quickly and adding Nix there seems like it overcomplicates things more than it helps.
  • Replacing homebrew and rtx on my system was something I had high hopes for but documentation for home-manager is very inaccessible and the blogposts I've seen don't really provide a nice onramp or any clear way say how you do brew upgrade.

@alper For Rust on macOS I agree that cross-compilation is tricky; I've never really gotten it to work for any language. Personally, I use a remote builder on nixbuild for both x86_64-linux and aarch64-linux builds. Setup is relatively smooth in my experience and it's the best way I know of to just go on building without having to think about it. You can also run a Linux builder locally.

As for Home Manager, I've written a bit about it and have my own configuration but lots of folks have their setups on GitHub and mine really isn't anything special. You might also be interested in Fleek which provides non-Nix abstractions over Home Manager.

Replacing homebrew

Ah, I see now that this issue pretty much blocks Nix being a homebrew replacement: NixOS/nix#7967

My approach is that I basically just use Home Manager with whatever the pinned version of Nixpkgs provides for anything that I need globally (Git, wget, etc.). Otherwise I strive to make everything project specific (compilers, runtimes, etc). In general, Homebrew encourages keeping a large storehouse of global packages but because I use a minimal set of global things I don't miss Homebrew that much.

OK. I'd probably keep the global stuff in homebrew because it's really well understood and then see about moving tools from rtx/asdf to nix maybe.