Nix: Better Way for Fun and Profit by birkey
Every project depends on existing software that is beyond your
control. Nix DSL enables you to declaratively specify your projects
dependencies, a repo or a tar-ball down to the file digest of its
content, which is what gives nix superpowers of being a deterministic
and reproducible package manager. This means that if your inputs stays
the same, nix guarantees that it produces the exact same output
regardless of when and where. Below is a flake that pulls in latest
version of Clojure into your project.
{ # optional attribute description = "My awesome Clojure/ClojureScript project"; # required attribute inputs = { # nix dsl fns useful for writing flakes flake-utils.url = "github:numtide/flake-utils/v1.0.0"; # Pins state of the packages to a specific commit sha pinnedPkgs.url = "github:NixOS/nixpkgs/c46290747b2aaf090f48a478270feb858837bf11"; }; # required attribute outputs = { self, flake-utils, pinnedPkgs }@inputs : flake-utils.lib.eac