feat(radicle): Add option to run on unstable

For testing review in Freshly Baked, coded and I would like to run
unstable radicle

Change-Id: I614df5c138d4b60b6f4827fed9651e7e55ee84fc
Reviewed-on: https://git.clicks.codes/c/Chimera/NixFiles/+/843
Reviewed-by: Samuel Shuert <coded@clicks.codes>
Tested-by: Skyler Grey <minion@clicks.codes>
diff --git a/flake.lock b/flake.lock
index 75a1233..fec320d 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,5 +1,21 @@
 {
   "nodes": {
+    "advisory-db": {
+      "flake": false,
+      "locked": {
+        "lastModified": 1722017365,
+        "narHash": "sha256-9wYR5NZIgI+qzMDlJrUzevR31fvFQRgfjlYp50Xp3Ts=",
+        "owner": "rustsec",
+        "repo": "advisory-db",
+        "rev": "9d024c07ee8c18609b43436bc865abf46636e250",
+        "type": "github"
+      },
+      "original": {
+        "owner": "rustsec",
+        "repo": "advisory-db",
+        "type": "github"
+      }
+    },
     "anyrun": {
       "inputs": {
         "flake-parts": "flake-parts",
@@ -50,6 +66,27 @@
         "url": "https://www.collabora.com/favicon.ico"
       }
     },
+    "crane": {
+      "inputs": {
+        "nixpkgs": [
+          "radicle",
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1722907532,
+        "narHash": "sha256-i/j/dMZPR7uJoQPFTa6UCahLu8kMtozYuR83lIKMERM=",
+        "owner": "ipetkov",
+        "repo": "crane",
+        "rev": "d0c8f4ed8571c533b31c1d68e4ebc534b790cc5c",
+        "type": "github"
+      },
+      "original": {
+        "owner": "ipetkov",
+        "repo": "crane",
+        "type": "github"
+      }
+    },
     "emacs-overlay": {
       "inputs": {
         "flake-utils": "flake-utils",
@@ -177,7 +214,7 @@
     },
     "flake-utils-plus": {
       "inputs": {
-        "flake-utils": "flake-utils_4"
+        "flake-utils": "flake-utils_5"
       },
       "locked": {
         "lastModified": 1715533576,
@@ -235,6 +272,24 @@
         "systems": "systems_5"
       },
       "locked": {
+        "lastModified": 1710146030,
+        "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
+    },
+    "flake-utils_5": {
+      "inputs": {
+        "systems": "systems_6"
+      },
+      "locked": {
         "lastModified": 1694529238,
         "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
         "owner": "numtide",
@@ -506,6 +561,22 @@
     },
     "nixpkgs_3": {
       "locked": {
+        "lastModified": 1722940684,
+        "narHash": "sha256-X8JnSq0ruRWsU4PdYuxV+8W4W66F1lnCcxIZZMWzo4E=",
+        "owner": "NixOS",
+        "repo": "nixpkgs",
+        "rev": "a3103d68517c6ad262ea27c96fc4a38ad81be7a0",
+        "type": "github"
+      },
+      "original": {
+        "owner": "NixOS",
+        "ref": "release-24.05",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "nixpkgs_4": {
+      "locked": {
         "lastModified": 1725534445,
         "narHash": "sha256-Yd0FK9SkWy+ZPuNqUgmVPXokxDgMJoGuNpMEtkfcf84=",
         "owner": "NixOS",
@@ -520,7 +591,7 @@
         "type": "github"
       }
     },
-    "nixpkgs_4": {
+    "nixpkgs_5": {
       "locked": {
         "lastModified": 1725634671,
         "narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
@@ -551,6 +622,28 @@
         "type": "github"
       }
     },
+    "radicle": {
+      "inputs": {
+        "advisory-db": "advisory-db",
+        "crane": "crane",
+        "flake-utils": "flake-utils_4",
+        "nixpkgs": "nixpkgs_3",
+        "rust-overlay": "rust-overlay_2"
+      },
+      "locked": {
+        "lastModified": 1726156797,
+        "narHash": "sha256-mB1SCJuH1iH8FES5Z51dI/EfaeympowKYNkA0R9sovs=",
+        "ref": "refs/heads/master",
+        "rev": "e130b4dc06ca02a035519e1ea86ffeafc788866f",
+        "revCount": 2106,
+        "type": "git",
+        "url": "https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git"
+      },
+      "original": {
+        "type": "git",
+        "url": "https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git"
+      }
+    },
     "root": {
       "inputs": {
         "anyrun": "anyrun",
@@ -567,6 +660,7 @@
         "nixos-hardware": "nixos-hardware",
         "nixpkgs": "nixpkgs_2",
         "nur": "nur",
+        "radicle": "radicle",
         "snowfall-lib": "snowfall-lib",
         "sops-nix": "sops-nix",
         "templates": "templates",
@@ -594,6 +688,27 @@
         "type": "github"
       }
     },
+    "rust-overlay_2": {
+      "inputs": {
+        "nixpkgs": [
+          "radicle",
+          "nixpkgs"
+        ]
+      },
+      "locked": {
+        "lastModified": 1722910815,
+        "narHash": "sha256-v6Vk/xlABhw2QzOa6xh3Jx/IvmlbKbOazFM+bDFQlWU=",
+        "owner": "oxalica",
+        "repo": "rust-overlay",
+        "rev": "7df2ac544c203d21b63aac23bfaec7f9b919a733",
+        "type": "github"
+      },
+      "original": {
+        "owner": "oxalica",
+        "repo": "rust-overlay",
+        "type": "github"
+      }
+    },
     "snowfall-lib": {
       "inputs": {
         "flake-compat": "flake-compat",
@@ -619,7 +734,7 @@
     },
     "sops-nix": {
       "inputs": {
-        "nixpkgs": "nixpkgs_3",
+        "nixpkgs": "nixpkgs_4",
         "nixpkgs-stable": "nixpkgs-stable_2"
       },
       "locked": {
@@ -711,6 +826,21 @@
         "type": "github"
       }
     },
+    "systems_6": {
+      "locked": {
+        "lastModified": 1681028828,
+        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+        "owner": "nix-systems",
+        "repo": "default",
+        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nix-systems",
+        "repo": "default",
+        "type": "github"
+      }
+    },
     "templates": {
       "locked": {
         "lastModified": 1708553502,
@@ -761,7 +891,7 @@
     },
     "zen-browser": {
       "inputs": {
-        "nixpkgs": "nixpkgs_4"
+        "nixpkgs": "nixpkgs_5"
       },
       "locked": {
         "lastModified": 1726001766,
diff --git a/flake.nix b/flake.nix
index eb7b1d1..5cc32f3 100644
--- a/flake.nix
+++ b/flake.nix
@@ -61,6 +61,8 @@
 
     nur.url = "github:nix-community/nur";
 
+    radicle.url = "git+https://seed.radicle.xyz/z3gqcJUoA1n9HaHKufZs5FCSGazv5.git";
+
     snowfall-lib = {
       url = "github:snowfallorg/lib/dev";
       inputs.nixpkgs.follows = "nixpkgs";
diff --git a/modules/home/git/default.nix b/modules/home/git/default.nix
index 9d58ecd..8ee5e5f 100644
--- a/modules/home/git/default.nix
+++ b/modules/home/git/default.nix
@@ -13,6 +13,7 @@
     stgit.enable = lib.mkEnableOption "Install StGit, a tool that makes working with stacked patches easier";
     jj.enable = lib.mkEnableOption "Install jj, a git-compatible VCS, allowing powerful features, performance and stability improvements ontop of git";
     radicle.enable = lib.mkEnableOption "Install Radicle, a peer-to-peer git forge";
+    radicle.unstable = lib.mkEnableOption "Install Radicle from their main branch";
     auth = {
       clicksUsername = lib.mkOption {
         type = lib.types.str;
@@ -106,7 +107,9 @@
       (if config.chimera.git.gitReview.enable then [ pkgs.git-review ] else [ ])
       ++ (if config.chimera.git.stgit.enable then [ pkgs.stgit ] else [ ])
       ++ (if config.chimera.git.jj.enable then [ inputs.jujutsu.packages.${system}.jujutsu ] else [ ])
-      ++ (if config.chimera.git.radicle.enable then [ pkgs.radicle-node ] else [ ]);
+      ++ (if !config.chimera.git.radicle.enable then [ ]
+          else if config.chimera.git.radicle.unstable then [ inputs.radicle.packages.${system}.default ]
+          else [ pkgs.radicle-node ]);
 
     programs.zsh.shellAliases =
       if config.chimera.git.gitReview.enable then { "gr!" = "git review"; } else { };
diff --git a/modules/home/users/coded/default.nix b/modules/home/users/coded/default.nix
index cab136f..1304591 100644
--- a/modules/home/users/coded/default.nix
+++ b/modules/home/users/coded/default.nix
@@ -32,7 +32,10 @@
     };
 
     chimera.git = {
-      radicle.enable = true;
+      radicle = {
+        enable = true;
+        unstable = true;
+      };
       jj.enable = true;
       gitReview.enable = true;
       auth.clicksUsername = "coded";
diff --git a/modules/home/users/minion/default.nix b/modules/home/users/minion/default.nix
index ac2fa0a..02de642 100644
--- a/modules/home/users/minion/default.nix
+++ b/modules/home/users/minion/default.nix
@@ -48,7 +48,10 @@
       delta.enable = true;
       stgit.enable = true;
       jj.enable = true;
-      radicle.enable = true;
+      radicle = {
+        enable = true;
+        unstable = true;
+      };
       gitReview.enable = true;
       auth.clicksUsername = "minion";
       gpg.enable = true;