nix-doc
rules_nixpkgs
nix-doc | rules_nixpkgs | |
---|---|---|
3 | 5 | |
187 | 264 | |
- | 1.1% | |
6.8 | 9.0 | |
about 2 months ago | 10 days ago | |
Rust | Starlark | |
GNU Lesser General Public License v3.0 only | Apache License 2.0 |
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.
nix-doc
-
We want to make Nix better
I love nix, I've been using it for the last 2 years, I have a very stable setup from these 2 years of effort [0], and I just can't recommend Nix for Linux beginners, why?
It's not because of the nix language, It's not because of the CLI, it's because everything is scattered, you have to consult many places to find out how to do things with Nix, here is an example:
Usually, when I need a new complex program, like Steam, I first check the system-wide configuration [1], the wiki [2] and the package list [3], if I just want it on my user, I need to check if Home Manager has an option [4], if it doesn't, I can try using the "home.packages" option. Now, if I need to override something on the package, I need to remember how to do it with [5] [6] (while checking the source code for the package in parallel to find the options).
And then sometimes, on very rare occasions, I need to fine tune something with the nix language, so I need to check the builtins/lib docs [7], but some builtins are not there, so I need to either use nix-doc [8] or find the docs inside the code-bases [9] [10] (they are split between both repos)
For me, this is one of the main pain points of using Nix / NixOS that needs to be solved.
[0] - https://github.com/shiryel/nixos-dotfiles
[1] - https://search.nixos.org/options
[2] - https://nixos.wiki/wiki/Steam
[3] - https://search.nixos.org/packages
[4] - https://mipmip.github.io/home-manager-option-search/
[5] - https://nixos.org/manual/nixos/stable/#sec-customising-packa...
[6] - https://nixos.org/guides/nix-pills/nixpkgs-overriding-packag...
[7] - https://teu5us.github.io/nix-lib.html
[8] - https://github.com/lf-/nix-doc
[9] - https://github.com/NixOS/nix
[10] - https://github.com/NixOS/nixpkgs
- Our Roadmap for Nix
- nix-doc v0.5 released, adding ctags generation for Nix scripts
rules_nixpkgs
- Crafting container images without Dockerfiles
-
Our Roadmap for Nix
I have spent a little bit of time working on a prototype of a setup like this, and have needed to write a lot of (hacky) glue and BUILD files.
I take it you have departed quite a bit from https://github.com/tweag/rules_nixpkgs ? Are you generating BUILD.bazel files for nixpkgs, or are you doing that by hand?
-
nix-shell, but make it lovely
I'm a fan of Tweag's rules_nixpkgs for bazel: https://github.com/tweag/rules_nixpkgs
-
Bazel 5.0 LTS with the new external dependency subsystem "Bzlmod"
Check out rules_nixpkgs as another way to get hermetic python. It does require that you install Nix, but everything else is driven from the Bazel side. Works for us on Linux and macos.
-
We Went All in on Sqlc/Pgx for Postgres and Go
Cool, thanks for the link.
For what it's worth, we use rules_nixpkgs to source Postgres (for Linux and Darwin) as well as things such as C and Python toolchains, and it's been working really well. It does require that the machine have Nix installed, though, but that opens up access to Nix's wide array of prebuilt packages.
https://github.com/tweag/rules_nixpkgs
What are some alternatives?
nickel - Better configuration for less
bazel-skylib - Common useful functions and rules for Bazel
nix-index - Quickly locate nix packages with specific files [maintainers=@bennofs @figsoda @raitobezarius]
pike - Generate CRUD gRPC backends from single YAML description.
deploy-rs - A simple multi-profile Nix-flake deploy tool.
sqlc - Generate type-safe code from SQL
colmena - A simple, stateless NixOS deployment tool
goyesql - Parse SQL files with multiple named queries and automatically prepare and scan them into structs.
nix-portable - Nix - Static, Permissionless, Installation-free, Pre-configured
sqlparser-rs - Extensible SQL Lexer and Parser for Rust
nix - Nix, the purely functional package manager
SQLBoiler - Generate a Go ORM tailored to your database schema.