nixos-beginners-handbook
nix-helpers
nixos-beginners-handbook | nix-helpers | |
---|---|---|
1 | 3 | |
95 | 13 | |
- | - | |
0.0 | 7.0 | |
over 3 years ago | 5 months ago | |
Nix | ||
- | Creative Commons Zero v1.0 Universal |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nixos-beginners-handbook
-
The Curse of NixOS
This is a pretty good example the kind of victim blaming I'm talking about. It's a kind of insidious toxicity that permeates certain communities, although I've not been able to put my finger on what exactly brings it out, or why it's so tightly clung to as an acceptable behavior in some places.
I actually tried to help for awhile, and even started a help guide https://github.com/kstenerud/nixos-beginners-handbook/
But eventually one gets ground down and demoralized enough to just give up. It's a real shame, because I LOVE what NixOS is trying to accomplish.
nix-helpers
-
Lock Files Considered Harmful
My preferred approach is to use one of those `foo2nix` tools, but as part of the build process (using the "import from derivation" feature of Nix). There's no need to keep such build products in git.
I've done this professionally for Maven projects (mostly Scala) via mvn2nix, and personally I've been doing it for many years with Haskell via cabal2nix (Nixpkgs now has `haskellPackages.callCabal2nix`; before that I was hacking together similar things like https://github.com/Warbo/nix-helpers/blob/45a66d714877233680... )
-
NixOS RFC 136 accepted: A plan to stabilize the new CLI and Flakes incrementally
Yes, to get Nixpkgs it's much faster to use `fetchTarball`.
You're right that `builtins.fetchTarball` is faster than `builtins.fetchGit` (due to the ridiculous amount of commits in the Nixpkgs repo). I like to keep such definitions in a single, company-wide/project-agnostic git repo (what the Nix Pills series calls the "repository pattern"), and have individual projects import them via `builtins.fetchGit`.
Many years ago we didn't have `builtins.fetchGit`, so had to use the 'fetchgit' function from Nixpkgs instead. That created a chicken-and-egg situation if we wanted to take the Nixpkgs version from some other git repo; hence needing to "bootstrap" via `(import { config = {}; }).fetchgit`, and cross our fingers that `NIX_PATH` wasn't set to some crazy value (which, of course, I would inevitably do... https://github.com/Warbo/haskell-te/blob/24475a229908caa3447... )
Note that we need `config = {};` when importing Nixpkgs to avoid an impurity which tries to read files in $HOME. More recent versions of Nixpkgs also need `overlays = [];` to avoid another impurity (looks like this changed at Nixpkgs 17.03, according to https://github.com/Warbo/nix-helpers/blob/master/nixpkgs.nix )
-
The Curse of NixOS
Where nixpkgs2105 is a pinned revision of the Nixpkgs repo, defined in another overlay. My current Nix config has pinned Nixpkgs versions going back to 2016. For example, here's a bunch of such overrides:
https://github.com/Warbo/nix-config/blob/master/overrides/fi...
At the moment I'm using niv to manage the pinned Nixpkgs versions (the 'repoXXXX' entries):
https://github.com/Warbo/nix-helpers/blob/master/nix/sources...
What are some alternatives?
nixpkgs-config - ~/.config/nixpkgs
nix-fpga-tools
nix-prisma-example - An example Prisma project using nix
star-history - The missing star history graph of GitHub repos - https://star-history.com
nvd