Radish alpha
r
rad:z6cFWeWpnZNHh9rUW8phgA3b5yGt
Git libraries for Radicle
Radicle
Git
nix: add Nix flake
Fintan Halpenny committed 2 years ago
commit a37a40ee5e5ba081c2d3b6b50de5a0847c2f8cf2
parent b4ca7f3
7 files changed +1689 -1
added .envrc
@@ -0,0 +1 @@
+
use flake
modified .gitignore
@@ -1,7 +1,6 @@
target
.vscode
tags
-
Cargo.lock
# These are backup files generated by rustfmt
**/*.rs.bk

added Cargo.lock
@@ -0,0 +1,1306 @@
+
# This file is automatically @generated by Cargo.
+
# It is not intended for manual editing.
+
version = 3
+

+
[[package]]
+
name = "adler"
+
version = "1.0.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+

+
[[package]]
+
name = "aho-corasick"
+
version = "1.1.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+
dependencies = [
+
 "memchr",
+
]
+

+
[[package]]
+
name = "anstream"
+
version = "0.6.13"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+
dependencies = [
+
 "anstyle",
+
 "anstyle-parse",
+
 "anstyle-query",
+
 "anstyle-wincon",
+
 "colorchoice",
+
 "utf8parse",
+
]
+

+
[[package]]
+
name = "anstyle"
+
version = "1.0.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+

+
[[package]]
+
name = "anstyle-parse"
+
version = "0.2.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+
dependencies = [
+
 "utf8parse",
+
]
+

+
[[package]]
+
name = "anstyle-query"
+
version = "1.0.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+
dependencies = [
+
 "windows-sys",
+
]
+

+
[[package]]
+
name = "anstyle-wincon"
+
version = "3.0.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+
dependencies = [
+
 "anstyle",
+
 "windows-sys",
+
]
+

+
[[package]]
+
name = "anyhow"
+
version = "1.0.80"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+

+
[[package]]
+
name = "assert_matches"
+
version = "1.5.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
+

+
[[package]]
+
name = "autocfg"
+
version = "1.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+

+
[[package]]
+
name = "base64"
+
version = "0.13.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
+

+
[[package]]
+
name = "bit-set"
+
version = "0.5.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+
dependencies = [
+
 "bit-vec",
+
]
+

+
[[package]]
+
name = "bit-vec"
+
version = "0.6.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+

+
[[package]]
+
name = "bitflags"
+
version = "1.3.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+

+
[[package]]
+
name = "bitflags"
+
version = "2.4.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
+

+
[[package]]
+
name = "bstr"
+
version = "1.9.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+
dependencies = [
+
 "memchr",
+
 "regex-automata 0.4.6",
+
 "serde",
+
]
+

+
[[package]]
+
name = "cc"
+
version = "1.0.89"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a0ba8f7aaa012f30d5b2861462f6708eccd49c3c39863fe083a308035f63d723"
+
dependencies = [
+
 "jobserver",
+
 "libc",
+
]
+

+
[[package]]
+
name = "cfg-if"
+
version = "1.0.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+

+
[[package]]
+
name = "colorchoice"
+
version = "1.0.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+

+
[[package]]
+
name = "crc32fast"
+
version = "1.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
+
dependencies = [
+
 "cfg-if",
+
]
+

+
[[package]]
+
name = "diff"
+
version = "0.1.13"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8"
+

+
[[package]]
+
name = "either"
+
version = "1.10.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+

+
[[package]]
+
name = "env_filter"
+
version = "0.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+
dependencies = [
+
 "log",
+
 "regex",
+
]
+

+
[[package]]
+
name = "env_logger"
+
version = "0.11.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "6c012a26a7f605efc424dd53697843a72be7dc86ad2d01f7814337794a12231d"
+
dependencies = [
+
 "anstream",
+
 "anstyle",
+
 "env_filter",
+
 "humantime",
+
 "log",
+
]
+

+
[[package]]
+
name = "errno"
+
version = "0.3.8"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+
dependencies = [
+
 "libc",
+
 "windows-sys",
+
]
+

+
[[package]]
+
name = "fastrand"
+
version = "2.0.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+

+
[[package]]
+
name = "filetime"
+
version = "0.2.23"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+
dependencies = [
+
 "cfg-if",
+
 "libc",
+
 "redox_syscall",
+
 "windows-sys",
+
]
+

+
[[package]]
+
name = "flate2"
+
version = "1.0.28"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
+
dependencies = [
+
 "crc32fast",
+
 "miniz_oxide",
+
]
+

+
[[package]]
+
name = "fnv"
+
version = "1.0.7"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+

+
[[package]]
+
name = "form_urlencoded"
+
version = "1.2.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+
dependencies = [
+
 "percent-encoding",
+
]
+

+
[[package]]
+
name = "getrandom"
+
version = "0.2.12"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+
dependencies = [
+
 "cfg-if",
+
 "libc",
+
 "wasi",
+
]
+

+
[[package]]
+
name = "git-ref-format"
+
version = "0.3.0"
+
dependencies = [
+
 "git-ref-format-core",
+
 "git-ref-format-macro",
+
]
+

+
[[package]]
+
name = "git-ref-format-core"
+
version = "0.3.0"
+
dependencies = [
+
 "bstr",
+
 "minicbor",
+
 "percent-encoding",
+
 "serde",
+
 "thiserror",
+
]
+

+
[[package]]
+
name = "git-ref-format-macro"
+
version = "0.3.0"
+
dependencies = [
+
 "git-ref-format-core",
+
 "proc-macro-error",
+
 "quote",
+
 "syn 1.0.109",
+
]
+

+
[[package]]
+
name = "git-storage"
+
version = "0.1.0"
+
dependencies = [
+
 "either",
+
 "git2",
+
 "globset",
+
 "libc",
+
 "libgit2-sys",
+
 "parking_lot",
+
 "radicle-git-ext",
+
 "radicle-std-ext",
+
 "thiserror",
+
]
+

+
[[package]]
+
name = "git-storage-test"
+
version = "0.1.0"
+
dependencies = [
+
 "git-storage",
+
 "git2",
+
 "proptest",
+
 "radicle-git-ext",
+
 "radicle-git-ext-test",
+
 "test-helpers",
+
 "uuid",
+
]
+

+
[[package]]
+
name = "git2"
+
version = "0.18.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd"
+
dependencies = [
+
 "bitflags 2.4.2",
+
 "libc",
+
 "libgit2-sys",
+
 "log",
+
 "url",
+
]
+

+
[[package]]
+
name = "globset"
+
version = "0.4.14"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
+
dependencies = [
+
 "aho-corasick",
+
 "bstr",
+
 "log",
+
 "regex-automata 0.4.6",
+
 "regex-syntax 0.8.2",
+
]
+

+
[[package]]
+
name = "humantime"
+
version = "2.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+

+
[[package]]
+
name = "idna"
+
version = "0.5.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+
dependencies = [
+
 "unicode-bidi",
+
 "unicode-normalization",
+
]
+

+
[[package]]
+
name = "itoa"
+
version = "1.0.10"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+

+
[[package]]
+
name = "jobserver"
+
version = "0.1.28"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
+
dependencies = [
+
 "libc",
+
]
+

+
[[package]]
+
name = "lazy_static"
+
version = "1.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+

+
[[package]]
+
name = "libc"
+
version = "0.2.153"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+

+
[[package]]
+
name = "libgit2-sys"
+
version = "0.16.2+1.7.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
+
dependencies = [
+
 "cc",
+
 "libc",
+
 "libz-sys",
+
 "pkg-config",
+
]
+

+
[[package]]
+
name = "libm"
+
version = "0.2.8"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
+

+
[[package]]
+
name = "libz-sys"
+
version = "1.1.15"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
+
dependencies = [
+
 "cc",
+
 "libc",
+
 "pkg-config",
+
 "vcpkg",
+
]
+

+
[[package]]
+
name = "linux-raw-sys"
+
version = "0.4.13"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+

+
[[package]]
+
name = "lock_api"
+
version = "0.4.11"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+
dependencies = [
+
 "autocfg",
+
 "scopeguard",
+
]
+

+
[[package]]
+
name = "log"
+
version = "0.4.21"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+

+
[[package]]
+
name = "matchers"
+
version = "0.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+
dependencies = [
+
 "regex-automata 0.1.10",
+
]
+

+
[[package]]
+
name = "memchr"
+
version = "2.7.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
+

+
[[package]]
+
name = "minicbor"
+
version = "0.13.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "124d887cb82f0b1469bdac3d1b65764a381eed1a54fdab0070e5772b13114521"
+

+
[[package]]
+
name = "miniz_oxide"
+
version = "0.7.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
+
dependencies = [
+
 "adler",
+
]
+

+
[[package]]
+
name = "nonempty"
+
version = "0.5.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9ff7ac1e5ea23db6d61ad103e91864675049644bf47c35912336352fa4e9c109"
+

+
[[package]]
+
name = "nu-ansi-term"
+
version = "0.46.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+
dependencies = [
+
 "overload",
+
 "winapi",
+
]
+

+
[[package]]
+
name = "num-traits"
+
version = "0.2.18"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+
dependencies = [
+
 "autocfg",
+
 "libm",
+
]
+

+
[[package]]
+
name = "once_cell"
+
version = "1.19.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+

+
[[package]]
+
name = "overload"
+
version = "0.1.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+

+
[[package]]
+
name = "parking_lot"
+
version = "0.12.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+
dependencies = [
+
 "lock_api",
+
 "parking_lot_core",
+
]
+

+
[[package]]
+
name = "parking_lot_core"
+
version = "0.9.9"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+
dependencies = [
+
 "cfg-if",
+
 "libc",
+
 "redox_syscall",
+
 "smallvec",
+
 "windows-targets 0.48.5",
+
]
+

+
[[package]]
+
name = "percent-encoding"
+
version = "2.3.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+

+
[[package]]
+
name = "pin-project-lite"
+
version = "0.2.13"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
+

+
[[package]]
+
name = "pkg-config"
+
version = "0.3.30"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+

+
[[package]]
+
name = "ppv-lite86"
+
version = "0.2.17"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+

+
[[package]]
+
name = "pretty_assertions"
+
version = "1.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
+
dependencies = [
+
 "diff",
+
 "yansi",
+
]
+

+
[[package]]
+
name = "proc-macro-error"
+
version = "1.0.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+
dependencies = [
+
 "proc-macro-error-attr",
+
 "proc-macro2",
+
 "quote",
+
 "syn 1.0.109",
+
 "version_check",
+
]
+

+
[[package]]
+
name = "proc-macro-error-attr"
+
version = "1.0.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "version_check",
+
]
+

+
[[package]]
+
name = "proc-macro2"
+
version = "1.0.78"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+
dependencies = [
+
 "unicode-ident",
+
]
+

+
[[package]]
+
name = "proptest"
+
version = "1.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf"
+
dependencies = [
+
 "bit-set",
+
 "bit-vec",
+
 "bitflags 2.4.2",
+
 "lazy_static",
+
 "num-traits",
+
 "rand",
+
 "rand_chacha",
+
 "rand_xorshift",
+
 "regex-syntax 0.8.2",
+
 "rusty-fork",
+
 "tempfile",
+
 "unarray",
+
]
+

+
[[package]]
+
name = "quick-error"
+
version = "1.2.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+

+
[[package]]
+
name = "quote"
+
version = "1.0.35"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+
dependencies = [
+
 "proc-macro2",
+
]
+

+
[[package]]
+
name = "radicle-git-ext"
+
version = "0.7.0"
+
dependencies = [
+
 "git-ref-format",
+
 "git2",
+
 "percent-encoding",
+
 "radicle-std-ext",
+
 "serde",
+
 "thiserror",
+
]
+

+
[[package]]
+
name = "radicle-git-ext-test"
+
version = "0.1.0"
+
dependencies = [
+
 "assert_matches",
+
 "git2",
+
 "minicbor",
+
 "proptest",
+
 "radicle-git-ext",
+
 "serde",
+
 "serde_json",
+
 "test-helpers",
+
]
+

+
[[package]]
+
name = "radicle-std-ext"
+
version = "0.1.0"
+

+
[[package]]
+
name = "radicle-surf"
+
version = "0.19.0"
+
dependencies = [
+
 "anyhow",
+
 "base64",
+
 "flate2",
+
 "git2",
+
 "log",
+
 "nonempty",
+
 "radicle-git-ext",
+
 "radicle-std-ext",
+
 "serde",
+
 "tar",
+
 "thiserror",
+
 "url",
+
]
+

+
[[package]]
+
name = "radicle-surf-test"
+
version = "0.1.0"
+
dependencies = [
+
 "git2",
+
 "nonempty",
+
 "pretty_assertions",
+
 "proptest",
+
 "radicle-git-ext",
+
 "radicle-git-ext-test",
+
 "radicle-surf",
+
 "serde_json",
+
 "test-helpers",
+
 "url",
+
]
+

+
[[package]]
+
name = "rand"
+
version = "0.8.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+
dependencies = [
+
 "libc",
+
 "rand_chacha",
+
 "rand_core",
+
]
+

+
[[package]]
+
name = "rand_chacha"
+
version = "0.3.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+
dependencies = [
+
 "ppv-lite86",
+
 "rand_core",
+
]
+

+
[[package]]
+
name = "rand_core"
+
version = "0.6.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+
dependencies = [
+
 "getrandom",
+
]
+

+
[[package]]
+
name = "rand_xorshift"
+
version = "0.3.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f"
+
dependencies = [
+
 "rand_core",
+
]
+

+
[[package]]
+
name = "redox_syscall"
+
version = "0.4.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+
dependencies = [
+
 "bitflags 1.3.2",
+
]
+

+
[[package]]
+
name = "regex"
+
version = "1.10.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+
dependencies = [
+
 "aho-corasick",
+
 "memchr",
+
 "regex-automata 0.4.6",
+
 "regex-syntax 0.8.2",
+
]
+

+
[[package]]
+
name = "regex-automata"
+
version = "0.1.10"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+
dependencies = [
+
 "regex-syntax 0.6.29",
+
]
+

+
[[package]]
+
name = "regex-automata"
+
version = "0.4.6"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+
dependencies = [
+
 "aho-corasick",
+
 "memchr",
+
 "regex-syntax 0.8.2",
+
]
+

+
[[package]]
+
name = "regex-syntax"
+
version = "0.6.29"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+

+
[[package]]
+
name = "regex-syntax"
+
version = "0.8.2"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
+

+
[[package]]
+
name = "rustix"
+
version = "0.38.31"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
+
dependencies = [
+
 "bitflags 2.4.2",
+
 "errno",
+
 "libc",
+
 "linux-raw-sys",
+
 "windows-sys",
+
]
+

+
[[package]]
+
name = "rusty-fork"
+
version = "0.3.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f"
+
dependencies = [
+
 "fnv",
+
 "quick-error",
+
 "tempfile",
+
 "wait-timeout",
+
]
+

+
[[package]]
+
name = "ryu"
+
version = "1.0.17"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+

+
[[package]]
+
name = "scopeguard"
+
version = "1.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+

+
[[package]]
+
name = "serde"
+
version = "1.0.197"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+
dependencies = [
+
 "serde_derive",
+
]
+

+
[[package]]
+
name = "serde_derive"
+
version = "1.0.197"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.52",
+
]
+

+
[[package]]
+
name = "serde_json"
+
version = "1.0.114"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+
dependencies = [
+
 "itoa",
+
 "ryu",
+
 "serde",
+
]
+

+
[[package]]
+
name = "sharded-slab"
+
version = "0.1.7"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+
dependencies = [
+
 "lazy_static",
+
]
+

+
[[package]]
+
name = "smallvec"
+
version = "1.13.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+

+
[[package]]
+
name = "syn"
+
version = "1.0.109"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "unicode-ident",
+
]
+

+
[[package]]
+
name = "syn"
+
version = "2.0.52"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "unicode-ident",
+
]
+

+
[[package]]
+
name = "tar"
+
version = "0.4.40"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
+
dependencies = [
+
 "filetime",
+
 "libc",
+
 "xattr",
+
]
+

+
[[package]]
+
name = "tempfile"
+
version = "3.10.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+
dependencies = [
+
 "cfg-if",
+
 "fastrand",
+
 "rustix",
+
 "windows-sys",
+
]
+

+
[[package]]
+
name = "test-helpers"
+
version = "0.1.0"
+
dependencies = [
+
 "env_logger",
+
 "log",
+
 "minicbor",
+
 "pretty_assertions",
+
 "proptest",
+
 "serde",
+
 "serde_json",
+
 "tempfile",
+
 "tracing",
+
 "tracing-subscriber",
+
]
+

+
[[package]]
+
name = "tests"
+
version = "0.1.0"
+
dependencies = [
+
 "git-storage-test",
+
 "radicle-git-ext-test",
+
 "radicle-surf-test",
+
]
+

+
[[package]]
+
name = "thiserror"
+
version = "1.0.57"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+
dependencies = [
+
 "thiserror-impl",
+
]
+

+
[[package]]
+
name = "thiserror-impl"
+
version = "1.0.57"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.52",
+
]
+

+
[[package]]
+
name = "thread_local"
+
version = "1.1.8"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+
dependencies = [
+
 "cfg-if",
+
 "once_cell",
+
]
+

+
[[package]]
+
name = "tinyvec"
+
version = "1.6.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+
dependencies = [
+
 "tinyvec_macros",
+
]
+

+
[[package]]
+
name = "tinyvec_macros"
+
version = "0.1.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+

+
[[package]]
+
name = "tracing"
+
version = "0.1.40"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+
dependencies = [
+
 "pin-project-lite",
+
 "tracing-attributes",
+
 "tracing-core",
+
]
+

+
[[package]]
+
name = "tracing-attributes"
+
version = "0.1.27"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+
dependencies = [
+
 "proc-macro2",
+
 "quote",
+
 "syn 2.0.52",
+
]
+

+
[[package]]
+
name = "tracing-core"
+
version = "0.1.32"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+
dependencies = [
+
 "once_cell",
+
 "valuable",
+
]
+

+
[[package]]
+
name = "tracing-log"
+
version = "0.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+
dependencies = [
+
 "log",
+
 "once_cell",
+
 "tracing-core",
+
]
+

+
[[package]]
+
name = "tracing-serde"
+
version = "0.1.3"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1"
+
dependencies = [
+
 "serde",
+
 "tracing-core",
+
]
+

+
[[package]]
+
name = "tracing-subscriber"
+
version = "0.3.18"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+
dependencies = [
+
 "matchers",
+
 "nu-ansi-term",
+
 "once_cell",
+
 "regex",
+
 "serde",
+
 "serde_json",
+
 "sharded-slab",
+
 "smallvec",
+
 "thread_local",
+
 "tracing",
+
 "tracing-core",
+
 "tracing-log",
+
 "tracing-serde",
+
]
+

+
[[package]]
+
name = "unarray"
+
version = "0.1.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94"
+

+
[[package]]
+
name = "unicode-bidi"
+
version = "0.3.15"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+

+
[[package]]
+
name = "unicode-ident"
+
version = "1.0.12"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+

+
[[package]]
+
name = "unicode-normalization"
+
version = "0.1.23"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+
dependencies = [
+
 "tinyvec",
+
]
+

+
[[package]]
+
name = "url"
+
version = "2.5.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+
dependencies = [
+
 "form_urlencoded",
+
 "idna",
+
 "percent-encoding",
+
 "serde",
+
]
+

+
[[package]]
+
name = "utf8parse"
+
version = "0.2.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+

+
[[package]]
+
name = "uuid"
+
version = "1.7.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+
dependencies = [
+
 "getrandom",
+
]
+

+
[[package]]
+
name = "valuable"
+
version = "0.1.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+

+
[[package]]
+
name = "vcpkg"
+
version = "0.2.15"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+

+
[[package]]
+
name = "version_check"
+
version = "0.9.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+

+
[[package]]
+
name = "wait-timeout"
+
version = "0.2.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
+
dependencies = [
+
 "libc",
+
]
+

+
[[package]]
+
name = "wasi"
+
version = "0.11.0+wasi-snapshot-preview1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+

+
[[package]]
+
name = "winapi"
+
version = "0.3.9"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+
dependencies = [
+
 "winapi-i686-pc-windows-gnu",
+
 "winapi-x86_64-pc-windows-gnu",
+
]
+

+
[[package]]
+
name = "winapi-i686-pc-windows-gnu"
+
version = "0.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+

+
[[package]]
+
name = "winapi-x86_64-pc-windows-gnu"
+
version = "0.4.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+

+
[[package]]
+
name = "windows-sys"
+
version = "0.52.0"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+
dependencies = [
+
 "windows-targets 0.52.4",
+
]
+

+
[[package]]
+
name = "windows-targets"
+
version = "0.48.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+
dependencies = [
+
 "windows_aarch64_gnullvm 0.48.5",
+
 "windows_aarch64_msvc 0.48.5",
+
 "windows_i686_gnu 0.48.5",
+
 "windows_i686_msvc 0.48.5",
+
 "windows_x86_64_gnu 0.48.5",
+
 "windows_x86_64_gnullvm 0.48.5",
+
 "windows_x86_64_msvc 0.48.5",
+
]
+

+
[[package]]
+
name = "windows-targets"
+
version = "0.52.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+
dependencies = [
+
 "windows_aarch64_gnullvm 0.52.4",
+
 "windows_aarch64_msvc 0.52.4",
+
 "windows_i686_gnu 0.52.4",
+
 "windows_i686_msvc 0.52.4",
+
 "windows_x86_64_gnu 0.52.4",
+
 "windows_x86_64_gnullvm 0.52.4",
+
 "windows_x86_64_msvc 0.52.4",
+
]
+

+
[[package]]
+
name = "windows_aarch64_gnullvm"
+
version = "0.48.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+

+
[[package]]
+
name = "windows_aarch64_gnullvm"
+
version = "0.52.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+

+
[[package]]
+
name = "windows_aarch64_msvc"
+
version = "0.48.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+

+
[[package]]
+
name = "windows_aarch64_msvc"
+
version = "0.52.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+

+
[[package]]
+
name = "windows_i686_gnu"
+
version = "0.48.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+

+
[[package]]
+
name = "windows_i686_gnu"
+
version = "0.52.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+

+
[[package]]
+
name = "windows_i686_msvc"
+
version = "0.48.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+

+
[[package]]
+
name = "windows_i686_msvc"
+
version = "0.52.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+

+
[[package]]
+
name = "windows_x86_64_gnu"
+
version = "0.48.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+

+
[[package]]
+
name = "windows_x86_64_gnu"
+
version = "0.52.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+

+
[[package]]
+
name = "windows_x86_64_gnullvm"
+
version = "0.48.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+

+
[[package]]
+
name = "windows_x86_64_gnullvm"
+
version = "0.52.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+

+
[[package]]
+
name = "windows_x86_64_msvc"
+
version = "0.48.5"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+

+
[[package]]
+
name = "windows_x86_64_msvc"
+
version = "0.52.4"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+

+
[[package]]
+
name = "xattr"
+
version = "1.3.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
+
dependencies = [
+
 "libc",
+
 "linux-raw-sys",
+
 "rustix",
+
]
+

+
[[package]]
+
name = "yansi"
+
version = "0.5.1"
+
source = "registry+https://github.com/rust-lang/crates.io-index"
+
checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
modified Cargo.toml
@@ -7,3 +7,4 @@ members = [
  "test",
]
resolver = "2"
+
package.version = "0.18.0"

\ No newline at end of file
added flake.lock
@@ -0,0 +1,175 @@
+
{
+
  "nodes": {
+
    "advisory-db": {
+
      "flake": false,
+
      "locked": {
+
        "lastModified": 1710178103,
+
        "narHash": "sha256-Zg8JWAjMWHXtpUI7/nUC8iq3jKONLNSGQSBno5Rho8A=",
+
        "owner": "rustsec",
+
        "repo": "advisory-db",
+
        "rev": "61f79bd5454eb6999417bea4701aa101c0897410",
+
        "type": "github"
+
      },
+
      "original": {
+
        "owner": "rustsec",
+
        "repo": "advisory-db",
+
        "type": "github"
+
      }
+
    },
+
    "crane": {
+
      "inputs": {
+
        "nixpkgs": [
+
          "nixpkgs"
+
        ]
+
      },
+
      "locked": {
+
        "lastModified": 1710003968,
+
        "narHash": "sha256-g8+K+mLiNG5uch35Oy9oDQBAmGSkCcqrd0Jjme7xiG0=",
+
        "owner": "ipetkov",
+
        "repo": "crane",
+
        "rev": "10484f86201bb94bd61ecc5335b1496794fedb78",
+
        "type": "github"
+
      },
+
      "original": {
+
        "owner": "ipetkov",
+
        "repo": "crane",
+
        "type": "github"
+
      }
+
    },
+
    "fenix": {
+
      "inputs": {
+
        "nixpkgs": "nixpkgs",
+
        "rust-analyzer-src": "rust-analyzer-src"
+
      },
+
      "locked": {
+
        "lastModified": 1710310970,
+
        "narHash": "sha256-YREcSnbDH7Es6MDvhmzPBBF3exEg2EP4sd3QCiPyWyI=",
+
        "owner": "nix-community",
+
        "repo": "fenix",
+
        "rev": "df74cae97f59a868ad355af6a703e7845d0ae648",
+
        "type": "github"
+
      },
+
      "original": {
+
        "id": "fenix",
+
        "type": "indirect"
+
      }
+
    },
+
    "flake-utils": {
+
      "inputs": {
+
        "systems": "systems"
+
      },
+
      "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"
+
      }
+
    },
+
    "nixpkgs": {
+
      "locked": {
+
        "lastModified": 1709961763,
+
        "narHash": "sha256-6H95HGJHhEZtyYA3rIQpvamMKAGoa8Yh2rFV29QnuGw=",
+
        "owner": "nixos",
+
        "repo": "nixpkgs",
+
        "rev": "3030f185ba6a4bf4f18b87f345f104e6a6961f34",
+
        "type": "github"
+
      },
+
      "original": {
+
        "owner": "nixos",
+
        "ref": "nixos-unstable",
+
        "repo": "nixpkgs",
+
        "type": "github"
+
      }
+
    },
+
    "nixpkgs_2": {
+
      "locked": {
+
        "lastModified": 1710307192,
+
        "narHash": "sha256-KZMc4hMS21gfneaMGZpdpMWsCFQdtiS0X9lGHIxERW0=",
+
        "owner": "NixOS",
+
        "repo": "nixpkgs",
+
        "rev": "7e972d239d09f5b7db6a43658d7888f4aa9eea1d",
+
        "type": "github"
+
      },
+
      "original": {
+
        "owner": "NixOS",
+
        "ref": "release-23.11",
+
        "repo": "nixpkgs",
+
        "type": "github"
+
      }
+
    },
+
    "root": {
+
      "inputs": {
+
        "advisory-db": "advisory-db",
+
        "crane": "crane",
+
        "fenix": "fenix",
+
        "flake-utils": "flake-utils",
+
        "nixpkgs": "nixpkgs_2",
+
        "rust-overlay": "rust-overlay"
+
      }
+
    },
+
    "rust-analyzer-src": {
+
      "flake": false,
+
      "locked": {
+
        "lastModified": 1710248332,
+
        "narHash": "sha256-5Ozfx1xSscOrdCQoTLvcJHTtxgQ15YrXpjqce4vdzkQ=",
+
        "owner": "rust-lang",
+
        "repo": "rust-analyzer",
+
        "rev": "a2e274142f35d21fd28d28655f4af8e8531ab649",
+
        "type": "github"
+
      },
+
      "original": {
+
        "owner": "rust-lang",
+
        "ref": "nightly",
+
        "repo": "rust-analyzer",
+
        "type": "github"
+
      }
+
    },
+
    "rust-overlay": {
+
      "inputs": {
+
        "flake-utils": [
+
          "flake-utils"
+
        ],
+
        "nixpkgs": [
+
          "nixpkgs"
+
        ]
+
      },
+
      "locked": {
+
        "lastModified": 1710295923,
+
        "narHash": "sha256-B7wIarZOh5nNnj4GTOOYcxAwVGTO8y0dRSOzd6PtYE8=",
+
        "owner": "oxalica",
+
        "repo": "rust-overlay",
+
        "rev": "a30facbf72f29e5c930f394f637559f46a855e8b",
+
        "type": "github"
+
      },
+
      "original": {
+
        "owner": "oxalica",
+
        "repo": "rust-overlay",
+
        "type": "github"
+
      }
+
    },
+
    "systems": {
+
      "locked": {
+
        "lastModified": 1681028828,
+
        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+
        "owner": "nix-systems",
+
        "repo": "default",
+
        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+
        "type": "github"
+
      },
+
      "original": {
+
        "owner": "nix-systems",
+
        "repo": "default",
+
        "type": "github"
+
      }
+
    }
+
  },
+
  "root": "root",
+
  "version": 7
+
}
added flake.nix
@@ -0,0 +1,205 @@
+
{
+
  description = "Improved types and functionality for using Git in Radicle";
+

+
  inputs = {
+
    nixpkgs.url = "github:NixOS/nixpkgs/release-23.11";
+

+
    crane = {
+
      url = "github:ipetkov/crane";
+
      inputs.nixpkgs.follows = "nixpkgs";
+
    };
+

+
    rust-overlay = {
+
      url = "github:oxalica/rust-overlay";
+
      inputs = {
+
        nixpkgs.follows = "nixpkgs";
+
        flake-utils.follows = "flake-utils";
+
      };
+
    };
+

+
    flake-utils.url = "github:numtide/flake-utils";
+

+
    advisory-db = {
+
      url = "github:rustsec/advisory-db";
+
      flake = false;
+
    };
+
  };
+

+
  nixConfig = {
+
    keepOutputs = true;
+
  };
+

+
  outputs = {
+
    self,
+
    nixpkgs,
+
    crane,
+
    fenix,
+
    flake-utils,
+
    advisory-db,
+
    rust-overlay,
+
    ...
+
  }:
+
    flake-utils.lib.eachDefaultSystem (system: let
+
      pname = "radicle-git";
+
      pkgs = import nixpkgs {
+
        inherit system;
+
        overlays = [(import rust-overlay)];
+
      };
+

+
      inherit (pkgs) lib;
+

+
      rustToolChain = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain;
+
      craneLib = (crane.mkLib pkgs).overrideToolchain rustToolChain;
+

+
      srcFilters = path: type:
+
      # Allow data/git-platinum.tgz
+
        (lib.hasSuffix "\.tgz" path)
+
        ||
+
        # Default filter from crane (allow .rs files)
+
        (craneLib.filterCargoSources path type);
+

+
      src = lib.cleanSourceWith {
+
        src = ./.;
+
        filter = srcFilters;
+
      };
+

+
      # Common arguments can be set here to avoid repeating them later
+
      commonArgs = {
+
        inherit pname;
+
        inherit src;
+
        strictDeps = true;
+

+
        buildInputs =
+
          [
+
            pkgs.git
+
            # Add additional build inputs here
+
          ]
+
          ++ lib.optionals pkgs.stdenv.isDarwin [
+
            # Additional darwin specific inputs can be set here
+
            pkgs.libiconv
+
          ];
+
      };
+

+
      # Build *just* the cargo dependencies, so we can reuse
+
      # all of that work (e.g. via cachix) when running in CI
+
      cargoArtifacts =
+
        craneLib.buildDepsOnly commonArgs;
+

+
      # Build the actual crate itself, reusing the dependency
+
      # artifacts from above.
+

+
      radicle-git-ext = craneLib.buildPackage (commonArgs
+
        // {
+
          inherit (craneLib.crateNameFromCargoToml {cargoToml = ./radicle-git-ext/Cargo.toml;});
+
          doCheck = false;
+
          inherit cargoArtifacts;
+
        });
+
      radicle-std-ext = craneLib.buildPackage (commonArgs
+
        // {
+
          inherit (craneLib.crateNameFromCargoToml {cargoToml = ./radicle-std-ext/Cargo.toml;});
+
          doCheck = false;
+
          inherit cargoArtifacts;
+
        });
+
      radicle-surf = craneLib.buildPackage (commonArgs
+
        // {
+
          inherit (craneLib.crateNameFromCargoToml {cargoToml = ./radicle-surf/Cargo.toml;});
+
          inherit cargoArtifacts;
+
          doCheck = false;
+
        });
+

+
      # Test crates
+
      radicle-git-ext-test = craneLib.buildPackage (commonArgs
+
        // {
+
          inherit (craneLib.crateNameFromCargoToml {cargoToml = ./radicle-git-ext/t/Cargo.toml;});
+
          inherit cargoArtifacts;
+
          doCheck = false;
+
        });
+
      radicle-surf-test = craneLib.buildPackage (commonArgs
+
        // {
+
          inherit (craneLib.crateNameFromCargoToml {cargoToml = ./radicle-surf/t/Cargo.toml;});
+
          inherit cargoArtifacts;
+
          doCheck = false;
+
        });
+
    in {
+
      # Formatter
+
      formatter = pkgs.alejandra;
+

+
      # Set of checks that are run: `nix flake check`
+
      checks = {
+
        # Build the crate as part of `nix flake check` for convenience
+
        inherit radicle-git-ext;
+
        inherit radicle-surf;
+
        inherit radicle-git-ext-test;
+
        inherit radicle-surf-test;
+

+
        # Run clippy (and deny all warnings) on the crate source,
+
        # again, reusing the dependency artifacts from above.
+
        #
+
        # Note that this is done as a separate derivation so that
+
        # we can block the CI if there are issues here, but not
+
        # prevent downstream consumers from building our crate by itself.
+
        clippy = craneLib.cargoClippy (commonArgs
+
          // {
+
            inherit cargoArtifacts;
+
            cargoClippyExtraArgs = "--all-targets -- --deny warnings";
+
          });
+

+
        doc = craneLib.cargoDoc (commonArgs
+
          // {
+
            inherit cargoArtifacts;
+
          });
+

+
        # Check formatting
+
        fmt = craneLib.cargoFmt {
+
          inherit pname;
+
          inherit src;
+
        };
+

+
        # Audit dependencies
+
        audit = craneLib.cargoAudit {
+
          inherit src advisory-db;
+
        };
+

+
        # Audit licenses
+
        deny = craneLib.cargoDeny {
+
          inherit pname;
+
          inherit src;
+
        };
+

+
        # Run tests with cargo-nextest
+
        nextest = craneLib.cargoNextest (commonArgs
+
          // {
+
            inherit cargoArtifacts;
+
            partitions = 1;
+
            partitionType = "count";
+
            nativeBuildInputs = [
+
              # git is required so the sandbox can access it.
+
              pkgs.git
+
            ];
+
            # Ensure dev is used since we rely on env variables being
+
            # set in tests.
+
            buildPhase = ''
+
              export CARGO_PROFILE=dev;
+
            '';
+
          });
+
      };
+

+
      packages = {
+
        inherit radicle-git-ext;
+
        inherit radicle-surf;
+
        inherit radicle-git-ext-test;
+
        inherit radicle-surf-test;
+
      };
+

+
      devShells.default = craneLib.devShell {
+
        # Extra inputs can be added here; cargo and rustc are provided by default.
+
        packages = [
+
          pkgs.cargo-deny
+
          pkgs.cargo-nextest
+
          pkgs.cargo-watch
+
          pkgs.ripgrep
+
          pkgs.rust-analyzer
+
        ];
+
      };
+
    });
+
}
added rust-toolchain
@@ -0,0 +1 @@
+
1.76