From d40c0896e31f267d26b7d2ef1e8469cc0f9cbfc9 Mon Sep 17 00:00:00 2001 From: Alexander Lyon Date: Fri, 5 Apr 2024 13:55:49 +0100 Subject: [PATCH] add next-build-test binary / library --- Cargo.lock | 2286 ++++++++++++++++- Cargo.toml | 7 + .../crates/next-build-test/Cargo.toml | 50 + .../next-swc/crates/next-build-test/build.rs | 3 + .../crates/next-build-test/src/lib.rs | 142 + .../crates/next-build-test/src/main.rs | 50 + 6 files changed, 2416 insertions(+), 122 deletions(-) create mode 100644 packages/next-swc/crates/next-build-test/Cargo.toml create mode 100644 packages/next-swc/crates/next-build-test/build.rs create mode 100644 packages/next-swc/crates/next-build-test/src/lib.rs create mode 100644 packages/next-swc/crates/next-build-test/src/main.rs diff --git a/Cargo.lock b/Cargo.lock index f1e0ab00bc2e0..45b81a1ae09a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -82,6 +82,12 @@ dependencies = [ "alloc-no-stdlib", ] +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + [[package]] name = "allsorts" version = "0.14.1" @@ -125,6 +131,12 @@ dependencies = [ "libc", ] +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + [[package]] name = "ansi_term" version = "0.12.1" @@ -203,6 +215,12 @@ version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "db55d72333851e17d572bec876e390cd3b11eb1ef53ae821dd9f3b653d2b4569" +[[package]] +name = "arc-swap" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" + [[package]] name = "arg_enum_proc_macro" version = "0.3.4" @@ -444,6 +462,29 @@ dependencies = [ "serde", ] +[[package]] +name = "bindgen" +version = "0.69.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +dependencies = [ + "bitflags 2.5.0", + "cexpr", + "clang-sys", + "itertools 0.12.0", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.58", + "which", +] + [[package]] name = "binding_macros" version = "0.64.23" @@ -559,6 +600,26 @@ dependencies = [ "thiserror", ] +[[package]] +name = "bstr" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" +dependencies = [ + "memchr", + "regex-automata 0.4.6", + "serde", +] + +[[package]] +name = "btoi" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad" +dependencies = [ + "num-traits", +] + [[package]] name = "built" version = "0.5.2" @@ -618,6 +679,12 @@ dependencies = [ "serde", ] +[[package]] +name = "bytesize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" + [[package]] name = "camino" version = "1.1.6" @@ -662,6 +729,12 @@ dependencies = [ "thiserror", ] +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + [[package]] name = "cc" version = "1.0.83" @@ -672,6 +745,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + [[package]] name = "cfg-expr" version = "0.15.4" @@ -703,6 +785,44 @@ dependencies = [ "windows-targets 0.48.1", ] +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half 2.4.1", +] + +[[package]] +name = "clang-sys" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +dependencies = [ + "glob", + "libc", + "libloading", +] + [[package]] name = "clap" version = "4.5.2" @@ -753,6 +873,12 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" +[[package]] +name = "clru" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807" + [[package]] name = "cobs" version = "0.2.3" @@ -1027,6 +1153,44 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "futures", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "tokio", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools 0.10.5", +] + [[package]] name = "critical-section" version = "1.1.1" @@ -1125,6 +1289,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + [[package]] name = "crypto-common" version = "0.1.6" @@ -1531,11 +1701,17 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +[[package]] +name = "faster-hex" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" + [[package]] name = "fastrand" -version = "2.0.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "fdeflate" @@ -1615,9 +1791,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -1648,6 +1824,12 @@ dependencies = [ "libc", ] +[[package]] +name = "fuchsia-cprng" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + [[package]] name = "funty" version = "2.0.0" @@ -1839,144 +2021,1647 @@ dependencies = [ ] [[package]] -name = "glob" -version = "0.3.1" +name = "gitoxide-core" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "64f76df9785e69349a6b4a1ba0b97c07ffc9791962080bb64f5225b01f51bcab" +dependencies = [ + "anyhow", + "bytesize", + "gix 0.57.1", + "gix-fsck", + "gix-pack 0.46.1", + "gix-status 0.4.1", + "gix-transport 0.40.1", + "layout-rs", + "open", + "tempfile", + "thiserror", +] [[package]] -name = "glyph-names" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3531d702d6c1a3ba92a5fb55a404c7b8c476c8e7ca249951077afcbe4bc807f" +name = "gix" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd025382892c7b500a9ce1582cd803f9c2ebfe44aff52e9c7f86feee7ced75e" +dependencies = [ + "gix-actor 0.29.1", + "gix-attributes 0.21.1", + "gix-command", + "gix-commitgraph 0.23.2", + "gix-config 0.33.1", + "gix-credentials 0.23.1", + "gix-date", + "gix-diff 0.39.1", + "gix-discover 0.28.1", + "gix-features 0.37.2", + "gix-filter 0.8.1", + "gix-fs 0.9.1", + "gix-glob 0.15.1", + "gix-hash", + "gix-hashtable", + "gix-ignore 0.10.1", + "gix-index 0.28.2", + "gix-lock 12.0.1", + "gix-macros", + "gix-mailmap 0.21.1", + "gix-negotiate 0.11.1", + "gix-object 0.40.1", + "gix-odb 0.56.1", + "gix-pack 0.46.1", + "gix-path", + "gix-pathspec 0.5.1", + "gix-prompt", + "gix-ref 0.40.1", + "gix-refspec 0.21.1", + "gix-revision 0.25.1", + "gix-revwalk 0.11.1", + "gix-sec", + "gix-status 0.4.1", + "gix-submodule 0.7.1", + "gix-tempfile 12.0.1", + "gix-trace", + "gix-traverse 0.36.2", + "gix-url 0.26.1", + "gix-utils", + "gix-validate", + "gix-worktree 0.29.1", + "gix-worktree-state 0.6.1", + "once_cell", + "parking_lot", + "signal-hook", + "smallvec", + "thiserror", + "unicode-normalization", +] [[package]] -name = "h2" -version = "0.3.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap 2.2.3", - "slab", - "tokio", - "tokio-util", - "tracing", +name = "gix" +version = "0.61.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4e0e59a44bf00de058ee98d6ecf3c9ed8f8842c1da642258ae4120d41ded8f7" +dependencies = [ + "gix-actor 0.31.1", + "gix-archive", + "gix-attributes 0.22.2", + "gix-command", + "gix-commitgraph 0.24.2", + "gix-config 0.36.1", + "gix-credentials 0.24.2", + "gix-date", + "gix-diff 0.42.0", + "gix-dir", + "gix-discover 0.31.0", + "gix-features 0.38.1", + "gix-filter 0.11.1", + "gix-fs 0.10.2", + "gix-glob 0.16.2", + "gix-hash", + "gix-hashtable", + "gix-ignore 0.11.2", + "gix-index 0.31.1", + "gix-lock 13.1.1", + "gix-macros", + "gix-mailmap 0.23.0", + "gix-negotiate 0.13.0", + "gix-object 0.42.1", + "gix-odb 0.59.0", + "gix-pack 0.49.0", + "gix-path", + "gix-pathspec 0.7.3", + "gix-prompt", + "gix-protocol", + "gix-ref 0.43.0", + "gix-refspec 0.23.0", + "gix-revision 0.27.0", + "gix-revwalk 0.13.0", + "gix-sec", + "gix-status 0.8.0", + "gix-submodule 0.10.0", + "gix-tempfile 13.1.1", + "gix-trace", + "gix-transport 0.41.2", + "gix-traverse 0.38.0", + "gix-url 0.27.3", + "gix-utils", + "gix-validate", + "gix-worktree 0.32.0", + "gix-worktree-state 0.9.0", + "gix-worktree-stream", + "once_cell", + "parking_lot", + "regex", + "signal-hook", + "smallvec", + "thiserror", ] [[package]] -name = "half" -version = "1.8.2" +name = "gix-actor" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" +checksum = "da27b5ab4ab5c75ff891dccd48409f8cc53c28a79480f1efdd33184b2dc1d958" +dependencies = [ + "bstr", + "btoi", + "gix-date", + "itoa", + "thiserror", + "winnow 0.5.40", +] [[package]] -name = "handlebars" -version = "4.3.6" +name = "gix-actor" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a" +checksum = "45c3a3bde455ad2ee8ba8a195745241ce0b770a8a26faae59fcf409d01b28c46" dependencies = [ - "log", - "pest", - "pest_derive", - "serde", - "serde_json", + "bstr", + "gix-date", + "gix-utils", + "itoa", "thiserror", + "winnow 0.6.6", ] [[package]] -name = "hash32" -version = "0.2.1" +name = "gix-archive" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +checksum = "32ccfe9fd3c6daa28cb4fecde3e24d709fec6fba5c94d9977dd3a94b992fccce" dependencies = [ - "byteorder", + "bstr", + "gix-date", + "gix-object 0.42.1", + "gix-worktree-stream", + "thiserror", ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "gix-attributes" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "bd6de7603d6bcefcf9a1d87779c4812b14665f71bc870df7ce9ca4c4b309de18" dependencies = [ - "ahash 0.7.8", + "bstr", + "gix-glob 0.15.1", + "gix-path", + "gix-quote", + "gix-trace", + "kstring", + "smallvec", + "thiserror", + "unicode-bom", ] [[package]] -name = "hashbrown" -version = "0.13.2" +name = "gix-attributes" +version = "0.22.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +checksum = "eefb48f42eac136a4a0023f49a54ec31be1c7a9589ed762c45dcb9b953f7ecc8" dependencies = [ - "ahash 0.8.9", + "bstr", + "gix-glob 0.16.2", + "gix-path", + "gix-quote", + "gix-trace", + "kstring", + "smallvec", + "thiserror", + "unicode-bom", ] [[package]] -name = "hashbrown" -version = "0.14.3" +name = "gix-bitmap" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "a371db66cbd4e13f0ed9dc4c0fea712d7276805fccc877f77e96374d317e87ae" +dependencies = [ + "thiserror", +] [[package]] -name = "heapless" -version = "0.7.16" +name = "gix-chunk" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743" +checksum = "45c8751169961ba7640b513c3b24af61aa962c967aaf04116734975cd5af0c52" dependencies = [ - "atomic-polyfill", - "hash32", - "rustc_version 0.4.0", - "serde", - "spin 0.9.8", - "stable_deref_trait", + "thiserror", ] [[package]] -name = "heck" -version = "0.3.3" +name = "gix-command" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +checksum = "f90009020dc4b3de47beed28e1334706e0a330ddd17f5cfeb097df3b15a54b77" dependencies = [ - "unicode-segmentation", + "bstr", + "gix-path", + "gix-trace", + "shell-words", ] [[package]] -name = "heck" -version = "0.4.1" +name = "gix-commitgraph" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "7e8dcbf434951fa477063e05fea59722615af70dc2567377e58c2f7853b010fc" +dependencies = [ + "bstr", + "gix-chunk", + "gix-features 0.37.2", + "gix-hash", + "memmap2 0.9.4", + "thiserror", +] [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "gix-commitgraph" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +checksum = "f7b102311085da4af18823413b5176d7c500fb2272eaf391cfa8635d8bcb12c4" dependencies = [ - "libc", + "bstr", + "gix-chunk", + "gix-features 0.38.1", + "gix-hash", + "memmap2 0.9.4", + "thiserror", ] [[package]] -name = "hermit-abi" -version = "0.3.2" +name = "gix-config" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "367304855b369cadcac4ee5fb5a3a20da9378dd7905106141070b79f85241079" +dependencies = [ + "bstr", + "gix-config-value", + "gix-features 0.37.2", + "gix-glob 0.15.1", + "gix-path", + "gix-ref 0.40.1", + "gix-sec", + "memchr", + "once_cell", + "smallvec", + "thiserror", + "unicode-bom", + "winnow 0.5.40", +] [[package]] -name = "hex" -version = "0.4.3" +name = "gix-config" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +checksum = "7580e05996e893347ad04e1eaceb92e1c0e6a3ffe517171af99bf6b6df0ca6e5" +dependencies = [ + "bstr", + "gix-config-value", + "gix-features 0.38.1", + "gix-glob 0.16.2", + "gix-path", + "gix-ref 0.43.0", + "gix-sec", + "memchr", + "once_cell", + "smallvec", + "thiserror", + "unicode-bom", + "winnow 0.6.6", +] [[package]] -name = "hstr" -version = "0.2.8" +name = "gix-config-value" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0f5356d62012374578cd3a5c013d6586de3efbca3b53379fc1edfbb95c9db14" +checksum = "fbd06203b1a9b33a78c88252a625031b094d9e1b647260070c25b09910c0a804" +dependencies = [ + "bitflags 2.5.0", + "bstr", + "gix-path", + "libc", + "thiserror", +] + +[[package]] +name = "gix-credentials" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380cf3a7c31763743ae6403ec473281d54bfa05628331d09518a350ad5a0971f" +dependencies = [ + "bstr", + "gix-command", + "gix-config-value", + "gix-path", + "gix-prompt", + "gix-sec", + "gix-trace", + "gix-url 0.26.1", + "thiserror", +] + +[[package]] +name = "gix-credentials" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c70146183bd3c7119329a3c7392d1aa0e0adbe48d727f4df31828fe6d8fdaa1" +dependencies = [ + "bstr", + "gix-command", + "gix-config-value", + "gix-path", + "gix-prompt", + "gix-sec", + "gix-trace", + "gix-url 0.27.3", + "thiserror", +] + +[[package]] +name = "gix-date" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180b130a4a41870edfbd36ce4169c7090bca70e195da783dea088dd973daa59c" +dependencies = [ + "bstr", + "itoa", + "thiserror", + "time", +] + +[[package]] +name = "gix-diff" +version = "0.39.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd6a0454f8c42d686f17e7f084057c717c082b7dbb8209729e4e8f26749eb93a" +dependencies = [ + "bstr", + "gix-command", + "gix-filter 0.8.1", + "gix-fs 0.9.1", + "gix-hash", + "gix-object 0.40.1", + "gix-path", + "gix-tempfile 12.0.1", + "gix-trace", + "gix-worktree 0.29.1", + "imara-diff", + "thiserror", +] + +[[package]] +name = "gix-diff" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78e605593c2ef74980a534ade0909c7dc57cca72baa30cbb67d2dda621f99ac4" +dependencies = [ + "bstr", + "gix-command", + "gix-filter 0.11.1", + "gix-fs 0.10.2", + "gix-hash", + "gix-object 0.42.1", + "gix-path", + "gix-tempfile 13.1.1", + "gix-trace", + "gix-worktree 0.32.0", + "imara-diff", + "thiserror", +] + +[[package]] +name = "gix-dir" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3413ccd29130900c17574678aee640e4847909acae9febf6424dc77b782c6d32" +dependencies = [ + "bstr", + "gix-discover 0.31.0", + "gix-fs 0.10.2", + "gix-ignore 0.11.2", + "gix-index 0.31.1", + "gix-object 0.42.1", + "gix-path", + "gix-pathspec 0.7.3", + "gix-trace", + "gix-utils", + "gix-worktree 0.32.0", + "thiserror", +] + +[[package]] +name = "gix-discover" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8d7b2896edc3d899d28a646ccc6df729827a6600e546570b2783466404a42d6" +dependencies = [ + "bstr", + "dunce", + "gix-hash", + "gix-path", + "gix-ref 0.40.1", + "gix-sec", + "thiserror", +] + +[[package]] +name = "gix-discover" +version = "0.31.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64bab49087ed3710caf77e473dc0efc54ca33d8ccc6441359725f121211482b1" +dependencies = [ + "bstr", + "dunce", + "gix-fs 0.10.2", + "gix-hash", + "gix-path", + "gix-ref 0.43.0", + "gix-sec", + "thiserror", +] + +[[package]] +name = "gix-features" +version = "0.37.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d50270e8dcc665f30ba0735b17984b9535bdf1e646c76e638e007846164d57af" +dependencies = [ + "crc32fast", + "flate2", + "gix-hash", + "gix-trace", + "libc", + "once_cell", + "prodash", + "sha1_smol", + "thiserror", + "walkdir", +] + +[[package]] +name = "gix-features" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db4254037d20a247a0367aa79333750146a369719f0c6617fec4f5752cc62b37" +dependencies = [ + "bytes", + "bytesize", + "crc32fast", + "crossbeam-channel", + "flate2", + "gix-hash", + "gix-trace", + "gix-utils", + "jwalk", + "libc", + "once_cell", + "parking_lot", + "prodash", + "sha1_smol", + "thiserror", + "walkdir", +] + +[[package]] +name = "gix-filter" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f598c1d688bf9d57f428ed7ee70c3e786d6f0cc7ed1aeb3c982135af41f6e516" +dependencies = [ + "bstr", + "encoding_rs", + "gix-attributes 0.21.1", + "gix-command", + "gix-hash", + "gix-object 0.40.1", + "gix-packetline-blocking", + "gix-path", + "gix-quote", + "gix-trace", + "gix-utils", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-filter" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c0d1f01af62bfd2fb3dd291acc2b29d4ab3e96ad52a679174626508ce98ef12" +dependencies = [ + "bstr", + "encoding_rs", + "gix-attributes 0.22.2", + "gix-command", + "gix-hash", + "gix-object 0.42.1", + "gix-packetline-blocking", + "gix-path", + "gix-quote", + "gix-trace", + "gix-utils", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-fs" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7555c23a005537434bbfcb8939694e18cad42602961d0de617f8477cc2adecdd" +dependencies = [ + "gix-features 0.37.2", +] + +[[package]] +name = "gix-fs" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2184c40e7910529677831c8b481acf788ffd92427ed21fad65b6aa637e631b8" +dependencies = [ + "gix-features 0.38.1", + "gix-utils", +] + +[[package]] +name = "gix-fsck" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93e2f1f75ecac7101eae2edea649233f146473f3788153addfea3f19ea41c111" +dependencies = [ + "gix-hash", + "gix-hashtable", + "gix-object 0.40.1", +] + +[[package]] +name = "gix-glob" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6232f18b262770e343dcdd461c0011c9b9ae27f0c805e115012aa2b902c1b8" +dependencies = [ + "bitflags 2.5.0", + "bstr", + "gix-features 0.37.2", + "gix-path", +] + +[[package]] +name = "gix-glob" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "682bdc43cb3c00dbedfcc366de2a849b582efd8d886215dbad2ea662ec156bb5" +dependencies = [ + "bitflags 2.5.0", + "bstr", + "gix-features 0.38.1", + "gix-path", +] + +[[package]] +name = "gix-hash" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93d7df7366121b5018f947a04d37f034717e113dcf9ccd85c34b58e57a74d5e" +dependencies = [ + "faster-hex", + "thiserror", +] + +[[package]] +name = "gix-hashtable" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ddf80e16f3c19ac06ce415a38b8591993d3f73aede049cb561becb5b3a8e242" +dependencies = [ + "gix-hash", + "hashbrown 0.14.3", + "parking_lot", +] + +[[package]] +name = "gix-ignore" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f356ce440c60aedb7e72f3447f352f9c5e64352135c8cf33e838f49760fd2643" +dependencies = [ + "bstr", + "gix-glob 0.15.1", + "gix-path", + "unicode-bom", +] + +[[package]] +name = "gix-ignore" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "640dbeb4f5829f9fc14d31f654a34a0350e43a24e32d551ad130d99bf01f63f1" +dependencies = [ + "bstr", + "gix-glob 0.16.2", + "gix-path", + "gix-trace", + "unicode-bom", +] + +[[package]] +name = "gix-index" +version = "0.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e50e63df6c8d4137f7fb882f27643b3a9756c468a1a2cdbe1ce443010ca8778" +dependencies = [ + "bitflags 2.5.0", + "bstr", + "btoi", + "filetime", + "gix-bitmap", + "gix-features 0.37.2", + "gix-fs 0.9.1", + "gix-hash", + "gix-lock 12.0.1", + "gix-object 0.40.1", + "gix-traverse 0.36.2", + "itoa", + "libc", + "memmap2 0.9.4", + "rustix", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-index" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "549621f13d9ccf325a7de45506a3266af0d08f915181c5687abb5e8669bfd2e6" +dependencies = [ + "bitflags 2.5.0", + "bstr", + "filetime", + "fnv", + "gix-bitmap", + "gix-features 0.38.1", + "gix-fs 0.10.2", + "gix-hash", + "gix-lock 13.1.1", + "gix-object 0.42.1", + "gix-traverse 0.38.0", + "gix-utils", + "hashbrown 0.14.3", + "itoa", + "libc", + "memmap2 0.9.4", + "rustix", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-lock" +version = "12.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40a439397f1e230b54cf85d52af87e5ea44cc1e7748379785d3f6d03d802b00" +dependencies = [ + "gix-tempfile 12.0.1", + "gix-utils", + "thiserror", +] + +[[package]] +name = "gix-lock" +version = "13.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c359f81f01b8352063319bcb39789b7ea0887b406406381106e38c4a34d049" +dependencies = [ + "gix-tempfile 13.1.1", + "gix-utils", + "thiserror", +] + +[[package]] +name = "gix-macros" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dff438f14e67e7713ab9332f5fd18c8f20eb7eb249494f6c2bf170522224032" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + +[[package]] +name = "gix-mailmap" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb855ac3aeecbddc51ee6a9487b16b17842e7317fa6c70bd06c47e0cf4625a17" +dependencies = [ + "bstr", + "gix-actor 0.29.1", + "gix-date", + "thiserror", +] + +[[package]] +name = "gix-mailmap" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28a62c86c08a65f99002013d58dd3312b2987705547436bdb90c507dcd9a41b1" +dependencies = [ + "bstr", + "gix-actor 0.31.1", + "gix-date", + "thiserror", +] + +[[package]] +name = "gix-negotiate" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6820bb5e9e259f6ad052826037452ca023d4f248c5d710dce067d89685dd582" +dependencies = [ + "bitflags 2.5.0", + "gix-commitgraph 0.23.2", + "gix-date", + "gix-hash", + "gix-object 0.40.1", + "gix-revwalk 0.11.1", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-negotiate" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54ba98f8c8c06870dfc167d192ca38a38261867b836cb89ac80bc9176dba975e" +dependencies = [ + "bitflags 2.5.0", + "gix-commitgraph 0.24.2", + "gix-date", + "gix-hash", + "gix-object 0.42.1", + "gix-revwalk 0.13.0", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-object" +version = "0.40.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c89402e8faa41b49fde348665a8f38589e461036475af43b6b70615a6a313a2" +dependencies = [ + "bstr", + "btoi", + "gix-actor 0.29.1", + "gix-date", + "gix-features 0.37.2", + "gix-hash", + "gix-validate", + "itoa", + "smallvec", + "thiserror", + "winnow 0.5.40", +] + +[[package]] +name = "gix-object" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d4f8efae72030df1c4a81d02dbe2348e748d9b9a11e108ed6efbd846326e051" +dependencies = [ + "bstr", + "gix-actor 0.31.1", + "gix-date", + "gix-features 0.38.1", + "gix-hash", + "gix-utils", + "gix-validate", + "itoa", + "smallvec", + "thiserror", + "winnow 0.6.6", +] + +[[package]] +name = "gix-odb" +version = "0.56.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46ae6da873de41c6c2b73570e82c571b69df5154dcd8f46dfafc6687767c33b1" +dependencies = [ + "arc-swap", + "gix-date", + "gix-features 0.37.2", + "gix-hash", + "gix-object 0.40.1", + "gix-pack 0.46.1", + "gix-path", + "gix-quote", + "parking_lot", + "tempfile", + "thiserror", +] + +[[package]] +name = "gix-odb" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81b55378c719693380f66d9dd21ce46721eed2981d8789fc698ec1ada6fa176e" +dependencies = [ + "arc-swap", + "gix-date", + "gix-features 0.38.1", + "gix-fs 0.10.2", + "gix-hash", + "gix-object 0.42.1", + "gix-pack 0.49.0", + "gix-path", + "gix-quote", + "parking_lot", + "tempfile", + "thiserror", +] + +[[package]] +name = "gix-pack" +version = "0.46.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "782b4d42790a14072d5c400deda9851f5765f50fe72bca6dece0da1cd6f05a9a" +dependencies = [ + "clru", + "gix-chunk", + "gix-diff 0.39.1", + "gix-features 0.37.2", + "gix-hash", + "gix-hashtable", + "gix-object 0.40.1", + "gix-path", + "gix-tempfile 12.0.1", + "gix-traverse 0.36.2", + "memmap2 0.9.4", + "parking_lot", + "smallvec", + "thiserror", + "uluru", +] + +[[package]] +name = "gix-pack" +version = "0.49.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6391aeaa030ad64aba346a9f5c69bb1c4e5c6fb4411705b03b40b49d8614ec30" +dependencies = [ + "clru", + "gix-chunk", + "gix-features 0.38.1", + "gix-hash", + "gix-hashtable", + "gix-object 0.42.1", + "gix-path", + "gix-tempfile 13.1.1", + "memmap2 0.9.4", + "parking_lot", + "smallvec", + "thiserror", + "uluru", +] + +[[package]] +name = "gix-packetline" +version = "0.17.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b70486beda0903b6d5b65dfa6e40585098cdf4e6365ca2dff4f74c387354a515" +dependencies = [ + "bstr", + "faster-hex", + "gix-trace", + "thiserror", +] + +[[package]] +name = "gix-packetline-blocking" +version = "0.17.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31d42378a3d284732e4d589979930d0d253360eccf7ec7a80332e5ccb77e14a" +dependencies = [ + "bstr", + "faster-hex", + "gix-trace", + "thiserror", +] + +[[package]] +name = "gix-path" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23623cf0f475691a6d943f898c4d0b89f5c1a2a64d0f92bce0e0322ee6528783" +dependencies = [ + "bstr", + "gix-trace", + "home", + "once_cell", + "thiserror", +] + +[[package]] +name = "gix-pathspec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cdb0ee9517c04f89bcaf6366fe893a17154ecb02d88b5c8174f27f1091d1247" +dependencies = [ + "bitflags 2.5.0", + "bstr", + "gix-attributes 0.21.1", + "gix-config-value", + "gix-glob 0.15.1", + "gix-path", + "thiserror", +] + +[[package]] +name = "gix-pathspec" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d479789f3abd10f68a709454ce04cd68b54092ee882c8622ae3aa1bb9bf8496c" +dependencies = [ + "bitflags 2.5.0", + "bstr", + "gix-attributes 0.22.2", + "gix-config-value", + "gix-glob 0.16.2", + "gix-path", + "thiserror", +] + +[[package]] +name = "gix-prompt" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5325eb17ce7b5e5d25dec5c2315d642a09d55b9888b3bf46b7d72e1621a55d8" +dependencies = [ + "gix-command", + "gix-config-value", + "parking_lot", + "rustix", + "thiserror", +] + +[[package]] +name = "gix-protocol" +version = "0.44.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a905cd00946ed8ed6f4f2281f98a889c5b3d38361cd94b8d5a5771d25ab33b99" +dependencies = [ + "bstr", + "gix-credentials 0.24.2", + "gix-date", + "gix-features 0.38.1", + "gix-hash", + "gix-transport 0.41.2", + "gix-utils", + "maybe-async", + "thiserror", + "winnow 0.6.6", +] + +[[package]] +name = "gix-quote" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbff4f9b9ea3fa7a25a70ee62f545143abef624ac6aa5884344e70c8b0a1d9ff" +dependencies = [ + "bstr", + "gix-utils", + "thiserror", +] + +[[package]] +name = "gix-ref" +version = "0.40.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64d9bd1984638d8f3511a2fcbe84fcedb8a5b5d64df677353620572383f42649" +dependencies = [ + "gix-actor 0.29.1", + "gix-date", + "gix-features 0.37.2", + "gix-fs 0.9.1", + "gix-hash", + "gix-lock 12.0.1", + "gix-object 0.40.1", + "gix-path", + "gix-tempfile 12.0.1", + "gix-validate", + "memmap2 0.9.4", + "thiserror", + "winnow 0.5.40", +] + +[[package]] +name = "gix-ref" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd4aba68b925101cb45d6df328979af0681364579db889098a0de75b36c77b65" +dependencies = [ + "gix-actor 0.31.1", + "gix-date", + "gix-features 0.38.1", + "gix-fs 0.10.2", + "gix-hash", + "gix-lock 13.1.1", + "gix-object 0.42.1", + "gix-path", + "gix-tempfile 13.1.1", + "gix-utils", + "gix-validate", + "memmap2 0.9.4", + "thiserror", + "winnow 0.6.6", +] + +[[package]] +name = "gix-refspec" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be219df5092c1735abb2a53eccdf775e945eea6986ee1b6e7a5896dccc0be704" +dependencies = [ + "bstr", + "gix-hash", + "gix-revision 0.25.1", + "gix-validate", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-refspec" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde848865834a54fe4d9b4573f15d0e9a68eaf3d061b42d3ed52b4b8acf880b2" +dependencies = [ + "bstr", + "gix-hash", + "gix-revision 0.27.0", + "gix-validate", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-revision" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa78e1df3633bc937d4db15f8dca2abdb1300ca971c0fabcf9fa97e38cf4cd9f" +dependencies = [ + "bstr", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object 0.40.1", + "gix-revwalk 0.11.1", + "gix-trace", + "thiserror", +] + +[[package]] +name = "gix-revision" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e34196e1969bd5d36e2fbc4467d893999132219d503e23474a8ad2b221cb1e8" +dependencies = [ + "bstr", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object 0.42.1", + "gix-revwalk 0.13.0", + "gix-trace", + "thiserror", +] + +[[package]] +name = "gix-revwalk" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702de5fe5c2bbdde80219f3a8b9723eb927466e7ecd187cfd1b45d986408e45f" +dependencies = [ + "gix-commitgraph 0.23.2", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object 0.40.1", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-revwalk" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7d393ae814eeaae41a333c0ff684b243121cc61ccdc5bbe9897094588047d" +dependencies = [ + "gix-commitgraph 0.24.2", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object 0.42.1", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-sec" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fddc27984a643b20dd03e97790555804f98cf07404e0e552c0ad8133266a79a1" +dependencies = [ + "bitflags 2.5.0", + "gix-path", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "gix-status" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "903f70684bac0456fb87bb30beb4bfaa69d2ddb13bc01d6e1c3591b51be1b11d" +dependencies = [ + "bstr", + "filetime", + "gix-features 0.37.2", + "gix-filter 0.8.1", + "gix-fs 0.9.1", + "gix-hash", + "gix-index 0.28.2", + "gix-object 0.40.1", + "gix-path", + "gix-worktree 0.29.1", + "thiserror", +] + +[[package]] +name = "gix-status" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca216db89947eca709f69ec5851aa76f9628e7c7aab7aa5a927d0c619d046bf2" +dependencies = [ + "bstr", + "filetime", + "gix-diff 0.42.0", + "gix-dir", + "gix-features 0.38.1", + "gix-filter 0.11.1", + "gix-fs 0.10.2", + "gix-hash", + "gix-index 0.31.1", + "gix-object 0.42.1", + "gix-path", + "gix-pathspec 0.7.3", + "gix-worktree 0.32.0", + "thiserror", +] + +[[package]] +name = "gix-submodule" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21d438409222de24dffcc9897f04a9f97903a19fe4835b598ab3bb9b6e0f5e35" +dependencies = [ + "bstr", + "gix-config 0.33.1", + "gix-path", + "gix-pathspec 0.5.1", + "gix-refspec 0.21.1", + "gix-url 0.26.1", + "thiserror", +] + +[[package]] +name = "gix-submodule" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb7ea05666362472fecd44c1fc35fe48a5b9b841b431cc4f85b95e6f20c23ec" +dependencies = [ + "bstr", + "gix-config 0.36.1", + "gix-path", + "gix-pathspec 0.7.3", + "gix-refspec 0.23.0", + "gix-url 0.27.3", + "thiserror", +] + +[[package]] +name = "gix-tempfile" +version = "12.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8ef376d718b1f5f119b458e21b00fbf576bc9d4e26f8f383d29f5ffe3ba3eaa" +dependencies = [ + "dashmap", + "gix-fs 0.9.1", + "libc", + "once_cell", + "parking_lot", + "signal-hook", + "signal-hook-registry", + "tempfile", +] + +[[package]] +name = "gix-tempfile" +version = "13.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a761d76594f4443b675e85928e4902dec333273836bd386906f01e7e346a0d11" +dependencies = [ + "dashmap", + "gix-fs 0.10.2", + "libc", + "once_cell", + "parking_lot", + "signal-hook", + "signal-hook-registry", + "tempfile", +] + +[[package]] +name = "gix-trace" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f924267408915fddcd558e3f37295cc7d6a3e50f8bd8b606cee0808c3915157e" + +[[package]] +name = "gix-transport" +version = "0.40.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be01a22053e9395a409fcaeed879d94f4fcffeb4f46de7143275fbf5e5b39770" +dependencies = [ + "bstr", + "gix-command", + "gix-features 0.37.2", + "gix-packetline", + "gix-quote", + "gix-sec", + "gix-url 0.26.1", + "thiserror", +] + +[[package]] +name = "gix-transport" +version = "0.41.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8e5f72ec9cad9ee44714b9a4ec7427b540a2418b62111f5e3a715bebe1ed9d" +dependencies = [ + "base64 0.21.4", + "bstr", + "gix-command", + "gix-credentials 0.24.2", + "gix-features 0.38.1", + "gix-packetline", + "gix-quote", + "gix-sec", + "gix-url 0.27.3", + "reqwest", + "thiserror", +] + +[[package]] +name = "gix-traverse" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65109e445ba7a409b48f34f570a4d7db72eade1dc1bcff81990a490e86c07161" +dependencies = [ + "gix-commitgraph 0.23.2", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object 0.40.1", + "gix-revwalk 0.11.1", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-traverse" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95aef84bc777025403a09788b1e4815c06a19332e9e5d87a955e1ed7da9bf0cf" +dependencies = [ + "gix-commitgraph 0.24.2", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object 0.42.1", + "gix-revwalk 0.13.0", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-url" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0f17cceb7552a231d1fec690bc2740c346554e3be6f5d2c41dfa809594dc44" +dependencies = [ + "bstr", + "gix-features 0.37.2", + "gix-path", + "home", + "thiserror", + "url", +] + +[[package]] +name = "gix-url" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0db829ebdca6180fbe32be7aed393591df6db4a72dbbc0b8369162390954d1cf" +dependencies = [ + "bstr", + "gix-features 0.38.1", + "gix-path", + "home", + "thiserror", + "url", +] + +[[package]] +name = "gix-utils" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35192df7fd0fa112263bad8021e2df7167df4cc2a6e6d15892e1e55621d3d4dc" +dependencies = [ + "bstr", + "fastrand", + "unicode-normalization", +] + +[[package]] +name = "gix-validate" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e39fc6e06044985eac19dd34d474909e517307582e462b2eb4c8fa51b6241545" +dependencies = [ + "bstr", + "thiserror", +] + +[[package]] +name = "gix-worktree" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53982f8abff0789a9599e644108a1914da61a4d0dede8e45037e744dcb008d52" +dependencies = [ + "bstr", + "gix-attributes 0.21.1", + "gix-features 0.37.2", + "gix-fs 0.9.1", + "gix-glob 0.15.1", + "gix-hash", + "gix-ignore 0.10.1", + "gix-index 0.28.2", + "gix-object 0.40.1", + "gix-path", +] + +[[package]] +name = "gix-worktree" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe78e03af9eec168eb187e05463a981c57f0a915f64b1788685a776bd2ef969c" +dependencies = [ + "bstr", + "gix-attributes 0.22.2", + "gix-features 0.38.1", + "gix-fs 0.10.2", + "gix-glob 0.16.2", + "gix-hash", + "gix-ignore 0.11.2", + "gix-index 0.31.1", + "gix-object 0.42.1", + "gix-path", +] + +[[package]] +name = "gix-worktree-state" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8c74e732224c051370ce78b84748e36de9ace200dc47983da8629740ece20a1" +dependencies = [ + "bstr", + "gix-features 0.37.2", + "gix-filter 0.8.1", + "gix-fs 0.9.1", + "gix-glob 0.15.1", + "gix-hash", + "gix-index 0.28.2", + "gix-object 0.40.1", + "gix-path", + "gix-worktree 0.29.1", + "io-close", + "thiserror", +] + +[[package]] +name = "gix-worktree-state" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "565809f1694d70953c1524e687cd87b378f133c0af7af6e5813fc3c38b3aa25f" +dependencies = [ + "bstr", + "gix-features 0.38.1", + "gix-filter 0.11.1", + "gix-fs 0.10.2", + "gix-glob 0.16.2", + "gix-hash", + "gix-index 0.31.1", + "gix-object 0.42.1", + "gix-path", + "gix-worktree 0.32.0", + "io-close", + "thiserror", +] + +[[package]] +name = "gix-worktree-stream" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6326a3f24d894b9480f8d4f9d77739962e78d67be40b137f80de6fc914cd30ba" +dependencies = [ + "gix-attributes 0.22.2", + "gix-features 0.38.1", + "gix-filter 0.11.1", + "gix-fs 0.10.2", + "gix-hash", + "gix-object 0.42.1", + "gix-path", + "gix-traverse 0.38.0", + "parking_lot", + "thiserror", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "glyph-names" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3531d702d6c1a3ba92a5fb55a404c7b8c476c8e7ca249951077afcbe4bc807f" + +[[package]] +name = "h2" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.2.3", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "handlebars" +version = "4.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a" +dependencies = [ + "log", + "pest", + "pest_derive", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.8", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.9", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash 0.8.9", + "allocator-api2", +] + +[[package]] +name = "heapless" +version = "0.7.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db04bc24a18b9ea980628ecf00e6c0264f3c1426dac36c00cb49b6fbad8b0743" +dependencies = [ + "atomic-polyfill", + "hash32", + "rustc_version 0.4.0", + "serde", + "spin 0.9.8", + "stable_deref_trait", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "hstr" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0f5356d62012374578cd3a5c013d6586de3efbca3b53379fc1edfbb95c9db14" dependencies = [ "hashbrown 0.14.3", "new_debug_unreachable", @@ -2020,6 +3705,12 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +[[package]] +name = "human_format" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3b1f728c459d27b12448862017b96ad4767b1ec2ec5e6434e99f1577f085b8" + [[package]] name = "hyper" version = "0.14.28" @@ -2061,26 +3752,61 @@ dependencies = [ name = "hyper-tls" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "hyper-tungstenite" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "880b8b1c98a5ec2a505c7c90db6d3f6f1f480af5655d9c5b55facc9382a5a5b5" +dependencies = [ + "hyper", + "pin-project", + "tokio", + "tokio-tungstenite", + "tungstenite", +] + +[[package]] +name = "iai-callgrind" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e99bf26f496b13ac6273014f40afda46a233fbfb0289ce50fb4daaad2f2ffc80" +dependencies = [ + "bincode", + "bindgen", + "cc", + "iai-callgrind-macros", + "iai-callgrind-runner", + "regex", +] + +[[package]] +name = "iai-callgrind-macros" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2a4bb39225592c0a28cfca6f70af52ebd8da23f533c2cdd0a3329c1fa252d56" dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.58", ] [[package]] -name = "hyper-tungstenite" -version = "0.9.0" +name = "iai-callgrind-runner" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "880b8b1c98a5ec2a505c7c90db6d3f6f1f480af5655d9c5b55facc9382a5a5b5" +checksum = "c23a951b9eccaa1e38556d27473d1462a9c247a27961812edcaac156af861282" dependencies = [ - "hyper", - "pin-project", - "tokio", - "tokio-tungstenite", - "tungstenite", + "serde", ] [[package]] @@ -2120,9 +3846,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -2163,6 +3889,16 @@ dependencies = [ "thiserror", ] +[[package]] +name = "imara-diff" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e98c1d0ad70fc91b8b9654b1f33db55e59579d3b3de2bffdced0fdb810570cb8" +dependencies = [ + "ahash 0.8.9", + "hashbrown 0.12.3", +] + [[package]] name = "imgref" version = "1.9.4" @@ -2248,12 +3984,31 @@ dependencies = [ "syn 2.0.58", ] +[[package]] +name = "io-close" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cadcf447f06744f8ce713d2d6239bb5bde2c357a452397a9ed90c625da390bc" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "ipnet" version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30e22bd8629359895450b59ea7a776c850561b96a3b1d31321c1949d9e6c9146" +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", +] + [[package]] name = "is-macro" version = "0.3.5" @@ -2266,6 +4021,27 @@ dependencies = [ "syn 2.0.58", ] +[[package]] +name = "is-terminal" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +dependencies = [ + "hermit-abi 0.3.2", + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", +] + [[package]] name = "is_ci" version = "1.1.1" @@ -2344,6 +4120,16 @@ dependencies = [ "serde_json", ] +[[package]] +name = "jwalk" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2735847566356cd2179a2a38264839308f7079fa96e6bd5a42d740460e003c56" +dependencies = [ + "crossbeam", + "rayon", +] + [[package]] name = "kqueue" version = "1.0.8" @@ -2364,12 +4150,27 @@ dependencies = [ "libc", ] +[[package]] +name = "kstring" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3066350882a1cd6d950d055997f379ac37fd39f81cd4d8ed186032eb3c5747" +dependencies = [ + "static_assertions", +] + [[package]] name = "lab" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf36173d4167ed999940f804952e6b08197cae5ad5d572eb4db150ce8ad5d58f" +[[package]] +name = "layout-rs" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84deb28a3a6c839ca42a7341664f32281416d69e2f29deb85aec5cc0243fdea8" + [[package]] name = "lazy-regex" version = "3.0.1" @@ -2399,6 +4200,12 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + [[package]] name = "leb128" version = "0.2.5" @@ -2689,6 +4496,17 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" +[[package]] +name = "maybe-async" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.58", +] + [[package]] name = "maybe-rayon" version = "0.1.1" @@ -2743,6 +4561,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memmap2" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.9.0" @@ -3004,6 +4831,31 @@ dependencies = [ "vergen 7.5.1", ] +[[package]] +name = "next-build-test" +version = "0.1.0" +dependencies = [ + "anyhow", + "criterion", + "futures-util", + "gitoxide-core", + "gix 0.61.0", + "iai-callgrind", + "next-api", + "next-core", + "num_cpus", + "rand 0.8.5", + "serde_json", + "tempdir", + "tokio", + "tokio-stream", + "tracing", + "tracing-subscriber", + "turbo-tasks", + "turbo-tasks-malloc", + "turbopack-binding", +] + [[package]] name = "next-core" version = "0.1.0" @@ -3304,6 +5156,23 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +[[package]] +name = "open" +version = "5.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "449f0ff855d85ddbf1edd5b646d65249ead3f5e422aaa86b7d2d0b049b103e32" +dependencies = [ + "is-wsl", + "libc", + "pathdiff", +] + [[package]] name = "openssl" version = "0.10.47" @@ -3499,9 +5368,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" @@ -3594,7 +5463,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6" dependencies = [ "phf_shared 0.10.0", - "rand", + "rand 0.8.5", ] [[package]] @@ -3604,7 +5473,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" dependencies = [ "phf_shared 0.11.2", - "rand", + "rand 0.8.5", ] [[package]] @@ -3676,6 +5545,34 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +[[package]] +name = "plotters" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" + +[[package]] +name = "plotters-svg" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" +dependencies = [ + "plotters-backend", +] + [[package]] name = "pmutil" version = "0.6.1" @@ -3757,6 +5654,16 @@ dependencies = [ "yansi", ] +[[package]] +name = "prettyplease" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7" +dependencies = [ + "proc-macro2", + "syn 2.0.58", +] + [[package]] name = "priority-queue" version = "1.3.1" @@ -3810,6 +5717,16 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "prodash" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744a264d26b88a6a7e37cbad97953fa233b94d585236310bcbc88474b4092d79" +dependencies = [ + "bytesize", + "human_format", +] + [[package]] name = "psm" version = "0.1.21" @@ -3886,6 +5803,19 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ce082a9940a7ace2ad4a8b7d0b1eac6aa378895f18be598230c5f2284ac05426" +[[package]] +name = "rand" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +dependencies = [ + "fuchsia-cprng", + "libc", + "rand_core 0.3.1", + "rdrand", + "winapi", +] + [[package]] name = "rand" version = "0.8.5" @@ -3894,7 +5824,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -3904,9 +5834,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +dependencies = [ + "rand_core 0.4.2", ] +[[package]] +name = "rand_core" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + [[package]] name = "rand_core" version = "0.6.4" @@ -3951,7 +5896,7 @@ dependencies = [ "num-traits", "once_cell", "paste", - "rand", + "rand 0.8.5", "rand_chacha", "rust_hawktracer", "rustc_version 0.4.0", @@ -4002,6 +5947,15 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "rdrand" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +dependencies = [ + "rand_core 0.3.1", +] + [[package]] name = "react_remove_properties" version = "0.24.7" @@ -4089,6 +6043,12 @@ dependencies = [ "regex-syntax 0.7.5", ] +[[package]] +name = "regex-automata" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" + [[package]] name = "regex-syntax" version = "0.6.29" @@ -4133,6 +6093,15 @@ dependencies = [ "swc_ecma_visit", ] +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + [[package]] name = "rend" version = "0.4.0" @@ -4518,7 +6487,7 @@ version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2bef2ebfde456fb76bbcf9f59315333decc4fda0b2b44b420243c11e0f5ec1f5" dependencies = [ - "half", + "half 1.8.2", "serde", ] @@ -4671,6 +6640,12 @@ dependencies = [ "digest", ] +[[package]] +name = "sha1_smol" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" + [[package]] name = "sha2" version = "0.10.8" @@ -4713,6 +6688,18 @@ dependencies = [ "memmap2 0.6.2", ] +[[package]] +name = "shell-words" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signal-hook" version = "0.3.17" @@ -6456,17 +8443,26 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" +[[package]] +name = "tempdir" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" +dependencies = [ + "rand 0.4.6", + "remove_dir_all", +] + [[package]] name = "tempfile" -version = "3.8.0" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", "fastrand", - "redox_syscall", "rustix", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -6632,6 +8628,16 @@ dependencies = [ "time-core", ] +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -6700,9 +8706,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -6787,7 +8793,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] @@ -6800,7 +8806,7 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] @@ -6910,7 +8916,7 @@ dependencies = [ "http", "httparse", "log", - "rand", + "rand 0.8.5", "sha1", "thiserror", "url", @@ -7597,7 +9603,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", - "rand", + "rand 0.8.5", "static_assertions", ] @@ -7638,6 +9644,15 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +[[package]] +name = "uluru" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c8a2469e56e6e5095c82ccd3afb98dad95f7af7929aab6d8ba8d6e0f73657da" +dependencies = [ + "arrayvec", +] + [[package]] name = "unicase" version = "2.6.0" @@ -7653,6 +9668,12 @@ version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +[[package]] +name = "unicode-bom" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" + [[package]] name = "unicode-canonical-combining-class" version = "0.5.0" @@ -7736,9 +9757,9 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", "idna", @@ -8321,7 +10342,7 @@ dependencies = [ "once_cell", "petgraph", "pin-project", - "rand", + "rand 0.8.5", "rusty_pool", "semver 1.0.18", "serde", @@ -8452,7 +10473,7 @@ dependencies = [ "lexical-sort", "once_cell", "path-clean 1.0.1", - "rand", + "rand 0.8.5", "semver 1.0.18", "serde", "serde_cbor", @@ -8493,6 +10514,18 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082" +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + [[package]] name = "winapi" version = "0.3.9" @@ -8791,9 +10824,18 @@ checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.5.15" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352" dependencies = [ "memchr", ] diff --git a/Cargo.toml b/Cargo.toml index ffabdcc19f398..d692e659a1219 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ members = [ "packages/next-swc/crates/napi", "packages/next-swc/crates/wasm", "packages/next-swc/crates/next-api", + "packages/next-swc/crates/next-build-test", "packages/next-swc/crates/next-build", "packages/next-swc/crates/next-core", "packages/next-swc/crates/next-custom-transforms", @@ -22,6 +23,11 @@ debug-assertions = false [profile.dev.build-override] opt-level = 3 +[profile.release-with-debug] +inherits = "release" +debug = true +lto = "thin" + [workspace.dependencies] # Workspace crates next-api = { path = "packages/next-swc/crates/next-api" } @@ -42,6 +48,7 @@ turbopack-binding = { git = "https://github.com/vercel/turbo.git", tag = "turbop turbo-tasks = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240416.1" } # [TODO]: need to refactor embed_directory! macro usage in next-core turbo-tasks-fs = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240416.1" } +turbo-tasks-malloc = { git = "https://github.com/vercel/turbo.git", tag = "turbopack-240416.1" } # General Deps diff --git a/packages/next-swc/crates/next-build-test/Cargo.toml b/packages/next-swc/crates/next-build-test/Cargo.toml new file mode 100644 index 0000000000000..91aa7fcbd3f80 --- /dev/null +++ b/packages/next-swc/crates/next-build-test/Cargo.toml @@ -0,0 +1,50 @@ +[package] +name = "next-build-test" +version = "0.1.0" +description = "TBD" +license = "MPL-2.0" +edition = "2021" +autobenches = false + +[lints] +workspace = true + +[dependencies] +next-core = { workspace = true, features = ["native-tls"] } +next-api = { workspace = true } +serde_json = { workspace = true } +anyhow = { workspace = true } +tokio = { workspace = true, features = ["full"] } +turbo-tasks-malloc = { workspace = true, default-features = false } +turbopack-binding = { workspace = true, features = [ + "__turbo_tasks", + "__turbo_tasks_memory", + "__turbo_tasks_env", + "__turbo_tasks_fs", + "__turbo_tasks_memory", + "__turbopack", + "__turbopack_nodejs", + "__turbopack_core", + "__turbopack_browser", + "__turbopack_ecmascript", + "__turbopack_ecmascript_runtime", + "__turbopack_env", + "__turbopack_node", +] } +turbo-tasks = { workspace = true } +rand.workspace = true +num_cpus = "1.16.0" +tokio-stream = "0.1.15" +tracing = "0.1" +tracing-subscriber = "0.3" +futures-util = "0.3.30" + +[build-dependencies] +turbopack-binding = { workspace = true, features = ["__turbo_tasks_build"] } + +[dev-dependencies] +criterion = { version = "0.5", features = ["async_tokio"] } +gitoxide-core = "0.35.0" +gix = { version = "0.61.0", features = ["blocking-network-client", "blocking-http-transport-reqwest"] } +iai-callgrind = "0.10.2" +tempdir = "0.3.7" diff --git a/packages/next-swc/crates/next-build-test/build.rs b/packages/next-swc/crates/next-build-test/build.rs new file mode 100644 index 0000000000000..f66b495c19d3b --- /dev/null +++ b/packages/next-swc/crates/next-build-test/build.rs @@ -0,0 +1,3 @@ +fn main() { + turbopack_binding::turbo::tasks_build::generate_register(); +} diff --git a/packages/next-swc/crates/next-build-test/src/lib.rs b/packages/next-swc/crates/next-build-test/src/lib.rs new file mode 100644 index 0000000000000..801e20531ffc5 --- /dev/null +++ b/packages/next-swc/crates/next-build-test/src/lib.rs @@ -0,0 +1,142 @@ +#![feature(future_join)] +#![feature(min_specialization)] +#![feature(arbitrary_self_types)] + +use std::str::FromStr; + +use anyhow::{Context, Result}; +use futures_util::{StreamExt, TryStreamExt}; +use next_api::{ + project::{ProjectContainer, ProjectOptions}, + route::{Endpoint, Route}, +}; + +pub async fn main_inner(strat: Strategy, factor: usize, limit: usize) -> Result<()> { + register(); + + let mut file = std::fs::File::open("project_options.json").with_context(|| { + let path = std::env::current_dir() + .unwrap() + .join("project_options.json"); + format!("loading file at {}", path.display()) + })?; + let data: ProjectOptions = serde_json::from_reader(&mut file).unwrap(); + + let options = ProjectOptions { ..data }; + + let project = ProjectContainer::new(options); + + tracing::info!("collecting endpoints"); + let entrypoints = project.entrypoints().await?; + + let routes = shuffle(entrypoints.routes.clone().into_iter()); + let count = render_routes(routes, strat, factor, limit).await; + tracing::info!("rendered {} pages", count); + + Ok(()) +} + +pub fn register() { + next_api::register(); + include!(concat!(env!("OUT_DIR"), "/register.rs")); +} + +#[derive(PartialEq, Copy, Clone)] +pub enum Strategy { + Sequential, + Concurrent, + Parallel, +} + +impl std::fmt::Display for Strategy { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Strategy::Sequential => write!(f, "sequential"), + Strategy::Concurrent => write!(f, "concurrent"), + Strategy::Parallel => write!(f, "parallel"), + } + } +} + +impl FromStr for Strategy { + type Err = anyhow::Error; + + fn from_str(s: &str) -> Result { + match s { + "sequential" => Ok(Strategy::Sequential), + "concurrent" => Ok(Strategy::Concurrent), + "parallel" => Ok(Strategy::Parallel), + _ => Err(anyhow::anyhow!("invalid strategy")), + } + } +} + +pub fn shuffle<'a, T: 'a>(items: impl Iterator) -> impl Iterator { + use rand::{seq::SliceRandom, thread_rng}; + let mut rng = thread_rng(); + let mut input = items.collect::>(); + input.shuffle(&mut rng); + input.into_iter() +} + +pub async fn render_routes( + routes: impl Iterator, + strategy: Strategy, + factor: usize, + limit: usize, +) -> usize { + tracing::info!( + "rendering routes with {} parallel and strat {}", + factor, + strategy + ); + + let stream = tokio_stream::iter(routes) + .map(move |(name, route)| { + let fut = async move { + tracing::info!("{name}"); + + match route { + Route::Page { + html_endpoint, + data_endpoint: _, + } => { + html_endpoint.write_to_disk().await?; + } + Route::PageApi { endpoint } => { + endpoint.write_to_disk().await?; + } + Route::AppPage(routes) => { + for route in routes { + route.html_endpoint.write_to_disk().await?; + } + } + Route::AppRoute { + original_name: _, + endpoint, + } => { + endpoint.write_to_disk().await?; + } + Route::Conflict => { + tracing::info!("WARN: conflict {}", name); + } + } + + Ok::<_, anyhow::Error>(()) + }; + + async move { + match strategy { + Strategy::Parallel => tokio::task::spawn(fut).await.unwrap(), + _ => fut.await, + } + } + }) + .take(limit) + .buffer_unordered(factor) + .try_collect::>() + .await + .unwrap(); + + stream.len() +} diff --git a/packages/next-swc/crates/next-build-test/src/main.rs b/packages/next-swc/crates/next-build-test/src/main.rs new file mode 100644 index 0000000000000..8f2e390b16cbf --- /dev/null +++ b/packages/next-swc/crates/next-build-test/src/main.rs @@ -0,0 +1,50 @@ +use std::str::FromStr; + +use next_build_test::{main_inner, Strategy}; +use turbo_tasks::TurboTasks; +use turbo_tasks_malloc::TurboMalloc; +use turbopack_binding::turbo::tasks_memory::MemoryBackend; + +// #[global_allocator] +// static ALLOC: turbo_tasks_malloc::TurboMalloc = +// turbo_tasks_malloc::TurboMalloc; + +fn main() { + tracing_subscriber::fmt::init(); + + let mut factor = std::env::args() + .nth(2) + .map(|s| s.parse().unwrap()) + .unwrap_or(num_cpus::get()); + let strat = std::env::args() + .nth(1) + .map(|s| Strategy::from_str(&s)) + .transpose() + .unwrap() + .unwrap_or(Strategy::Sequential); + + let limit = std::env::args() + .nth(3) + .map(|s| s.parse().unwrap()) + .unwrap_or(1); + + if strat == Strategy::Sequential { + factor = 1; + } + + tokio::runtime::Builder::new_multi_thread() + .enable_all() + .on_thread_stop(|| { + TurboMalloc::thread_stop(); + tracing::debug!("threads stopped"); + }) + .build() + .unwrap() + .block_on(async { + let tt = TurboTasks::new(MemoryBackend::new(usize::MAX)); + let x = tt.run_once(main_inner(strat, factor, limit)).await; + tracing::debug!("done"); + x + }) + .unwrap(); +}