Hacker News new | ask | show | jobs
by __MatrixMan__ 837 days ago
It seems like you can define radicle repos as flake inputs like so: https://gist.github.com/MatrixManAtYrService/b527300542b6fdd...

Although maybe this approach is cheating because it's relying on https and not some kind of hash-linked P2P magic (which would definitely require modifying nix to make work). I guess there's something similar to the IPFS gateway going on: somebody is hosting a bridge into radicle space. It would be interesting to get this working without dependency on that bridge.

Anyhow, modify your project's flake accordingly and your version of `rad` will track with that radicle repo. No curl-to-bash required.

1 comments

IIUC, you should be able to use it with git-remote-rad[0] via builtins.fetchGit. Flakes would probably need upstream support, though.

Seems to work for git-remote-hg, anyway:

nix-repl> (builtins.fetchGit { url = "hg::https://www.public-software-group.org/mercurial/lfapi/"; rev = "34366bf575c8c77c8d3b76d32940c1658cb948a4"; }).outPath

"/nix/store/8dwyms22iwy4fq0b1593i34m88jk574j-source"

[0]: https://app.radicle.xyz/nodes/seed.radicle.xyz/rad:z3gqcJUoA...

Yeah, Nix's fetchGit just calls out to git; which is great for seamlessly handling weird SSH setups and the like.

Nix itself has a plugin mechanism, but its rarely used (since it can harm reproducibility; and TBH that seems to be the only reason to use it, for those very rare situations that it's desirable)