Pijul is a distributed version control system (DVCS) that is focuses on patches instead of snapshots. At the time of writing, Nix flakes does not & cannot support Pijul input pinning requiring an input pinner like Nixtamal to automate it.
How to pin a Nest remote
Nest is an open source Pijul forge written in Rust. It is the home of the source code for Pijul, but also Nest itself. Nest also appears to be running NixOS (yay!), but at the time of writing the code is highly coupled to experimental flakes & not modular (no exposed overlay, no plain packages, NixOS modules are stateful with a curried attrset of dependencies (would have been solved with overlays)) which make it next to unusable for anyone trying to run this code.
Latest state from nest.pijul.com
// manifest.kdl inputs { nest { archive { url "https://nest.pijul.com/pijul/nest/archive.tar.gz?state={{fresh_value}}" } fresh-cmd { $ curl -sL "https://nest.pijul.com/pijul/nest:main/change" | htmlq --text "'#main-content .list-row:first-of-type div:last-child .hash'" | tr -d "[[:space:]]" } } }
For the maker of Nest, it would nice if
-
There was a
pijul ls-remotelike Git to get this data without cURLing HTML -
If it needs to stay HTML (short or long term), then use more semantic class/ID names in HTML so we don’t have to be looking in such a brittle manner.
Additionally, the Nix code needs severe cleanup. The process of making it stable-Nix-compatible with overlays tends to have all the complexity & bad patterns fall out as a result!