-
I extensively use nix-shell if that falls under ad-hoc package management. Together with lorri[0], I can place a `shell.nix` in my project repository and when cd'ing into the folder, I will be dropped in a shell with all project specific dependencies available to me.
[0]: https://github.com/nix-community/lorri
-
CodeRabbit
CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
-
If the problem is the syntax and people wants some other format that compiles to nix, there's dhall
https://dhall-lang.org/
https://github.com/dhall-lang/dhall-haskell/tree/master/dhal...
https://www.haskellforall.com/2017/01/typed-nix-programming-...
Dhall is a generic config language with some programming capabilities (but not turing complete) that can compile to json, yaml, and other formats, like in this instance nix.
-
If the problem is the syntax and people wants some other format that compiles to nix, there's dhall
https://dhall-lang.org/
https://github.com/dhall-lang/dhall-haskell/tree/master/dhal...
https://www.haskellforall.com/2017/01/typed-nix-programming-...
Dhall is a generic config language with some programming capabilities (but not turing complete) that can compile to json, yaml, and other formats, like in this instance nix.
-
I think the point is that Nix makes it a lot easier (in some ways) to build a more reliable system GUI, rather than other package managers because of the immutability things.
Users shouldn’t have to care what their GUI uses underneath, but it could be the difference between building your own pseudo-declarative layer (which you now have to maintain in perpetuity and handle all the small edge cases), or getting something that is already declarative as the backend and simply generating a config file from the GUI (https://github.com/nix-gui/nix-gui)
-
No experience with ruby but nixpkgs has sections for many languages. See ruby: https://github.com/NixOS/nixpkgs/blob/master/doc/languages-f.... Also a quick search on the NixOS wiki gives this: https://nixos.wiki/wiki/Packaging/Ruby.
This is less packaging related (more nix lang related) but here is my go to resource for functions: https://teu5us.github.io/nix-lib.html. teu5us extracted the builtin/lib function docs and put them on one place saving you from having it split up into multiple manuals.
One issue with nix is the content has been written down it’s very inaccessible. It is split up between blog posts, discourse, nixpkgs code comments, the wiki, Reddit, etc. When working on something in nix I’ll frequently have 10+ sources of information. The google-fu needed is strong.
My biggest recommendation is to dive into the nixpkgs repo and other public dotfiles as most likely what you are doing has been done.
-
It sounds like https://github.com/jonringer/nix-template might be helpful to you. You can generate a nix expression to build an autotools package, and you can even pull the package info straight from a public repo. In the case of nix, most C-type things fall under stdenv, so that is the template you would want to use.
I barely write any C, but I've gotten very good at building C/C++ applications over the past couple of weeks by fixing broken derivations ahead of a release.
-
I've been looking into Nix a lot lately (but have yet to take the leap - I'll probably start with devshell)
But a couple of projects have come up lately that piqued my interest wrt syntax and alteratives (Since I am not sure about Scheme anymore than Nix (as a langauge) :-)
* https://github.com/maxmcd/bramble
-
InfluxDB
InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
-
I recently got into running my own NixOS server—setting up Nextcloud[0], a website[1], DNS server and most recently a mail server[2] were all incredibly easy, in fact, setting up DNS records is more involved than configuring a mail server on NixOS! This was all done on a server with less than 10 GB of disk space as well.
With additional software such as NixOps, personal servers can also be easily spun up and provisioned.
While inevitably there are rough edges if you look deeply enough, I think the default OOTB experience has been incredible for use on a server and as a day-to-day distro. Highly predictable and declarative configurations is the way to go.
[0] https://github.com/siraben/dotfiles/blob/ffaaacf8888a5c4167b...
[1] https://siraben.dev
[2] https://gitlab.com/simple-nixos-mailserver/nixos-mailserver
-
I recently got into running my own NixOS server—setting up Nextcloud[0], a website[1], DNS server and most recently a mail server[2] were all incredibly easy, in fact, setting up DNS records is more involved than configuring a mail server on NixOS! This was all done on a server with less than 10 GB of disk space as well.
With additional software such as NixOps, personal servers can also be easily spun up and provisioned.
While inevitably there are rough edges if you look deeply enough, I think the default OOTB experience has been incredible for use on a server and as a day-to-day distro. Highly predictable and declarative configurations is the way to go.
[0] https://github.com/siraben/dotfiles/blob/ffaaacf8888a5c4167b...
[1] https://siraben.dev
[2] https://gitlab.com/simple-nixos-mailserver/nixos-mailserver
-
envfs
Fuse filesystem that returns symlinks to executables based on the PATH of the requesting process.
Check out envfs, which automagically puts symlinks like that in place for you in a systematic way!
https://github.com/Mic92/envfs
-
It's called "Guix System" :)
If you have hardware that requires non-free firmware you can use the "linux" package from the nonguix channel: https://github.com/nonguix/nonguix/