diff --git a/Cargo.lock b/Cargo.lock index 2c93e70e2..41620572f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9,7 +9,7 @@ dependencies = [ "clap", "hipcheck-sdk", "hipcheck-workspace-hack", - "jiff 0.1.16", + "jiff 0.1.29", "serde", "serde_json", "tokio", @@ -18,19 +18,13 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.22.0" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" dependencies = [ "gimli", ] -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - [[package]] name = "adler2" version = "2.0.0" @@ -57,7 +51,7 @@ dependencies = [ "hipcheck-kdl", "hipcheck-sdk", "hipcheck-workspace-hack", - "miette 7.4.0", + "miette 7.5.0", "pathbuf", "schemars", "serde", @@ -74,7 +68,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom 0.2.15", "once_cell", "version_check", "zerocopy 0.7.35", @@ -91,9 +84,9 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.18" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" [[package]] name = "android-tzdata" @@ -110,11 +103,20 @@ dependencies = [ "libc", ] +[[package]] +name = "ansiterm" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ab587f5395da16dd2e6939adf53dede583221b320cadfb94e02b5b7b9bf24cc" +dependencies = [ + "winapi", +] + [[package]] name = "anstream" -version = "0.6.14" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -127,36 +129,37 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.0" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.3" +version = "3.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "once_cell", + "windows-sys 0.59.0", ] [[package]] @@ -167,9 +170,9 @@ checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" [[package]] name = "arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" dependencies = [ "derive_arbitrary", ] @@ -182,9 +185,9 @@ checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -192,12 +195,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -[[package]] -name = "ascii" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eab1c04a571841102f5345a8fc0f6bb3d31c315dec879b5c6e42e40ce7ffa34e" - [[package]] name = "async-channel" version = "2.3.1" @@ -234,9 +231,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", @@ -251,9 +248,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" @@ -276,7 +273,7 @@ dependencies = [ "rustversion", "serde", "sync_wrapper", - "tower 0.5.2", + "tower", "tower-layer", "tower-service", ] @@ -302,17 +299,17 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.73" +version = "0.3.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" dependencies = [ "addr2line", - "cc", "cfg-if", "libc", - "miniz_oxide 0.7.4", + "miniz_oxide", "object", "rustc-demangle", + "windows-targets 0.52.6", ] [[package]] @@ -351,7 +348,7 @@ dependencies = [ "hipcheck-kdl", "hipcheck-sdk", "hipcheck-workspace-hack", - "miette 7.4.0", + "miette 7.5.0", "pathbuf", "serde", "serde_json", @@ -368,9 +365,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.6.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "blake3" @@ -396,29 +393,29 @@ dependencies = [ [[package]] name = "boxcar" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225450ee9328e1e828319b48a89726cffc1b0ad26fd9211ad435de9fa376acae" +checksum = "6740c6e2fc6360fa57c35214c7493826aee95993926092606f27c983b40837be" dependencies = [ "loom", ] [[package]] name = "bstr" -version = "1.11.3" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "serde", ] [[package]] name = "bumpalo" -version = "3.16.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "bytecount" @@ -438,6 +435,12 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +[[package]] +name = "bytesize" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e93abca9e28e0a1b9877922aacb20576e05d4679ffa78c3d6dc22a26a216659" + [[package]] name = "bzip2" version = "0.5.2" @@ -459,9 +462,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.16" +version = "1.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +checksum = "525046617d8376e3db1deffb079e91cef90a89fc3ca5c185bbf8c9ecdd15cd5c" dependencies = [ "jobserver", "libc", @@ -480,6 +483,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chrono" version = "0.4.40" @@ -521,9 +530,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.32" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" +checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" dependencies = [ "clap_builder", "clap_derive", @@ -541,9 +550,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.32" +version = "4.5.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" +checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" dependencies = [ "anstream", "anstyle", @@ -577,22 +586,9 @@ checksum = "cbd0f76e066e64fdc5631e3bb46381254deab9ef1158292f27c8c57e3bf3fe59" [[package]] name = "colorchoice" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" - -[[package]] -name = "combine" -version = "3.8.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3da6baa321ec19e1cc41d31bf599f00c783d0517095cdaf0332e3fe8d20680" -dependencies = [ - "ascii", - "byteorder", - "either", - "memchr", - "unreachable", -] +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "combine" @@ -650,6 +646,16 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation" version = "0.10.0" @@ -668,9 +674,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] @@ -701,18 +707,18 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -738,9 +744,44 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.20" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crossterm" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f476fe445d41c9e991fd07515a6f463074b782242ccf4a5b7b1d1012e70824df" +dependencies = [ + "bitflags 2.9.0", + "crossterm_winapi", + "libc", + "mio 0.8.11", + "parking_lot", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + +[[package]] +name = "crosstermion" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "3bb8ffe01d18963d7cdeb1b90d80ff1fc2adc8dd05517a8dfce4844f7157ecc4" +dependencies = [ + "ansiterm", + "crossterm", +] [[package]] name = "crypto-common" @@ -782,7 +823,7 @@ dependencies = [ "base64 0.21.7", "cyclonedx-bom-macros", "fluent-uri", - "indexmap 2.7.1", + "indexmap 2.9.0", "once_cell", "ordered-float 4.6.0", "purl", @@ -810,9 +851,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ "darling_core", "darling_macro", @@ -820,9 +861,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ "fnv", "ident_case", @@ -834,9 +875,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.10" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", @@ -866,9 +907,9 @@ checksum = "da692b8d1080ea3045efaab14434d40468c3d8657e42abddfffca87b428f4c1b" [[package]] name = "deranged" -version = "0.3.11" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", "serde", @@ -876,9 +917,9 @@ dependencies = [ [[package]] name = "derive_arbitrary" -version = "1.3.2" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800" dependencies = [ "proc-macro2", "quote", @@ -976,9 +1017,9 @@ checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" [[package]] name = "either" @@ -1021,9 +1062,9 @@ dependencies = [ [[package]] name = "env_filter" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6dc8c8ff84895b051f07a0e65f975cf225131742531338752abfb324e4449ff" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" dependencies = [ "log", "regex", @@ -1037,31 +1078,31 @@ checksum = "c7f84e12ccf0a7ddc17a6c41c93326024c42920d7ee630d04950e6926645c0fe" [[package]] name = "env_logger" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcaee3d8e3cfc3fd92428d477bc97fc29ec8716d180c0d74c643bb26166660e0" +checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" dependencies = [ "anstream", "anstyle", "env_filter", - "humantime", + "jiff 0.2.6", "log", ] [[package]] name = "equivalent" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1096,20 +1137,20 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.1.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" [[package]] name = "filetime" -version = "0.2.23" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" +checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", - "windows-sys 0.52.0", + "libredox", + "windows-sys 0.59.0", ] [[package]] @@ -1120,19 +1161,19 @@ checksum = "94c970b525906eb37d3940083aa65b95e481fc1857d467d13374e1d925cfc163" [[package]] name = "fixedbitset" -version = "0.4.2" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" [[package]] name = "flate2" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11faaf5a5236997af9848be0bef4db95824b1d534ebc64d0f0c6cf3e67bd38dc" +checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" dependencies = [ "crc32fast", "libz-sys", - "miniz_oxide 0.8.5", + "miniz_oxide", ] [[package]] @@ -1152,9 +1193,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "foldhash" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "form_urlencoded" @@ -1302,29 +1343,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.13.3+wasi-0.2.2", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", "wasm-bindgen", - "windows-targets 0.52.6", ] [[package]] name = "gimli" -version = "0.29.0" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "git" @@ -1335,7 +1378,7 @@ dependencies = [ "gix", "hipcheck-sdk", "hipcheck-workspace-hack", - "jiff 0.1.16", + "jiff 0.1.29", "lru", "schemars", "serde", @@ -1344,21 +1387,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "git2" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5220b8ba44c68a9a7f7a7659e864dd73692e417ef0211bea133c7b74e031eeb9" -dependencies = [ - "bitflags 2.6.0", - "libc", - "libgit2-sys", - "log", - "openssl-probe", - "openssl-sys", - "url", -] - [[package]] name = "github" version = "0.4.0" @@ -1381,17 +1409,19 @@ dependencies = [ [[package]] name = "gix" -version = "0.70.0" +version = "0.71.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736f14636705f3a56ea52b553e67282519418d9a35bb1e90b3a9637a00296b68" +checksum = "a61e71ec6817fc3c9f12f812682cfe51ee6ea0d2e27e02fc3849c35524617435" dependencies = [ "gix-actor", "gix-attributes", "gix-command", "gix-commitgraph", "gix-config", + "gix-credentials", "gix-date", "gix-diff", + "gix-dir", "gix-discover", "gix-features", "gix-filter", @@ -1402,11 +1432,13 @@ dependencies = [ "gix-ignore", "gix-index", "gix-lock", + "gix-negotiate", "gix-object", "gix-odb", "gix-pack", "gix-path", "gix-pathspec", + "gix-prompt", "gix-protocol", "gix-ref", "gix-refspec", @@ -1417,11 +1449,13 @@ dependencies = [ "gix-submodule", "gix-tempfile", "gix-trace", + "gix-transport", "gix-traverse", "gix-url", "gix-utils", "gix-validate", "gix-worktree", + "gix-worktree-state", "once_cell", "smallvec", "thiserror 2.0.12", @@ -1429,23 +1463,23 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.33.2" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20018a1a6332e065f1fcc8305c1c932c6b8c9985edea2284b3c79dc6fa3ee4b2" +checksum = "f438c87d4028aca4b82f82ba8d8ab1569823cfb3e5bc5fa8456a71678b2a20e7" dependencies = [ "bstr", "gix-date", "gix-utils", "itoa", "thiserror 2.0.12", - "winnow 0.6.22", + "winnow 0.7.6", ] [[package]] name = "gix-attributes" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f151000bf662ef5f641eca6102d942ee31ace80f271a3ef642e99776ce6ddb38" +checksum = "e4e25825e0430aa11096f8b65ced6780d4a96a133f81904edceebb5344c8dd7f" dependencies = [ "bstr", "gix-glob", @@ -1478,25 +1512,25 @@ dependencies = [ [[package]] name = "gix-command" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb410b84d6575db45e62025a9118bdbf4d4b099ce7575a76161e898d9ca98df1" +checksum = "c0378995847773a697f8e157fe2963ecf3462fe64be05b7b3da000b3b472def8" dependencies = [ "bstr", "gix-path", + "gix-quote", "gix-trace", "shell-words", ] [[package]] name = "gix-commitgraph" -version = "0.26.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e23a8ec2d8a16026a10dafdb6ed51bcfd08f5d97f20fa52e200bc50cb72e4877" +checksum = "043cbe49b7a7505150db975f3cb7c15833335ac1e26781f615454d9d640a28fe" dependencies = [ "bstr", "gix-chunk", - "gix-features", "gix-hash", "memmap2", "thiserror 2.0.12", @@ -1504,9 +1538,9 @@ dependencies = [ [[package]] name = "gix-config" -version = "0.43.0" +version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "377c1efd2014d5d469e0b3cd2952c8097bce9828f634e04d5665383249f1d9e9" +checksum = "9c6f830bf746604940261b49abf7f655d2c19cadc9f4142ae9379e3a316e8cfa" dependencies = [ "bstr", "gix-config-value", @@ -1520,39 +1554,56 @@ dependencies = [ "smallvec", "thiserror 2.0.12", "unicode-bom", - "winnow 0.6.22", + "winnow 0.7.6", ] [[package]] name = "gix-config-value" -version = "0.14.11" +version = "0.14.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11365144ef93082f3403471dbaa94cfe4b5e72743bdb9560719a251d439f4cee" +checksum = "8dc2c844c4cf141884678cabef736fd91dd73068b9146e6f004ba1a0457944b6" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "bstr", "gix-path", "libc", "thiserror 2.0.12", ] +[[package]] +name = "gix-credentials" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25322308aaf65789536b860d21137c3f7b69004ac4971c15c1abb08d3951c062" +dependencies = [ + "bstr", + "gix-command", + "gix-config-value", + "gix-path", + "gix-prompt", + "gix-sec", + "gix-trace", + "gix-url", + "thiserror 2.0.12", +] + [[package]] name = "gix-date" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c57c477b645ee248b173bb1176b52dd528872f12c50375801a58aaf5ae91113f" +checksum = "daa30058ec7d3511fbc229e4f9e696a35abd07ec5b82e635eff864a2726217e4" dependencies = [ "bstr", "itoa", - "jiff 0.1.16", + "jiff 0.2.6", "thiserror 2.0.12", ] [[package]] name = "gix-diff" -version = "0.50.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62afb7f4ca0acdf4e9dad92065b2eb1bf2993bcc5014b57bc796e3a365b17c4d" +checksum = "a2c975dad2afc85e4e233f444d1efbe436c3cdcf3a07173984509c436d00a3f8" dependencies = [ "bstr", "gix-command", @@ -1569,11 +1620,31 @@ dependencies = [ "thiserror 2.0.12", ] +[[package]] +name = "gix-dir" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5879497bd3815d8277ed864ec8975290a70de5b62bb92d2d666a4cefc5d4793b" +dependencies = [ + "bstr", + "gix-discover", + "gix-fs", + "gix-ignore", + "gix-index", + "gix-object", + "gix-path", + "gix-pathspec", + "gix-trace", + "gix-utils", + "gix-worktree", + "thiserror 2.0.12", +] + [[package]] name = "gix-discover" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c2414bdf04064e0f5a5aa029dfda1e663cf9a6c4bfc8759f2d369299bb65d8" +checksum = "f7fb8a4349b854506a3915de18d3341e5f1daa6b489c8affc9ca0d69efe86781" dependencies = [ "bstr", "dunce", @@ -1587,30 +1658,30 @@ dependencies = [ [[package]] name = "gix-features" -version = "0.40.0" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bfdd4838a8d42bd482c9f0cb526411d003ee94cc7c7b08afe5007329c71d554" +checksum = "016d6050219458d14520fe22bdfdeb9cb71631dec9bc2724767c983f60109634" dependencies = [ + "bytes", "crc32fast", "crossbeam-channel", "flate2", - "gix-hash", + "gix-path", "gix-trace", "gix-utils", "libc", "once_cell", "parking_lot", "prodash", - "sha1_smol", "thiserror 2.0.12", "walkdir", ] [[package]] name = "gix-filter" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdcc36cd7dbc63ed0ec3558645886553d1afd3cd09daa5efb9cba9cceb942bbb" +checksum = "cb2b2bbffdc5cc9b2b82fc82da1b98163c9b423ac2b45348baa83a947ac9ab89" dependencies = [ "bstr", "encoding_rs", @@ -1629,22 +1700,25 @@ dependencies = [ [[package]] name = "gix-fs" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "182e7fa7bfdf44ffb7cfe7451b373cdf1e00870ac9a488a49587a110c562063d" +checksum = "951e886120dc5fa8cac053e5e5c89443f12368ca36811b2e43d1539081f9c111" dependencies = [ + "bstr", "fastrand", "gix-features", + "gix-path", "gix-utils", + "thiserror 2.0.12", ] [[package]] name = "gix-glob" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e9c7249fa0a78f9b363aa58323db71e0a6161fd69860ed6f48dedf0ef3a314e" +checksum = "20972499c03473e773a2099e5fd0c695b9b72465837797a51a43391a1635a030" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "bstr", "gix-features", "gix-path", @@ -1652,19 +1726,21 @@ dependencies = [ [[package]] name = "gix-hash" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e81c5ec48649b1821b3ed066a44efb95f1a268b35c1d91295e61252539fbe9f8" +checksum = "834e79722063958b03342edaa1e17595cd2939bb2b3306b3225d0815566dcb49" dependencies = [ "faster-hex", + "gix-features", + "sha1-checked", "thiserror 2.0.12", ] [[package]] name = "gix-hashtable" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "189130bc372accd02e0520dc5ab1cef318dcc2bc829b76ab8d84bbe90ac212d1" +checksum = "f06066d8702a9186dc1fdc1ed751ff2d7e924ceca21cb5d51b8f990c9c2e014a" dependencies = [ "gix-hash", "hashbrown 0.14.5", @@ -1673,9 +1749,9 @@ dependencies = [ [[package]] name = "gix-ignore" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f529dcb80bf9855c0a7c49f0ac588df6d6952d63a63fefc254b9c869d2cdf6f" +checksum = "9a27c8380f493a10d1457f756a3f81924d578fc08d6535e304dfcafbf0261d18" dependencies = [ "bstr", "gix-glob", @@ -1686,11 +1762,11 @@ dependencies = [ [[package]] name = "gix-index" -version = "0.38.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acd12e3626879369310fffe2ac61acc828613ef656b50c4ea984dd59d7dc85d8" +checksum = "855bece2d4153453aa5d0a80d51deea1ce8cd6a3b4cf213da85ac344ccb908a7" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "bstr", "filetime", "fnv", @@ -1707,27 +1783,43 @@ dependencies = [ "itoa", "libc", "memmap2", - "rustix", + "rustix 0.38.44", "smallvec", "thiserror 2.0.12", ] [[package]] name = "gix-lock" -version = "16.0.0" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9739815270ff6940968441824d162df9433db19211ca9ba8c3fc1b50b849c642" +checksum = "df47b8f11c34520db5541bc5fc9fbc8e4b0bdfcec3736af89ccb1a5728a0126f" dependencies = [ "gix-tempfile", "gix-utils", "thiserror 2.0.12", ] +[[package]] +name = "gix-negotiate" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dad912acf5a68a7defa4836014337ff4381af8c3c098f41f818a8c524285e57b" +dependencies = [ + "bitflags 2.9.0", + "gix-commitgraph", + "gix-date", + "gix-hash", + "gix-object", + "gix-revwalk", + "smallvec", + "thiserror 2.0.12", +] + [[package]] name = "gix-object" -version = "0.47.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc4b3a0044244f0fe22347fb7a79cca165e37829d668b41b85ff46a43e5fd68" +checksum = "4943fcdae6ffc135920c9ea71e0362ed539182924ab7a85dd9dac8d89b0dd69a" dependencies = [ "bstr", "gix-actor", @@ -1741,14 +1833,14 @@ dependencies = [ "itoa", "smallvec", "thiserror 2.0.12", - "winnow 0.6.22", + "winnow 0.7.6", ] [[package]] name = "gix-odb" -version = "0.67.0" +version = "0.68.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e93457df69cd09573608ce9fa4f443fbd84bc8d15d8d83adecd471058459c1b" +checksum = "50306d40dcc982eb6b7593103f066ea6289c7b094cb9db14f3cd2be0b9f5e610" dependencies = [ "arc-swap", "gix-date", @@ -1767,9 +1859,9 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.57.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc13a475b3db735617017fb35f816079bf503765312d4b1913b18cf96f3fa515" +checksum = "9b65fffb09393c26624ca408d32cfe8776fb94cd0a5cdf984905e1d2f39779cb" dependencies = [ "clru", "gix-chunk", @@ -1778,7 +1870,9 @@ dependencies = [ "gix-hashtable", "gix-object", "gix-path", + "gix-tempfile", "memmap2", + "parking_lot", "smallvec", "thiserror 2.0.12", "uluru", @@ -1786,9 +1880,9 @@ dependencies = [ [[package]] name = "gix-packetline" -version = "0.18.3" +version = "0.18.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e5ae6bc3ac160a6bf44a55f5537813ca3ddb08549c0fd3e7ef699c73c439cd" +checksum = "123844a70cf4d5352441dc06bab0da8aef61be94ec239cb631e0ba01dc6d3a04" dependencies = [ "bstr", "faster-hex", @@ -1798,9 +1892,9 @@ dependencies = [ [[package]] name = "gix-packetline-blocking" -version = "0.18.2" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1cbf8767c6abd5a6779f586702b5bcd8702380f4208219449cf1c9d0cd1e17c" +checksum = "1ecf3ea2e105c7e45587bac04099824301262a6c43357fad5205da36dbb233b3" dependencies = [ "bstr", "faster-hex", @@ -1810,9 +1904,9 @@ dependencies = [ [[package]] name = "gix-path" -version = "0.10.14" +version = "0.10.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c40f12bb65a8299be0cfb90fe718e3be236b7a94b434877012980863a883a99f" +checksum = "f910668e2f6b2a55ff35a1f04df88a1a049f7b868507f4cbeeaa220eaba7be87" dependencies = [ "bstr", "gix-trace", @@ -1823,11 +1917,11 @@ dependencies = [ [[package]] name = "gix-pathspec" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6430d3a686c08e9d59019806faa78c17315fe22ae73151a452195857ca02f86c" +checksum = "fef8422c3c9066d649074b24025125963f85232bfad32d6d16aea9453b82ec14" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "bstr", "gix-attributes", "gix-config-value", @@ -1836,30 +1930,50 @@ dependencies = [ "thiserror 2.0.12", ] +[[package]] +name = "gix-prompt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf9cbf6239fd32f2c2c9c57eeb4e9b28fa1c9b779fa0e3b7c455eb1ca49d5f0" +dependencies = [ + "gix-command", + "gix-config-value", + "parking_lot", + "rustix 0.38.44", + "thiserror 2.0.12", +] + [[package]] name = "gix-protocol" -version = "0.48.0" +version = "0.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c61bd61afc6b67d213241e2100394c164be421e3f7228d3521b04f48ca5ba90" +checksum = "5678ddae1d62880bc30e2200be1b9387af3372e0e88e21f81b4e7f8367355b5a" dependencies = [ "bstr", + "gix-credentials", "gix-date", "gix-features", "gix-hash", + "gix-lock", + "gix-negotiate", + "gix-object", "gix-ref", + "gix-refspec", + "gix-revwalk", "gix-shallow", + "gix-trace", "gix-transport", "gix-utils", "maybe-async", "thiserror 2.0.12", - "winnow 0.6.22", + "winnow 0.7.6", ] [[package]] name = "gix-quote" -version = "0.4.15" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e49357fccdb0c85c0d3a3292a9f6db32d9b3535959b5471bb9624908f4a066c6" +checksum = "1b005c550bf84de3b24aa5e540a23e6146a1c01c7d30470e35d75a12f827f969" dependencies = [ "bstr", "gix-utils", @@ -1868,9 +1982,9 @@ dependencies = [ [[package]] name = "gix-ref" -version = "0.50.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47adf4c5f933429f8554e95d0d92eee583cfe4b95d2bf665cd6fd4a1531ee20c" +checksum = "b2e1f7eb6b7ce82d2d19961f74bd637bab3ea79b1bc7bfb23dbefc67b0415d8b" dependencies = [ "gix-actor", "gix-features", @@ -1884,14 +1998,14 @@ dependencies = [ "gix-validate", "memmap2", "thiserror 2.0.12", - "winnow 0.6.22", + "winnow 0.7.6", ] [[package]] name = "gix-refspec" -version = "0.28.0" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59650228d8f612f68e7f7a25f517fcf386c5d0d39826085492e94766858b0a90" +checksum = "1d8587b21e2264a6e8938d940c5c99662779c13a10741a5737b15fc85c252ffc" dependencies = [ "bstr", "gix-hash", @@ -1903,11 +2017,11 @@ dependencies = [ [[package]] name = "gix-revision" -version = "0.32.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fe28bbccca55da6d66e6c6efc6bb4003c29d407afd8178380293729733e6b53" +checksum = "342caa4e158df3020cadf62f656307c3948fe4eacfdf67171d7212811860c3e9" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "bstr", "gix-commitgraph", "gix-date", @@ -1921,9 +2035,9 @@ dependencies = [ [[package]] name = "gix-revwalk" -version = "0.18.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4ecb80c235b1e9ef2b99b23a81ea50dd569a88a9eb767179793269e0e616247" +checksum = "2dc7c3d7e5cdc1ab8d35130106e4af0a4f9f9eca0c81f4312b690780e92bde0d" dependencies = [ "gix-commitgraph", "gix-date", @@ -1936,11 +2050,11 @@ dependencies = [ [[package]] name = "gix-sec" -version = "0.10.11" +version = "0.10.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d84dae13271f4313f8d60a166bf27e54c968c7c33e2ffd31c48cafe5da649875" +checksum = "47aeb0f13de9ef2f3033f5ff218de30f44db827ac9f1286f9ef050aacddd5888" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "gix-path", "libc", "windows-sys 0.52.0", @@ -1948,9 +2062,9 @@ dependencies = [ [[package]] name = "gix-shallow" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab72543011e303e52733c85bef784603ef39632ddf47f69723def52825e35066" +checksum = "cc0598aacfe1d52575a21c9492fee086edbb21e228ec36c819c42ab923f434c3" dependencies = [ "bstr", "gix-hash", @@ -1960,9 +2074,9 @@ dependencies = [ [[package]] name = "gix-submodule" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74972fe8d46ac8a09490ae1e843b4caf221c5b157c5ac17057e8e1c38417a3ac" +checksum = "78c7390c2059505c365e9548016d4edc9f35749c6a9112b7b1214400bbc68da2" dependencies = [ "bstr", "gix-config", @@ -1975,9 +2089,9 @@ dependencies = [ [[package]] name = "gix-tempfile" -version = "16.0.0" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2558f423945ef24a8328c55d1fd6db06b8376b0e7013b1bb476cc4ffdf678501" +checksum = "3d6de439bbb9a5d3550c9c7fab0e16d2d637d120fcbe0dfbc538772a187f099b" dependencies = [ "dashmap", "gix-fs", @@ -1995,27 +2109,30 @@ checksum = "7c396a2036920c69695f760a65e7f2677267ccf483f25046977d87e4cb2665f7" [[package]] name = "gix-transport" -version = "0.45.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11187418489477b1b5b862ae1aedbbac77e582f2c4b0ef54280f20cfe5b964d9" +checksum = "b3f68c2870bfca8278389d2484a7f2215b67d0b0cc5277d3c72ad72acf41787e" dependencies = [ + "base64 0.22.1", "bstr", "gix-command", + "gix-credentials", "gix-features", "gix-packetline", "gix-quote", "gix-sec", "gix-url", + "reqwest", "thiserror 2.0.12", ] [[package]] name = "gix-traverse" -version = "0.44.0" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bec70e53896586ef32a3efa7e4427b67308531ed186bb6120fb3eca0f0d61b4" +checksum = "36c0b049f8bdb61b20016694102f7b507f2e1727e83e9c5e6dad4f7d84ff7384" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "gix-commitgraph", "gix-date", "gix-hash", @@ -2028,9 +2145,9 @@ dependencies = [ [[package]] name = "gix-url" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29218c768b53dd8f116045d87fec05b294c731a4b2bdd257eeca2084cc150b13" +checksum = "48dfe23f93f1ddb84977d80bb0dd7aa09d1bf5d5afc0c9b6820cccacc25ae860" dependencies = [ "bstr", "gix-features", @@ -2042,19 +2159,20 @@ dependencies = [ [[package]] name = "gix-utils" -version = "0.1.14" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff08f24e03ac8916c478c8419d7d3c33393da9bb41fa4c24455d5406aeefd35f" +checksum = "189f8724cf903e7fd57cfe0b7bc209db255cacdcb22c781a022f52c3a774f8d0" dependencies = [ + "bstr", "fastrand", "unicode-normalization", ] [[package]] name = "gix-validate" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eaa01c3337d885617c0a42e92823922a2aea71f4caeace6fe87002bdcadbd90" +checksum = "34b5f1253109da6c79ed7cf6e1e38437080bb6d704c76af14c93e2f255234084" dependencies = [ "bstr", "thiserror 2.0.12", @@ -2062,9 +2180,9 @@ dependencies = [ [[package]] name = "gix-worktree" -version = "0.39.0" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6673512f7eaa57a6876adceca6978a501d6c6569a4f177767dc405f8b9778958" +checksum = "f7760dbc4b79aa274fed30adc0d41dca6b917641f26e7867c4071b1fb4dc727b" dependencies = [ "bstr", "gix-attributes", @@ -2080,21 +2198,41 @@ dependencies = [ ] [[package]] -name = "glob" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" - -[[package]] -name = "gomod-rs" -version = "0.1.1" +name = "gix-worktree-state" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba08d0c35cfda0ec1434353febb31a3395673a682c83b60947a353fefa7b4888" +checksum = "490eb4d38ec2735b3466840aa3881b44ec1a4c180d6a658abfab03910380e18b" dependencies = [ - "nom", - "nom_locate", -] - + "bstr", + "gix-features", + "gix-filter", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-index", + "gix-object", + "gix-path", + "gix-worktree", + "io-close", + "thiserror 2.0.12", +] + +[[package]] +name = "glob" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + +[[package]] +name = "gomod-rs" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba08d0c35cfda0ec1434353febb31a3395673a682c83b60947a353fefa7b4888" +dependencies = [ + "nom", + "nom_locate", +] + [[package]] name = "graphql-introspection-query" version = "0.2.0" @@ -2106,11 +2244,11 @@ dependencies = [ [[package]] name = "graphql-parser" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ebc8013b4426d5b81a4364c419a95ed0b404af2b82e2457de52d9348f0e474" +checksum = "7a818c0d883d7c0801df27be910917750932be279c7bc82dc541b8769425f409" dependencies = [ - "combine 3.8.1", + "combine", "thiserror 1.0.69", ] @@ -2155,9 +2293,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" dependencies = [ "atomic-waker", "bytes", @@ -2165,7 +2303,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.7.1", + "indexmap 2.9.0", "slab", "tokio", "tokio-util", @@ -2222,9 +2360,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.9" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e" [[package]] name = "hex" @@ -2252,7 +2390,7 @@ dependencies = [ "flate2", "fs_extra", "futures", - "git2", + "gix", "gomod-rs", "hipcheck-common", "hipcheck-kdl", @@ -2262,10 +2400,10 @@ dependencies = [ "indextree", "indicatif", "itertools 0.13.0", - "jiff 0.1.16", + "jiff 0.1.29", "log", "logos", - "miette 7.4.0", + "miette 7.5.0", "minijinja", "minijinja-contrib", "nom", @@ -2273,9 +2411,12 @@ dependencies = [ "ordered-float 5.0.0", "packageurl", "pathbuf", + "prodash", + "prost", "rand 0.9.0", "rayon", "regex", + "reqwest", "rustls", "rustls-platform-verifier", "salsa", @@ -2329,7 +2470,7 @@ name = "hipcheck-kdl" version = "0.1.0" dependencies = [ "hipcheck-workspace-hack", - "kdl 6.2.2", + "kdl 6.3.4", ] [[package]] @@ -2352,8 +2493,8 @@ dependencies = [ "hipcheck-common", "hipcheck-sdk-macros", "hipcheck-workspace-hack", - "indexmap 2.7.1", - "jiff 0.1.16", + "indexmap 2.9.0", + "jiff 0.1.29", "lazy_static", "schemars", "serde", @@ -2384,12 +2525,11 @@ dependencies = [ name = "hipcheck-workspace-hack" version = "0.1.0" dependencies = [ - "ahash", - "bitflags 2.6.0", - "byteorder", + "bitflags 2.9.0", "bytes", "cc", "chrono", + "crypto-common", "dashmap", "digest", "either", @@ -2399,43 +2539,63 @@ dependencies = [ "futures-sink", "futures-task", "futures-util", - "getrandom 0.3.1", + "getrandom 0.3.2", + "gix", + "gix-features", + "gix-pack", + "gix-packetline", + "gix-protocol", + "gix-transport", + "gix-utils", "hashbrown 0.14.5", "hashbrown 0.15.2", - "idna", - "indexmap 2.7.1", - "itertools 0.13.0", - "jiff 0.1.16", + "hyper", + "hyper-rustls", + "hyper-util", + "indexmap 2.9.0", + "jiff 0.1.29", + "jiff 0.2.6", "libc", - "libz-sys", - "linux-raw-sys", "log", + "maybe-async", "memchr", - "miette 7.4.0", + "miette 7.5.0", "minimal-lexical", + "miniz_oxide", "nom", "num-traits", "percent-encoding", + "prodash", "prost", "regex", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", - "rustix", + "reqwest", + "rustix 0.38.44", + "rustix 1.0.5", + "rustls", "schemars", + "security-framework", + "security-framework-sys", "semver", "serde", + "sha1", "sha2", "smallvec", "strum 0.27.1", "syn 2.0.100", + "sync_wrapper", "tokio", "tokio-stream", + "tower", + "tracing", "tracing-core", "unicode-normalization", "url", + "winapi", "windows-sys 0.52.0", "windows-sys 0.59.0", - "winnow 0.6.22", + "winnow 0.7.6", "zeroize", ] @@ -2459,9 +2619,9 @@ dependencies = [ [[package]] name = "http" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -2480,12 +2640,12 @@ dependencies = [ [[package]] name = "http-body-util" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", - "futures-util", + "futures-core", "http", "http-body", "pin-project-lite", @@ -2493,9 +2653,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.9.4" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "httpdate" @@ -2504,16 +2664,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] -name = "humantime" -version = "2.1.0" +name = "human_format" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "5c3b1f728c459d27b12448862017b96ad4767b1ec2ec5e6434e99f1577f085b8" [[package]] name = "hyper" -version = "1.4.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" dependencies = [ "bytes", "futures-channel", @@ -2530,11 +2690,30 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-rustls" +version = "0.27.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" +dependencies = [ + "futures-util", + "http", + "hyper", + "hyper-util", + "rustls", + "rustls-native-certs", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + [[package]] name = "hyper-timeout" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ "hyper", "hyper-util", @@ -2545,9 +2724,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" dependencies = [ "bytes", "futures-channel", @@ -2555,26 +2734,27 @@ dependencies = [ "http", "http-body", "hyper", + "libc", "pin-project-lite", "socket2", "tokio", - "tower 0.4.13", "tower-service", "tracing", ] [[package]] name = "iana-time-zone" -version = "0.1.60" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", - "windows-core 0.52.0", + "windows-core 0.61.0", ] [[package]] @@ -2627,9 +2807,9 @@ dependencies = [ [[package]] name = "icu_locid_transform_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" +checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" [[package]] name = "icu_normalizer" @@ -2651,9 +2831,9 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" [[package]] name = "icu_properties" @@ -2672,9 +2852,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" [[package]] name = "icu_provider" @@ -2747,12 +2927,11 @@ dependencies = [ [[package]] name = "imara-diff" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc9da1a252bd44cd341657203722352efc9bc0c847d06ea6d2dc1cd1135e0a01" +checksum = "17d34b7d42178945f775e84bc4c36dde7c1c6cdfea656d3354d009056f2bb3d2" dependencies = [ - "ahash", - "hashbrown 0.14.5", + "hashbrown 0.15.2", ] [[package]] @@ -2768,9 +2947,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.7.1" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", "hashbrown 0.15.2", @@ -2817,13 +2996,40 @@ dependencies = [ [[package]] name = "inout" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" dependencies = [ "generic-array", ] +[[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.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "is-terminal" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "is_ci" version = "1.2.0" @@ -2832,9 +3038,9 @@ checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" [[package]] name = "is_terminal_polyfill" -version = "1.70.0" +version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" @@ -2856,39 +3062,44 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.11" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jiff" -version = "0.1.16" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24a46169c7a10358cdccfb179910e8a5a392fc291bdb409da9aeece5b19786d8" +checksum = "c04ef77ae73f3cf50510712722f0c4e8b46f5aaa1bf5ffad2ae213e6495e78e5" dependencies = [ "jiff-tzdb-platform", + "log", + "portable-atomic", + "portable-atomic-util", "serde", "windows-sys 0.59.0", ] [[package]] name = "jiff" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c102670231191d07d37a35af3eb77f1f0dbf7a71be51a962dcd57ea607be7260" +checksum = "1f33145a5cbea837164362c7bd596106eb7c5198f97d1ba6f6ebb3223952e488" dependencies = [ "jiff-static", + "jiff-tzdb-platform", "log", "portable-atomic", "portable-atomic-util", "serde", + "windows-sys 0.59.0", ] [[package]] name = "jiff-static" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cdde31a9d349f1b1f51a0b3714a5940ac022976f4b49485fc04be052b183b4c" +checksum = "43ce13c40ec6956157a3635d97a1ee2df323b263f09ea14165131289cb0f5c19" dependencies = [ "proc-macro2", "quote", @@ -2918,7 +3129,7 @@ checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", "cfg-if", - "combine 4.6.7", + "combine", "jni-sys", "log", "thiserror 1.0.69", @@ -2934,10 +3145,11 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom 0.3.2", "libc", ] @@ -2964,14 +3176,14 @@ dependencies = [ [[package]] name = "kdl" -version = "6.2.2" +version = "6.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d63de1aa3d632a8dd61da7cddfc499e9f88e6265d85bd84002419c3cdd3dc8f" +checksum = "12661358400b02cbbf1fbd05f0a483335490e8a6bd1867620f2eeb78f304a22f" dependencies = [ - "miette 7.4.0", + "miette 7.5.0", "num", "thiserror 1.0.69", - "winnow 0.6.22", + "winnow 0.6.24", ] [[package]] @@ -2991,23 +3203,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "libgit2-sys" -version = "0.18.1+1.9.0" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1dcb20f84ffcdd825c7a311ae347cce604a6f084a767dec4a4929829645290e" -dependencies = [ - "cc", - "libc", - "libssh2-sys", - "libz-sys", - "openssl-sys", - "pkg-config", -] +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libredox" @@ -3015,32 +3213,18 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", - "libc", -] - -[[package]] -name = "libssh2-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" -dependencies = [ - "cc", + "bitflags 2.9.0", "libc", - "libz-sys", - "openssl-sys", - "pkg-config", - "vcpkg", + "redox_syscall", ] [[package]] name = "libz-sys" -version = "1.1.20" +version = "1.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" dependencies = [ "cc", - "libc", "pkg-config", "vcpkg", ] @@ -3053,7 +3237,7 @@ dependencies = [ "hipcheck-kdl", "hipcheck-sdk", "hipcheck-workspace-hack", - "miette 7.4.0", + "miette 7.5.0", "pathbuf", "serde", "serde_json", @@ -3063,15 +3247,21 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.14" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] name = "lock_api" @@ -3091,9 +3281,9 @@ checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" [[package]] name = "log" -version = "0.4.25" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbf5b083de1c7e0222a7a51dbfdba1cbe1c6ab0b15e29fff3f6c077fd9cd9f" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "logos" @@ -3228,19 +3418,19 @@ dependencies = [ "miette-derive 5.10.0", "once_cell", "thiserror 1.0.69", - "unicode-width 0.1.11", + "unicode-width 0.1.14", ] [[package]] name = "miette" -version = "7.4.0" +version = "7.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317f146e2eb7021892722af37cf1b971f0a70c8406f487e24952667616192c64" +checksum = "1a955165f87b37fd1862df2a59547ac542c77ef6d17c666f619d1ad22dd89484" dependencies = [ "backtrace", "backtrace-ext", "cfg-if", - "miette-derive 7.4.0", + "miette-derive 7.5.0", "owo-colors", "supports-color", "supports-hyperlinks", @@ -3248,7 +3438,7 @@ dependencies = [ "terminal_size", "textwrap", "thiserror 1.0.69", - "unicode-width 0.1.11", + "unicode-width 0.1.14", ] [[package]] @@ -3264,9 +3454,9 @@ dependencies = [ [[package]] name = "miette-derive" -version = "7.4.0" +version = "7.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23c9b935fbe1d6cbd1dac857b54a688145e2d93f48db36010514d0f612d0ad67" +checksum = "bf45bf44ab49be92fd1227a3be6fc6f617f1a337c06af54981048574d8783147" dependencies = [ "proc-macro2", "quote", @@ -3281,18 +3471,18 @@ checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" [[package]] name = "minijinja" -version = "2.7.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff7b8df5e85e30b87c2b0b3f58ba3a87b68e133738bf512a7713769326dbca9" +checksum = "98642a6dfca91122779a307b77cd07a4aa951fbe32232aaf5bad9febc66be754" dependencies = [ "serde", ] [[package]] name = "minijinja-contrib" -version = "2.7.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ac3e47a9006ed0500425a092c9f8b2e56d10f8aeec8ce870c5e8a7c6ef2d7c3" +checksum = "bd4a0f6e171c7bb92ed2caf446fa3de4e26561cea1d97085103e9cb42359dd59" dependencies = [ "minijinja", "serde", @@ -3307,29 +3497,31 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.4" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" dependencies = [ - "adler", + "adler2", ] [[package]] -name = "miniz_oxide" -version = "0.8.5" +name = "mio" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ - "adler2", + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", ] [[package]] name = "mio" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" dependencies = [ - "hermit-abi", "libc", "wasi 0.11.0+wasi-snapshot-preview1", "windows-sys 0.52.0", @@ -3478,46 +3670,24 @@ checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" [[package]] name = "object" -version = "0.36.3" +version = "0.36.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.20.3" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-src" -version = "300.3.1+3.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7259953d42a81bf137fbbd73bd30a8e1914d6dce43c2b90ed575783a22608b91" -dependencies = [ - "cc", -] - -[[package]] -name = "openssl-sys" -version = "0.9.103" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" -dependencies = [ - "cc", - "libc", - "openssl-src", - "pkg-config", - "vcpkg", -] +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "option-ext" @@ -3553,15 +3723,15 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "owo-colors" -version = "4.1.0" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb37767f6569cd834a413442455e0f066d0d522de8630436e2a1761d9726ba56" +checksum = "1036865bb9422d3300cf723f657c2851d0e9ab12567854b1f4eba3d77decf564" [[package]] name = "packageurl" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7eb30e191e775e11d76e54e8c7df6ccbf357001c16bb8d1252e8bf7a787ec5a" +checksum = "b0f0b986147b7e6ab812eeb9dfd0bd5cd4afd263e50b2abf2d15a4a094890a88" dependencies = [ "percent-encoding", "thiserror 1.0.69", @@ -3602,7 +3772,7 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.3", + "redox_syscall", "smallvec", "windows-targets 0.52.6", ] @@ -3643,7 +3813,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faee7227064121fcadcd2ff788ea26f0d8f2bd23a0574da11eca23bc935bcc05" dependencies = [ "boxcar", - "indexmap 2.7.1", + "indexmap 2.9.0", "itertools 0.13.0", "once_cell", "pep440_rs", @@ -3666,28 +3836,28 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "petgraph" -version = "0.6.5" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset", - "indexmap 2.7.1", + "indexmap 2.9.0", ] [[package]] name = "pin-project" -version = "1.1.5" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.5" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", @@ -3696,9 +3866,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" [[package]] name = "pin-utils" @@ -3708,9 +3878,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "portable-atomic" @@ -3735,15 +3905,18 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy 0.8.24", +] [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" dependencies = [ "proc-macro2", "syn 2.0.100", @@ -3782,12 +3955,18 @@ dependencies = [ [[package]] name = "prodash" -version = "29.0.0" +version = "29.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a266d8d6020c61a437be704c5e618037588e1985c7dbb7bf8d265db84cffe325" +checksum = "9ee7ce24c980b976607e2d6ae4aae92827994d23fed71659c3ede3f92528b58b" dependencies = [ + "bytesize", + "crosstermion", + "human_format", + "is-terminal", + "jiff 0.2.6", "log", "parking_lot", + "unicode-width 0.1.14", ] [[package]] @@ -3802,13 +3981,12 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.13.1" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb182580f71dd070f88d01ce3de9f4da5021db7115d2e1c3605a754153b77c1" +checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "bytes", "heck 0.5.0", - "itertools 0.13.0", + "itertools 0.14.0", "log", "multimap", "once_cell", @@ -3836,22 +4014,22 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.13.1" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee5168b05f49d4b0ca581206eb14a7b22fafd963efe729ac48eb03266e25cc2" +checksum = "52c2c1bf36ddb1a1c396b3601a3cec27c2462e45f07c386894ec3ccf5332bd16" dependencies = [ "prost", ] [[package]] name = "purl" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c14fe28c8495f7eaf77a6e6106966f95211c0a2404b9da50d248fc32af3a3f14" +checksum = "60ebe4262ae91ddd28c8721111a0a6e9e58860e211fc92116c4bb85c98fd96ad" dependencies = [ "hex", "percent-encoding", - "thiserror 1.0.69", + "thiserror 2.0.12", ] [[package]] @@ -3860,7 +4038,7 @@ version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "643af57c3f36ba90a8b53e972727d8092f7408a9ebfbaf4c3d2c17b07c58d835" dependencies = [ - "indexmap 2.7.1", + "indexmap 2.9.0", "pep440_rs", "pep508_rs", "serde", @@ -3868,15 +4046,75 @@ dependencies = [ "toml", ] +[[package]] +name = "quinn" +version = "0.11.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "socket2", + "thiserror 2.0.12", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc" +dependencies = [ + "bytes", + "getrandom 0.3.2", + "rand 0.9.0", + "ring", + "rustc-hash", + "rustls", + "rustls-pki-types", + "slab", + "thiserror 2.0.12", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "541d0f57c6ec747a90738a52741d3221f7960e8ac2f0ff4b1a63680e033b4ab5" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "quote" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "rand" version = "0.8.5" @@ -3894,8 +4132,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" dependencies = [ "rand_chacha", - "rand_core 0.9.1", - "zerocopy 0.8.18", + "rand_core 0.9.3", + "zerocopy 0.8.24", ] [[package]] @@ -3905,7 +4143,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.1", + "rand_core 0.9.3", ] [[package]] @@ -3919,12 +4157,11 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.1" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88e0da7a2c97baa202165137c158d0a2e824ac465d13d81046727b34cb247d3" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.1", - "zerocopy 0.8.18", + "getrandom 0.3.2", ] [[package]] @@ -3949,20 +4186,11 @@ dependencies = [ [[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 = "redox_syscall" -version = "0.5.3" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", ] [[package]] @@ -3984,7 +4212,7 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.8", + "regex-automata 0.4.9", "regex-syntax 0.8.5", ] @@ -3999,9 +4227,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -4022,14 +4250,62 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "regress" -version = "0.10.1" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1541daf4e4ed43a0922b7969bdc2170178bcacc5dabf7e39bc508a9fa3953a7a" +checksum = "78ef7fa9ed0256d64a688a3747d0fef7a88851c18a5e1d57f115f38ec2e09366" dependencies = [ - "hashbrown 0.14.5", + "hashbrown 0.15.2", "memchr", ] +[[package]] +name = "reqwest" +version = "0.12.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-rustls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-native-certs", + "rustls-pemfile", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-rustls", + "tower", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", + "windows-registry", +] + [[package]] name = "review" version = "0.4.0" @@ -4083,22 +4359,35 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.40" +version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys", - "windows-sys 0.52.0", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" +dependencies = [ + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys 0.9.4", + "windows-sys 0.59.0", ] [[package]] name = "rustls" -version = "0.23.20" +version = "0.23.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b" +checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" dependencies = [ "log", "once_cell", @@ -4121,19 +4410,31 @@ dependencies = [ "security-framework", ] +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "rustls-pki-types" version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +dependencies = [ + "web-time", +] [[package]] name = "rustls-platform-verifier" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e012c45844a1790332c9386ed4ca3a06def221092eda277e6f079728f8ea99da" +checksum = "4a5467026f437b4cb2a533865eaa73eb840019a0916f4b9ec563c6e617e086c9" dependencies = [ - "core-foundation", + "core-foundation 0.10.0", "core-foundation-sys", "jni", "log", @@ -4145,7 +4446,7 @@ dependencies = [ "security-framework", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4156,9 +4457,9 @@ checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" [[package]] name = "rustls-webpki" -version = "0.102.8" +version = "0.103.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" dependencies = [ "ring", "rustls-pki-types", @@ -4167,15 +4468,15 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.17" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "ryu" -version = "1.0.18" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "salsa" @@ -4188,7 +4489,7 @@ dependencies = [ "dashmap", "hashbrown 0.15.2", "hashlink", - "indexmap 2.7.1", + "indexmap 2.9.0", "parking_lot", "portable-atomic", "rayon", @@ -4229,11 +4530,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4277,12 +4578,12 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "security-framework" -version = "3.0.1" +version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1415a607e92bec364ea2cf9264646dcce0f91e6d65281bd6f2819cca3bf39c8" +checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.6.0", - "core-foundation", + "bitflags 2.9.0", + "core-foundation 0.10.0", "core-foundation-sys", "libc", "security-framework-sys", @@ -4290,9 +4591,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.12.1" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa39c7303dc58b5543c94d22c1766b0d31f2ee58306363ea622b10bbc075eaa2" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" dependencies = [ "core-foundation-sys", "libc", @@ -4340,9 +4641,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.139" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f86c3acccc9c65b153fe1b85a3be07fe5515274ec9f0653b4a0875731c72a6" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", "memchr", @@ -4371,6 +4672,18 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + [[package]] name = "serde_with" version = "3.12.0" @@ -4381,7 +4694,7 @@ dependencies = [ "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.7.1", + "indexmap 2.9.0", "serde", "serde_derive", "serde_json", @@ -4413,10 +4726,14 @@ dependencies = [ ] [[package]] -name = "sha1_smol" -version = "1.0.1" +name = "sha1-checked" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" +checksum = "89f599ac0c323ebb1c6082821a54962b839832b03984598375bff3975b804423" +dependencies = [ + "digest", + "sha1", +] [[package]] name = "sha2" @@ -4462,6 +4779,27 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "signal-hook" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" +dependencies = [ + "libc", + "mio 0.8.11", + "signal-hook", +] + [[package]] name = "signal-hook-registry" version = "1.4.2" @@ -4488,9 +4826,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" [[package]] name = "smart-default" @@ -4505,9 +4843,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.7" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ "libc", "windows-sys 0.52.0", @@ -4515,9 +4853,9 @@ dependencies = [ [[package]] name = "spdx" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47317bbaf63785b53861e1ae2d11b80d6b624211d42cb20efcd210ee6f8a14bc" +checksum = "58b69356da67e2fc1f542c71ea7e654a361a79c938e4424392ecf4fa065d2193" dependencies = [ "smallvec", ] @@ -4683,9 +5021,12 @@ dependencies = [ [[package]] name = "sync_wrapper" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] [[package]] name = "synstructure" @@ -4698,6 +5039,27 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.9.0", + "core-foundation 0.9.4", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tabled" version = "0.18.0" @@ -4734,25 +5096,24 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.17.1" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22e5a0acb1f3f55f65cc4a866c361b2fb2a0ff6366785ae6fbb5f85df07ba230" +checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" dependencies = [ - "cfg-if", "fastrand", - "getrandom 0.3.1", + "getrandom 0.3.2", "once_cell", - "rustix", + "rustix 1.0.5", "windows-sys 0.59.0", ] [[package]] name = "terminal_size" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5352447f921fda68cf61b4101566c0bdb5104eff6804d0678e5227580ab6a4e9" +checksum = "45c6481c4829e4cc63825e62c49186a34538b7b2750b73b266581ffb612fb5ed" dependencies = [ - "rustix", + "rustix 1.0.5", "windows-sys 0.59.0", ] @@ -4769,9 +5130,9 @@ dependencies = [ [[package]] name = "test-log-macros" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5999e24eaa32083191ba4e425deb75cdf25efefabe5aaccb7446dd0d4122a3f5" +checksum = "888d0c3c6db53c0fdab160d2ed5e12ba745383d3e85813f2ea0f2b1475ab553f" dependencies = [ "proc-macro2", "quote", @@ -4780,12 +5141,12 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" +checksum = "c13547615a44dc9c452a8a534638acdf07120d4b6847c8178705da06306a3057" dependencies = [ "unicode-linebreak", - "unicode-width 0.1.11", + "unicode-width 0.2.0", ] [[package]] @@ -4840,9 +5201,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.36" +version = "0.3.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", @@ -4855,15 +5216,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "time-macros" -version = "0.2.18" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" dependencies = [ "num-conv", "time-core", @@ -4881,9 +5242,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ "tinyvec_macros", ] @@ -4896,14 +5257,14 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.1" +version = "1.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" dependencies = [ "backtrace", "bytes", "libc", - "mio", + "mio 1.0.3", "pin-project-lite", "signal-hook-registry", "socket2", @@ -4922,6 +5283,16 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "tokio-rustls" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +dependencies = [ + "rustls", + "tokio", +] + [[package]] name = "tokio-stream" version = "0.1.17" @@ -4935,9 +5306,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" dependencies = [ "bytes", "futures-core", @@ -4973,11 +5344,11 @@ version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap 2.7.1", + "indexmap 2.9.0", "serde", "serde_spanned", "toml_datetime", - "winnow 0.7.2", + "winnow 0.7.6", ] [[package]] @@ -5003,7 +5374,7 @@ dependencies = [ "socket2", "tokio", "tokio-stream", - "tower 0.5.2", + "tower", "tower-layer", "tower-service", "tracing", @@ -5023,21 +5394,6 @@ dependencies = [ "syn 2.0.100", ] -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", -] - [[package]] name = "tower" version = "0.5.2" @@ -5046,7 +5402,7 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", - "indexmap 2.7.1", + "indexmap 2.9.0", "pin-project-lite", "slab", "sync_wrapper", @@ -5071,9 +5427,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.40" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ "pin-project-lite", "tracing-attributes", @@ -5082,9 +5438,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", @@ -5093,9 +5449,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -5114,9 +5470,9 @@ dependencies = [ [[package]] name = "tracing-serde" -version = "0.1.3" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" dependencies = [ "serde", "tracing-core", @@ -5124,9 +5480,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.18" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", @@ -5151,9 +5507,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "typify-impl" @@ -5202,7 +5558,7 @@ dependencies = [ "hipcheck-sdk", "hipcheck-workspace-hack", "maplit", - "miette 7.4.0", + "miette 7.5.0", "pathbuf", "serde", "serde_json", @@ -5249,15 +5605,15 @@ dependencies = [ [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-width" @@ -5265,15 +5621,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fc81956842c57dac11422a97c3b8195a1ff727f06e85c84ed2e8aa277c9a0fd" -[[package]] -name = "unreachable" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" -dependencies = [ - "void", -] - [[package]] name = "unscanny" version = "0.1.0" @@ -5341,18 +5688,18 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.10.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" +checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.3.2", ] [[package]] name = "valuable" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" [[package]] name = "vcpkg" @@ -5371,15 +5718,9 @@ dependencies = [ [[package]] name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "void" -version = "1.0.2" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "walkdir" @@ -5408,9 +5749,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi" -version = "0.13.3+wasi-0.2.2" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" dependencies = [ "wit-bindgen-rt", ] @@ -5441,6 +5782,19 @@ dependencies = [ "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.100" @@ -5473,6 +5827,16 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "web-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "web-time" version = "1.1.0" @@ -5494,22 +5858,22 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.3" +version = "0.26.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" dependencies = [ "rustls-pki-types", ] [[package]] name = "which" -version = "7.0.2" +version = "7.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2774c861e1f072b3aadc02f8ba886c26ad6321567ecc294c935434cad06f1283" +checksum = "24d643ce3fd3e5b54854602a080f34fb10ab75e0b813ee32d00ca2b44fa74762" dependencies = [ "either", "env_home", - "rustix", + "rustix 1.0.5", "winsafe", ] @@ -5531,11 +5895,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5556,24 +5920,28 @@ dependencies = [ [[package]] name = "windows-core" -version = "0.52.0" +version = "0.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" dependencies = [ + "windows-implement 0.58.0", + "windows-interface 0.58.0", + "windows-result 0.2.0", + "windows-strings 0.1.0", "windows-targets 0.52.6", ] [[package]] name = "windows-core" -version = "0.58.0" +version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" +checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" dependencies = [ - "windows-implement", - "windows-interface", - "windows-result", - "windows-strings", - "windows-targets 0.52.6", + "windows-implement 0.60.0", + "windows-interface 0.59.1", + "windows-link", + "windows-result 0.3.2", + "windows-strings 0.4.0", ] [[package]] @@ -5587,6 +5955,17 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "windows-interface" version = "0.58.0" @@ -5598,12 +5977,34 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "windows-link" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +[[package]] +name = "windows-registry" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" +dependencies = [ + "windows-result 0.3.2", + "windows-strings 0.3.1", + "windows-targets 0.53.0", +] + [[package]] name = "windows-result" version = "0.2.0" @@ -5613,16 +6014,43 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-result" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-strings" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" dependencies = [ - "windows-result", + "windows-result 0.2.0", "windows-targets 0.52.6", ] +[[package]] +name = "windows-strings" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -5632,6 +6060,15 @@ dependencies = [ "windows-targets 0.42.2", ] +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -5665,6 +6102,21 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] +[[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.6" @@ -5674,117 +6126,223 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +[[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.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +[[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.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +[[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.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +[[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.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +[[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.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +[[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.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +[[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.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + [[package]] name = "winnow" -version = "0.6.22" +version = "0.6.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39281189af81c07ec09db316b302a3e67bf9bd7cbf6c820b50e35fee9c2fa980" +checksum = "c8d71a593cc5c42ad7876e2c1fda56f314f3754c084128833e64f1345ff8a03a" dependencies = [ "memchr", ] [[package]] name = "winnow" -version = "0.7.2" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59690dea168f2198d1a3b0cac23b8063efcd11012f10ae4698f284808c8ef603" +checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" dependencies = [ "memchr", ] @@ -5797,11 +6355,11 @@ checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904" [[package]] name = "wit-bindgen-rt" -version = "0.33.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.6.0", + "bitflags 2.9.0", ] [[package]] @@ -5818,20 +6376,19 @@ checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "xattr" -version = "1.3.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f" +checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" dependencies = [ "libc", - "linux-raw-sys", - "rustix", + "rustix 1.0.5", ] [[package]] name = "xml-rs" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4" +checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda" [[package]] name = "xshell" @@ -5861,7 +6418,7 @@ dependencies = [ "glob", "hipcheck-workspace-hack", "itertools 0.14.0", - "jiff 0.2.5", + "jiff 0.2.6", "kdl 4.7.1", "log", "pathbuf", @@ -5923,11 +6480,11 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.18" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79386d31a42a4996e3336b0919ddb90f81112af416270cff95b5f5af22b839c2" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" dependencies = [ - "zerocopy-derive 0.8.18", + "zerocopy-derive 0.8.24", ] [[package]] @@ -5943,9 +6500,9 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.8.18" +version = "0.8.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76331675d372f91bf8d17e13afbd5fe639200b73d01f0fc748bb059f9cca2db7" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" dependencies = [ "proc-macro2", "quote", @@ -5954,18 +6511,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", @@ -6017,9 +6574,9 @@ dependencies = [ [[package]] name = "zip" -version = "2.3.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84e9a772a54b54236b9b744aaaf8d7be01b4d6e99725523cb82cb32d1c81b1d7" +checksum = "1dcb24d0152526ae49b9b96c1dcf71850ca1e0b882e4e28ed898a93c41334744" dependencies = [ "aes", "arbitrary", @@ -6028,16 +6585,14 @@ dependencies = [ "crc32fast", "crossbeam-utils", "deflate64", - "displaydoc", "flate2", - "getrandom 0.3.1", + "getrandom 0.3.2", "hmac", - "indexmap 2.7.1", + "indexmap 2.9.0", "lzma-rs", "memchr", "pbkdf2", "sha1", - "thiserror 2.0.12", "time", "xz2", "zeroize", @@ -6070,18 +6625,18 @@ dependencies = [ [[package]] name = "zstd-safe" -version = "7.2.0" +version = "7.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa556e971e7b568dc775c136fc9de8c779b1c2fc3a63defaafadffdbd3181afa" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.12+zstd.1.5.6" +version = "2.0.15+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a4e40c320c3cb459d9a9ff6de98cff88f4751ee9275d140e2be94a2b74e4c13" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" dependencies = [ "cc", "pkg-config", diff --git a/hipcheck/Cargo.toml b/hipcheck/Cargo.toml index 55339e7a7..ffbfc32e6 100644 --- a/hipcheck/Cargo.toml +++ b/hipcheck/Cargo.toml @@ -47,12 +47,14 @@ env_logger = { version = "0.11.6" } flate2 = "1.1.0" fs_extra = "1.3.0" futures = "0.3.31" -# Vendor libgit2 and openssl so that they will be statically included -# and not cause problems on certain systems that might not have one or -# the other. -git2 = { version = "0.20.1", features = [ - "vendored-libgit2", - "vendored-openssl", +gix = { version = "0.71.0", default-features = false, features = [ + "basic", + "dirwalk", + "worktree-mutation", + "max-control", + # use reqwest/rustls to avoid needing openssl + "blocking-http-transport-reqwest-rust-tls", + "zlib-stock", ] } # Include with both a `path` and `version` reference. # Local builds will use the `path` dependency, which may be a newer @@ -77,6 +79,15 @@ num-traits = "0.2.19" ordered-float = { version = "5.0.0", features = ["serde"] } packageurl = "0.4.1" pathbuf = "1.0.0" +prodash = { version = "29.0.0", default-features = false, features = [ + "render-line", + "render-line-autoconfigure", + "render-line-crossterm", + "unit-bytes", + "unit-duration", + "unit-human", +] } +prost = "0.13.5" rand = "0.9.0" rayon = "1.10.0" regex = "1.11.1" @@ -108,7 +119,14 @@ strum_macros = "0.27.1" tabled = "0.18.0" tar = "0.4.44" tempfile = "3.17.1" -tokio = { version = "1.44.1", features = ["rt", "rt-multi-thread", "sync", "time", "process", "fs"] } +tokio = { version = "1.44.1", features = [ + "rt", + "rt-multi-thread", + "sync", + "time", + "process", + "fs", +] } tokio-stream = "0.1.17" toml = "0.8.20" tonic = "0.13.0" @@ -131,6 +149,18 @@ serde_with = "3.12.0" hipcheck-workspace-hack = { version = "0.1", path = "../library/hipcheck-workspace-hack" } gomod-rs = "0.1.1" +# This is needed to force reqwest, which is used by gix, to build reqwest with support +# for rustls-tls-native-roots, which is needed to automatically configure system certificates +[dependencies.reqwest] +version = "0.12" +default-features = false +features = [ + "blocking", + "http2", + "rustls-tls-native-roots", + "macos-system-configuration", +] + [build-dependencies] anyhow = "1.0.97" diff --git a/hipcheck/src/cache/repo.rs b/hipcheck/src/cache/repo.rs index ba0c7a14f..e27def0ae 100644 --- a/hipcheck/src/cache/repo.rs +++ b/hipcheck/src/cache/repo.rs @@ -2,7 +2,6 @@ use crate::{error::Result, hc_error}; use dialoguer::Confirm; -use git2::Repository; use pathbuf::pathbuf; use regex::Regex; use serde::{Deserialize, Serialize}; @@ -162,15 +161,12 @@ impl HcRepoCacheIterator { .to_str() .unwrap() .to_owned(); - let repo = Repository::open(path)?; - let commit = repo + let commit = gix::open(path)? .head()? - .peel_to_commit()? - .as_object() - .short_id()? - .as_str() - .unwrap() - .to_owned(); + .id() + .ok_or_else(|| hc_error!("HEAD does not have an ID"))? + .shorten()? + .to_string(); let modified = get_last_modified_or_now(path); let cache_subdir = pathbuf![path.strip_prefix(self.root.as_path()).unwrap()]; let mut parent = cache_subdir.clone(); diff --git a/hipcheck/src/init/git2_log_shim.rs b/hipcheck/src/init/git2_log_shim.rs deleted file mode 100644 index e29be9149..000000000 --- a/hipcheck/src/init/git2_log_shim.rs +++ /dev/null @@ -1,34 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 - -//! Log shim function to redirect [git2] trace messages to [log]. - -use crate::hc_error; - -/// Shim the [git2] crate's tracing infrastructure with calls to the [log] crate which we use. -pub fn git2_set_trace_log_shim() { - git2::trace_set(git2::TraceLevel::Trace, |level, msg| { - use git2::TraceLevel; - use log::{Level, RecordBuilder}; - - // Coerce fatal down to error since there's no trivial equivalent. - let log_level = match level { - TraceLevel::Debug => Level::Debug, - TraceLevel::Fatal | TraceLevel::Error => Level::Error, - TraceLevel::Warn => Level::Warn, - TraceLevel::Info => Level::Info, - TraceLevel::Trace => Level::Trace, - // git2 should not produce trace messages with no level. - other @ TraceLevel::None => panic!("Unsupported git2 log level: {other:?}"), - }; - - let mut record_builder = RecordBuilder::new(); - - record_builder.level(log_level).target("libgit2"); - - let msg_str = std::str::from_utf8(msg).unwrap_or("non-UTF8 string received in callback"); - - log::logger().log(&record_builder.args(format_args!("{}", msg_str)).build()); - }) - .map_err(|e| hc_error!("Failed to set git2 callback: {}", e)) - .unwrap(); -} diff --git a/hipcheck/src/init/git2_rustls_transport.rs b/hipcheck/src/init/git2_rustls_transport.rs deleted file mode 100644 index a839bad4e..000000000 --- a/hipcheck/src/init/git2_rustls_transport.rs +++ /dev/null @@ -1,219 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 - -//! Custom lib[git2] transport that uses [rustls] over the operating systems's transport. -//! -//! This should accurately implement the spec described at -//! -//! . - -use crate::{shell::Shell, util::http::agent}; -use base64::{prelude::BASE64_STANDARD, Engine}; -use dialoguer::{Input, Password}; -use git2::{ - transport::{self, Service, SmartSubtransport, SmartSubtransportStream, Transport}, - Error as Git2Error, Remote, -}; -use http::Method; -use std::{ - io::{self, Error as IoError, Read, Write}, - sync::Once, -}; -use ureq::{Error as UreqError, Request}; - -/// A global static [Once] to make sure we don't register the custom transport more than once. -static REGISTER: Once = Once::new(); - -/// Register this transport with lib[git2]. -pub fn register() { - // SAFETY: This function needs to be synchronized with creations of transports. - // Since we only create 1 custom transport, this should be safe. - REGISTER.call_once(|| unsafe { - log::debug!("Registering custom rustls based transport for http(s) prefixes"); - // Note that we have to use prefixes without the `://` at the end of them otherwise libgit2 will get confused and - // ignore/not use them. - transport::register("https", make_transport).unwrap(); - transport::register("http", make_transport).unwrap(); - }) -} - -// The following 4 functions use info from -// https://github.com/libgit2/libgit2/blob/2ecc8586f7eec4063b5da1563d0a33f9e9f9fcf7/src/libgit2/transports/http.c#L68-L95 - -/// Get the url path for a [Service]. -const fn service_url_path(s: Service) -> &'static str { - match s { - Service::UploadPackLs => "/info/refs?service=git-upload-pack", - Service::UploadPack => "/git-upload-pack", - Service::ReceivePackLs => "/info/refs?service=git-receive-pack", - Service::ReceivePack => "/git-receive-pack", - } -} - -/// Get the [http] method for a [Service]. -const fn service_method(s: Service) -> Method { - match s { - Service::ReceivePack | Service::UploadPack => Method::POST, - Service::ReceivePackLs | Service::UploadPackLs => Method::GET, - } -} - -const fn service_request_type(s: Service) -> Option<&'static str> { - match s { - Service::UploadPackLs | Service::ReceivePackLs => None, - Service::ReceivePack => Some("application/x-git-receive-pack-request"), - Service::UploadPack => Some("application/x-git-upload-pack-request"), - } -} - -const fn service_response_type(s: Service) -> &'static str { - match s { - Service::UploadPackLs => "application/x-git-upload-pack-advertisement", - Service::ReceivePackLs => "application/x-git-receive-pack-advertisement", - Service::UploadPack => "application/x-git-upload-pack-result", - Service::ReceivePack => "application/x-git-receive-pack-result", - } -} - -/// Function used as a factory -fn make_transport(remote: &Remote) -> Result { - Transport::smart(remote, true, CustomTransport) -} - -struct CustomTransport; - -struct CustomSubtransportStream { - /// The request with the proper headers/options. - req: Request, - req_body: Vec, - response_reader: Option>, -} - -impl CustomSubtransportStream { - /// Send the request and allow basic http authentication if needed. - fn send_req_allow_auth(&mut self) -> io::Result<()> { - // Get a reference to the request body. - let body: &[u8] = &self.req_body; - - // Clone the request and send with that body. - // Depending on the response, we may resend with auth. - match self.req.clone().send_bytes(body) { - // If we get a response successfully, update self and return ok. - Ok(response) => { - self.response_reader = Some(response.into_reader()); - Ok(()) - } - - // If we get a response indicating the need for basic auth, handle basic auth. - Err(UreqError::Status(401, response)) => { - // Check if it really is an issue of basic auth. - let response_wants_basic_auth = response - .header("WWW-Authenticate") - .is_some_and(|header_val| header_val.starts_with("Basic ")); - - if !response_wants_basic_auth { - return Err(IoError::other(UreqError::Status(401, response))); - } - - // Get the username and password from the user (suspend progress bars to do this). - let (user, pass) = Shell::in_suspend(|| { - // Get the remote url that is asking for auth. - let remote_url = response.get_url(); - - println!("Git remote ({remote_url}) is requesting authentication."); - - let user: String = Input::new() - .with_prompt(format!("Git remote ({remote_url}) username:")) - .interact_text() - .expect("read user input"); - - let pass = Password::new() - .with_prompt(format!("Git remote ({remote_url}) password:")) - .interact() - .expect("read user password"); - - (user, pass) - }); - - // Encode the username and password concatted with a colon. - let encoded = BASE64_STANDARD.encode(format!("{user}:{pass}")); - - // Add the header to the request and resend. - let new_req = self - .req - .clone() - .set("Authorization", &format!("Basic {encoded}")); - - match new_req.send_bytes(body) { - Ok(response) => { - self.response_reader = Some(response.into_reader()); - Ok(()) - } - - Err(err) => Err(IoError::other(err)), - } - } - - // Other errors that aren't asking for authentication. - Err(ureq_err) => Err(IoError::other(ureq_err)), - } - } -} - -impl Read for CustomSubtransportStream { - fn read(&mut self, buf: &mut [u8]) -> io::Result { - // If we read and there is no response yet, send the request. - if self.response_reader.is_none() { - self.send_req_allow_auth()?; - } - - // Unwrap here is fine, since sending the request should have instantiated the response reader - // or errored. - self.response_reader.as_mut().unwrap().read(buf) - } -} - -impl Write for CustomSubtransportStream { - fn write(&mut self, buf: &[u8]) -> io::Result { - self.req_body.write(buf) - } - - fn flush(&mut self) -> io::Result<()> { - self.req_body.flush() - } -} - -impl SmartSubtransport for CustomTransport { - fn action( - &self, - url: &str, - action: Service, - ) -> Result, Git2Error> { - // Get the URL to send the request to. - let url = format!("{url}{}", service_url_path(action)); - - // Get the agent with rustls native certs to create an http request. - let mut req = agent::agent() - .request(service_method(action).as_str(), url.as_str()) - .set("Accept", service_response_type(action)); - - // Set the request type if neccessary. - if let Some(req_type) = service_request_type(action) { - req = req.set("Content-Type", req_type); - } - - // Create the custom stream and return. - let stream = CustomSubtransportStream { - req, - req_body: Vec::new(), - response_reader: None, - }; - - Ok(Box::new(stream)) - } - - fn close(&self) -> Result<(), Git2Error> { - // Close is always just OK since this struct has no state and connections will handle themselves - // via drop (as long as git2 handles that properly). - Ok(()) - } -} diff --git a/hipcheck/src/init/mod.rs b/hipcheck/src/init/mod.rs index 4256ad08a..1e22e16d6 100644 --- a/hipcheck/src/init/mod.rs +++ b/hipcheck/src/init/mod.rs @@ -1,7 +1,5 @@ // SPDX-License-Identifier: Apache-2.0 -mod git2_log_shim; -mod git2_rustls_transport; mod indicatif_log_bridge; use crate::shell::{verbosity::Verbosity, Shell}; @@ -15,7 +13,6 @@ use rustls::crypto::{ring, CryptoProvider}; pub fn init() { init_shell(); init_logging(); - init_libgit2(); init_cryptography(); init_software_versions(); } @@ -32,17 +29,6 @@ fn init_logging() { .expect("logging initialization must succeed"); } -fn init_libgit2() { - // Tell the `git2` crate to pass its tracing messages to the log crate. - git2_log_shim::git2_set_trace_log_shim(); - - // Make libgit2 use a rustls + ureq based transport for executing the git - // protocol over http(s). I would normally just let libgit2 use its own - // implementation but have seen that this rustls/ureq transport is 2-3 times - // faster on my machine — enough of a performance bump to warrant using this. - git2_rustls_transport::register(); -} - fn init_cryptography() { // Install a process-wide default crypto provider. CryptoProvider::install_default(ring::default_provider()) diff --git a/hipcheck/src/shell/spinner_phase.rs b/hipcheck/src/shell/spinner_phase.rs index 81fe914fc..c4899cf5e 100644 --- a/hipcheck/src/shell/spinner_phase.rs +++ b/hipcheck/src/shell/spinner_phase.rs @@ -125,6 +125,13 @@ impl SpinnerPhase { self.bar.finish_and_clear() } + + /// Hide the progress bar temporarily, execute `f`, then redraw the progress bar + /// + /// Useful for external code that writes to the standard output. + pub fn suspend R, R>(&self, f: F) -> R { + self.bar.suspend(f) + } } /// A spinner phase tracking an [Iterator]. diff --git a/hipcheck/src/source/git.rs b/hipcheck/src/source/git.rs index b37b75144..5ab78f782 100644 --- a/hipcheck/src/source/git.rs +++ b/hipcheck/src/source/git.rs @@ -1,162 +1,112 @@ // SPDX-License-Identifier: Apache-2.0 - -//! Git related types and implementations for pulling/cloning source repos. - use crate::{ - error::{Context, Error as HcError, Result as HcResult}, + error::{Error as HcError, Result as HcResult}, hc_error, - shell::{progress_phase::ProgressPhase, verbosity::Verbosity, Shell}, -}; -use console::Term; -use git2::{ - build::{CheckoutBuilder, RepoBuilder}, - AnnotatedCommit, Branch, FetchOptions, Progress, Reference, RemoteCallbacks, Repository, }; -use std::{cell::OnceCell, io::Write, path::Path}; +use gix::{bstr::ByteSlice, refs::FullName, remote, ObjectId, Repository}; +use std::{path::Path, sync::Arc}; use url::Url; -/// Construct the remote callbacks object uesd when making callinging into [git2]. -fn make_remote_callbacks() -> RemoteCallbacks<'static> { - // Create progress phases for recieving the objects and resolving deltas. - let transfer_phase: OnceCell = OnceCell::new(); - let resolution_phase: OnceCell = OnceCell::new(); - - // Create a struct to hold the callbacks. - let mut callbacks = RemoteCallbacks::new(); - - // Messages from the remote ("Counting objects" etc) are sent over the sideband. - // This involves clearing and replacing the line -- use console to do this effectively. - - match Shell::get_verbosity() { - Verbosity::Normal => { - callbacks.sideband_progress(move |msg: &[u8]| { - Shell::in_suspend(|| { - // use the standard output. - let mut term = Term::stdout(); - - // Crash on errors here, since they should be relatively uncommon. - term.clear_line().expect("clear line on standard output"); - - write!(&mut term, "remote: {}", String::from_utf8_lossy(msg)) - .expect("wrote to standard output"); - - term.flush().expect("flushed standard output"); - }); - - true - }); - } - Verbosity::Quiet | Verbosity::Silent => {} - } - - callbacks.transfer_progress(move |prog: Progress| { - if prog.received_objects() > 0 { - let phase = transfer_phase.get_or_init(|| { - ProgressPhase::start(prog.total_objects() as u64, "(git) receiving objects") - }); - - phase.set_position(prog.received_objects() as u64); - - if prog.received_objects() == prog.total_objects() && !phase.is_finished() { - phase.finish_successful(false); - } - } - - if prog.indexed_deltas() > 0 { - let phase = resolution_phase.get_or_init(|| { - ProgressPhase::start(prog.total_deltas() as u64, "(git) resolving deltas") - }); - - phase.set_position(prog.indexed_deltas() as u64); - - if prog.indexed_deltas() == prog.total_deltas() && !phase.is_finished() { - phase.finish_successful(false); - } - } - - true - }); - - callbacks -} - -/// Build fetch options for [git2] using [make_remote_callbacks]. -fn make_fetch_opts() -> FetchOptions<'static> { - let mut fetch_opts = FetchOptions::new(); - - fetch_opts - // Use the remote callbacks for transfer. - .remote_callbacks(make_remote_callbacks()) - // Don't download any tags. - .download_tags(git2::AutotagOption::None); - - fetch_opts +/// default options to use when fetching a repo with `gix` +fn fetch_options(url: &Url, dest: &Path) -> gix::clone::PrepareFetch { + gix::clone::PrepareFetch::new( + url.as_str(), + dest, + gix::create::Kind::WithWorktree, + gix::create::Options::default(), + gix::open::Options::default(), + ) + .expect("fetch options must be valid to perform a clone") } -fn make_checkout_builder() -> CheckoutBuilder<'static> { - // Create a struct to hold callbacks while doing git checkout. - let mut checkout_opts = CheckoutBuilder::new(); - - // Make a phase to track the checkout progress. - let checkout_phase: OnceCell = OnceCell::new(); - - // We don't care about the path being resolved, only the total and current numbers. - checkout_opts.progress(move |path, current, total| { - // Initialize the phase if we haven't already. - let phase = - checkout_phase.get_or_init(|| ProgressPhase::start(total as u64, "(git) checkout")); - - // Set the bar to have the amount of progress in resolving. - phase.set_position(current as u64); - // Set the progress bar's status to the path being resolved. - phase.update_status( - path.map(Path::to_string_lossy) - .unwrap_or("resolving...".into()), - ); - - // If we have resolved everything, finish the phase. - if current == total { - phase.finish_successful(false); - } - }); - - checkout_opts +/// fast-forward HEAD of repo to a new object ID (SHA1) +/// +/// returns new ObjectId (SHA1) of updated HEAD upon success +fn fast_forward_to_hash( + repo: &gix::Repository, + current_head: gix::Head, + new_object_id: gix::ObjectId, +) -> HcResult { + let current_id = current_head + .id() + .ok_or_else(|| hc_error!("Could not determine hash of current HEAD"))?; + + if current_id == new_object_id { + log::debug!("skipping fast-forward, HEAD already correct"); + return Ok(current_id.into()); + } + let edit = gix::refs::transaction::RefEdit { + change: gix::refs::transaction::Change::Update { + log: gix::refs::transaction::LogChange { + mode: gix::refs::transaction::RefLog::AndReference, + force_create_reflog: false, + message: format!("fast-forward HEAD from {} to {}", current_id, new_object_id) + .into(), + }, + expected: gix::refs::transaction::PreviousValue::Any, + new: gix::refs::Target::Object(new_object_id), + }, + name: FullName::try_from("HEAD").unwrap(), + deref: true, + }; + log::trace!( + "attempting fast-forward from {} to {}", + current_id, + new_object_id + ); + + // commit change to the repo and the reflog + repo.refs + .transaction() + .prepare( + [edit], + gix::lock::acquire::Fail::Immediately, + gix::lock::acquire::Fail::Immediately, + )? + .commit(Some(Default::default()))?; + log::trace!("fast-forward successful"); + Ok(new_object_id) } /// Clone a repo from the given url to a destination path in the filesystem. -pub fn clone(url: &Url, dest: &Path) -> HcResult<()> { - log::debug!("remote repository cloning url is {}", url); - - RepoBuilder::new() - .with_checkout(make_checkout_builder()) - .fetch_options(make_fetch_opts()) - .clone(url.as_str(), dest)?; - - Ok(()) +pub fn clone( + url: &Url, + dest: &Path, + progress_root: Arc, +) -> HcResult { + let mut progress = progress_root.add_child("clone"); + log::debug!("attempting to clone {} to {:?}", url.as_str(), dest); + std::fs::create_dir_all(dest)?; + let mut fetch_options = fetch_options(url, dest); + let (mut checkout, _) = + fetch_options.fetch_then_checkout(&mut progress, &gix::interrupt::IS_INTERRUPTED)?; + let (repo, _) = checkout.main_worktree(&mut progress, &gix::interrupt::IS_INTERRUPTED)?; + log::debug!("Successfully cloned {} to {:?}", url.as_str(), dest); + Ok(repo) } -/// For a given repo, checkout a particular ref in a detached HEAD state. If no -/// ref is provided, instead try to resolve the most correct ref to target. If -/// the repo has one branch, try fast-forwarding to match upstream, then set HEAD -/// to top of branch. Else, if the repo has one remote, try to find a local branch -/// tracking the default branch of remote and set HEAD to that. Otherwise, error. -pub fn checkout(repo_path: &Path, refspec: Option) -> HcResult { - // Open the repo with git2. - let repo: Repository = Repository::open(repo_path)?; - // Get the repo's head. - let head: Reference = repo.head()?; - // Get the shortname for later debugging. - let init_short_name = head - .shorthand() - .ok_or(HcError::msg("HEAD shorthand should be UTF-8"))?; - let ret_str: String; - if let Some(refspec_str) = refspec { - // Parse refspec as an annotated commit, and set HEAD based on that - - // Try refspec as given - let tgt_ref: AnnotatedCommit = match repo.revparse_single(&refspec_str) { - Ok(object) => repo.find_annotated_commit(object.peel_to_commit()?.id())?, - // If that refspec is not found, try it again with a leading "v" +/// For a given repo, checkout a particular ref in a detached HEAD state. +/// +/// 1. If a refspec is passed, then attempt to fast-forward to the specified revision +/// 2. If no ref is provided, then attempt to fast-forward repo to HEAD of the default remote. +/// 3. If there is no default remote, then attempt to set HEAD to match upstream of local branch +/// +/// If none of these are possible, then error due to inability to infer target +pub fn checkout(repo_path: &Path, refspec: Option) -> HcResult { + let repo = gix::open(repo_path)?; + let head = repo.head()?; + + // if a refspec was given attempt to resolve it, error if unable to resolve + if let Some(refspec) = refspec { + log::trace!("attempting to find refspec [{}]", refspec); + // try refspec as given + let target = match repo.rev_parse(refspec.as_str()) { + Ok(rev) => { + let oid = rev + .single() + .ok_or_else(|| hc_error!("ref '{}' was not a unique identifier", refspec))?; + repo.find_object(oid)?.id + } Err(e) => { return Err(hc_error!( "Could not find repo with provided refspec: {}", @@ -164,98 +114,47 @@ pub fn checkout(repo_path: &Path, refspec: Option) -> HcResult { )); } }; + log::trace!("found refspec: {:?}", target); + return fast_forward_to_hash(&repo, head, target); + } - repo.set_head_detached_from_annotated(tgt_ref)?; - ret_str = refspec_str; - } else { - // Get names of remotes - let raw_remotes = repo.remotes()?; - let remotes = raw_remotes.into_iter().flatten().collect::>(); - let mut local_branches = repo - .branches(Some(git2::BranchType::Local))? - .filter_map(|x| match x { - Ok((b, _)) => Some(b), - _ => None, - }) - .collect::>(); - if local_branches.len() == 1 { - let mut local_branch = local_branches.remove(0); - // if applicable, update local_branch reference to match newest remote commit - if let Ok(upstr) = local_branch.upstream() { - let remote_ref = upstr.into_reference(); - let target_commit = repo - .reference_to_annotated_commit(&remote_ref) - .context("Error creating annotated commit")?; - let reflog_msg = format!( - "Fast-forward {init_short_name} to id: {}", - target_commit.id() - ); - // Set the local branch to the given commit - local_branch - .get_mut() - .set_target(target_commit.id(), &reflog_msg)?; + // Determine if there is a default remote, if there is determine what it thinks HEAD is and + // fast-forward to the remote HEAD + if let Some(Ok(default_remote)) = repo.find_default_remote(remote::Direction::Fetch) { + if let Some(remote_name) = default_remote.name() { + if let Ok(mut remote_head) = + repo.find_reference(format!("refs/remotes/{}/HEAD", remote_name.as_bstr()).as_str()) + { + let target = remote_head.peel_to_id_in_place()?; + return fast_forward_to_hash(&repo, head, target.into()); } - // Get branch name in form "refs/heads/" - let tgt_ref = local_branch.get(); - let local_name = tgt_ref.name().unwrap(); - repo.set_head(local_name)?; - ret_str = tgt_ref.shorthand().unwrap_or(local_name).to_owned(); - } else if remotes.len() == 1 { - // Get name of default branch for remote - let mut remote = repo.find_remote(remotes.first().unwrap())?; - remote.connect(git2::Direction::Fetch)?; - let default = remote.default_branch()?; - // Get the in "refs/heads/" for remote - let default_name = default.as_str().unwrap(); - let (_, remote_branch_name) = default_name.rsplit_once('/').unwrap(); - // Check if any local branches are tracking it - let mut opt_tgt_head: Option<&str> = None; - for branch in local_branches.iter() { - let Ok(upstr) = branch.upstream() else { - continue; - }; - // Get the in "refs/remote//" - let upstream_name = upstr.get().name().unwrap(); - let (_, upstream_branch_name) = upstream_name.rsplit_once('/').unwrap(); - // If the branch names match, we have found our branch - if upstream_branch_name == remote_branch_name { - opt_tgt_head = Some(branch.get().name().unwrap()); - break; - } - } - let Some(local_name) = opt_tgt_head else { - return Err(HcError::msg( - "could not find local branch tracking remote default", - )); - }; - repo.set_head(local_name)?; - let head_ref = repo.head()?; - ret_str = head_ref.shorthand().unwrap_or(local_name).to_owned(); - } else { - return Err(HcError::msg( - "repo has multiple local branches and remotes, target is ambiguous", - )); } } - repo.checkout_head(Some(make_checkout_builder().force()))?; - Ok(ret_str) + let mut local_branches = repo.branch_names(); + if local_branches.len() == 1 { + let mut local_branch = repo.find_reference( + format!("refs/heads/{}", local_branches.pop_first().unwrap()).as_str(), + )?; + let tip_of_local_branch = local_branch.peel_to_id_in_place()?; + return fast_forward_to_hash(&repo, head, tip_of_local_branch.into()); + } + Err(HcError::msg("target is ambiguous")) } -/// Do a `git fetch` for all remotes in the repo. -pub fn fetch(repo_path: &Path) -> HcResult<()> { - // Open the repo with git2. - let repo: Repository = Repository::open(repo_path)?; - - // Do a general `git fetch` to get all new refs/tags - let remotes = repo.remotes()?; - for remote_name_str in remotes.into_iter().flatten() { - let mut remote = repo.find_remote(remote_name_str)?; - let refspecs = remote.fetch_refspecs()?; - let rs_arr = refspecs.into_iter().flatten().collect::>(); - // Fetch the updated remote. - remote.fetch(rs_arr.as_slice(), Some(&mut make_fetch_opts()), None)?; +/// Perform a `git fetch` for all remotes in the repo. +pub fn fetch(repo_path: &Path, progress_root: Arc) -> HcResult<()> { + let mut progress = progress_root.add_child("fetch"); + log::debug!("Fetching: {:?}", repo_path); + let repo = gix::open(repo_path)?; + let remote_names = repo.remote_names(); + for remote_name in remote_names { + log::trace!("Attempt to fetch remote: {}", remote_name.as_bstr()); + let remote = repo.find_remote(remote_name.as_bstr())?; + remote + .connect(gix::remote::Direction::Fetch)? + .prepare_fetch(&mut progress, Default::default())? + .receive(&mut progress, &gix::interrupt::IS_INTERRUPTED)?; } - Ok(()) } diff --git a/hipcheck/src/source/mod.rs b/hipcheck/src/source/mod.rs index 832ad94fb..650bf3f24 100644 --- a/hipcheck/src/source/mod.rs +++ b/hipcheck/src/source/mod.rs @@ -1,6 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pub mod git; +mod progress; use crate::{ error::{Context, Error, Result}, @@ -12,6 +13,8 @@ use pathbuf::pathbuf; use std::path::{Path, PathBuf}; use url::{Host, Url}; +pub use progress::GitProgressRenderHandle; + /// Creates a RemoteGitRepo struct from a given git URL by idenfitying if it is from a known host (currently only GitHub) or not pub fn get_remote_repo_from_url(url: Url) -> Result { match url.host() { diff --git a/hipcheck/src/source/progress.rs b/hipcheck/src/source/progress.rs new file mode 100644 index 000000000..edbc18c0a --- /dev/null +++ b/hipcheck/src/source/progress.rs @@ -0,0 +1,44 @@ +use std::{sync::Arc, time::Duration}; + +use prodash::{ + render::line::{JoinHandle, StreamKind}, + tree::Root, +}; + +use crate::shell::{verbosity::Verbosity, Shell}; + +/// holds handle to thread rendering gix progress, if `Verbosity` allows for displaying progress +pub struct GitProgressRenderHandle { + _join_handle: Option, +} + +impl GitProgressRenderHandle { + /// Create a handle to the thread responsible for rendering git operation progress, if the + /// Shell Verbosity allows for output, otherwise, do nothing + pub fn new(root: Arc) -> Self { + let join_handle = match Shell::get_verbosity() { + Verbosity::Normal => { + let render_line = prodash::render::line( + std::io::stderr(), + Arc::downgrade(&root), + prodash::render::line::Options { + frames_per_second: 30.0, + keep_running_if_progress_is_empty: false, + // prevent spamming of short-lived tasks + initial_delay: Some(Duration::from_millis(500)), + // prevent too many layers of output by stopping at 3 + level_filter: Some(0..=3), + ..Default::default() + } + .auto_configure(StreamKind::Stderr), + ); + Some(render_line) + } + Verbosity::Quiet | Verbosity::Silent => None, + }; + + Self { + _join_handle: join_handle, + } + } +} diff --git a/hipcheck/src/target/resolve.rs b/hipcheck/src/target/resolve.rs index bfda237de..3351d421b 100644 --- a/hipcheck/src/target/resolve.rs +++ b/hipcheck/src/target/resolve.rs @@ -11,11 +11,11 @@ use crate::{ shell::spinner_phase::SpinnerPhase, source::{ build_unknown_remote_clone_dir, clone_local_repo_to_cache, get_remote_repo_from_url, git, - try_resolve_remote_for_local, + try_resolve_remote_for_local, GitProgressRenderHandle, }, target::{multi::resolve_go_mod, types::*}, }; -use git2::{AnnotatedCommit, Repository}; +use gix::Object; use pathbuf::pathbuf; use regex::Regex; use semver::Version; @@ -73,6 +73,17 @@ impl TargetResolver { } } + /// Hide the progress bar temporarily, execute `f`, then redraw the progress bar + /// + /// Useful for external code that writes to the standard output. + pub fn suspend_status R, R>(&self, f: F) -> R { + if let Some(phase) = &self.config.phase { + phase.suspend(f) + } else { + f() + } + } + /// Accessor method to ensure immutability of `config` field pub fn get_config(&self) -> &TargetResolverConfig { &self.config @@ -90,8 +101,7 @@ impl TargetResolver { // if ref provided on CLI, use that Some(refspec.clone()) } else if let Some(pkg) = &self.package { - // Open the repo with git2. - let repo: Repository = Repository::open(repo_path)?; + let repo: gix::Repository = gix::open(repo_path)?; let cmt = { // If the package was specified with a version, try fuzzy matching it with the repo tags @@ -212,7 +222,7 @@ impl ResolveRepo for LocalGitRepo { }; // Checkout specified ref - self.git_ref = git::checkout(&self.path, init_ref)?; + self.git_ref = git::checkout(&self.path, init_ref)?.to_string(); log::debug!("Resolved git ref was '{}'", &self.git_ref); @@ -249,19 +259,27 @@ impl ResolveRepo for RemoteGitRepo { } }; - // Clone remote repo if not exists - if path.exists().not() { - t.update_status("cloning"); - git::clone(&self.url, &path) - .map_err(|e| hc_error!("failed to clone remote repository {}", e))?; - } else { - t.update_status("pulling"); - } - // Whether we cloned or not, we need to fetch so we get tags - git::fetch(&path).context("failed to fetch updates from remote repository")?; + // NOTE: suspend_status is needed, otherwise the Shell ProgressBars and progress bars + // tracking git operation progress fight over the terminal + t.suspend_status(|| -> std::result::Result<(), crate::Error> { + // when this goes out of scope, the render thread will die + let progress_root = prodash::tree::Root::new(); + // do not drop this until the end of the scope, otherwise the render thread will die + let _handle = GitProgressRenderHandle::new(progress_root.clone()); + + // Clone remote repo if not exists + if path.exists().not() { + git::clone(&self.url, &path, progress_root.clone()) + .context("failed to clone remote repository")?; + } + // Whether we cloned or not, we need to fetch so we get tags + git::fetch(&path, progress_root.clone()) + .context("failed to fetch updates from remote repository")?; + Ok(()) + })?; let refspec = t.get_checkout_target(&path)?; - let git_ref = git::checkout(&path, refspec)?; + let git_ref = git::checkout(&path, refspec)?.to_string(); log::debug!("Resolved git ref was '{}'", &git_ref); let local = LocalGitRepo { path, git_ref }; @@ -328,9 +346,9 @@ impl ResolveRepo for Sbom { } fn fuzzy_match_package_version<'a>( - repo: &'a Repository, + repo: &'a gix::Repository, package: &Package, -) -> Result> { +) -> Result> { let version = &package.version; let pkg_name = &package.name; @@ -347,11 +365,11 @@ fn fuzzy_match_package_version<'a>( format!("{pkg_name}@v{version}"), ]; - let mut opt_tgt_ref: Option = None; + let mut opt_tgt_ref: Option = None; for tag_str in potential_tags { - if let Ok(obj) = repo.revparse_single(&tag_str) { + if let Ok(obj) = repo.rev_parse_single(tag_str.as_str()) { log::debug!("revparse_single succeeded on '{}'", tag_str); - opt_tgt_ref = Some(repo.find_annotated_commit(obj.peel_to_commit()?.id())?); + opt_tgt_ref = Some(repo.find_object(obj)?); break; } else { log::trace!("Tried and failed to find a tag '{tag_str}' in repo"); @@ -373,29 +391,33 @@ static SEMVER_REGEX: LazyLock = LazyLock::new(|| { Regex::new(r"(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?").unwrap() }); -fn try_get_version_from_tag(opt_tag: Option<&str>) -> Option<(Version, String)> { - if let Some(tag_str) = opt_tag { - SEMVER_REGEX.captures(tag_str).and_then(|m| { - Version::parse(m.get(0).unwrap().as_str()) - .ok() - .map(|v| (v, tag_str.to_owned())) - }) - } else { - None - } +fn try_get_version_from_tag(tag: &str) -> Option<(Version, String)> { + SEMVER_REGEX.captures(tag).and_then(|m| { + Version::parse(m.get(0).unwrap().as_str()) + .ok() + .map(|v| (v, tag.to_owned())) + }) +} + +/// get all of the git tags present in a repository +fn get_all_tags(repo: &gix::Repository) -> Result> { + let tags = repo.refs.iter()?.prefixed("refs/tags".as_ref()).map(|t| { + t.into_iter() + .filter_map(|x| x.ok()) + .map(|x| x.name.shorten().to_string()) + .collect::>() + })?; + Ok(tags) } // @SpeedUp - could reverse the `tag_names()` iterator and just find the first tag that matches the // regex in `try_get_version_from_tag()`. -fn try_find_commit_for_latest_version_tag( - repo: &Repository, -) -> Result>> { +fn try_find_commit_for_latest_version_tag(repo: &gix::Repository) -> Result> { // Iterate through the tags in the repo and filter for those that have a semver version embedded // in the name - let mut tags: Vec<(Version, String)> = repo - .tag_names(None)? - .iter() - .filter_map(try_get_version_from_tag) + let mut tags: Vec<(Version, String)> = get_all_tags(repo)? + .into_iter() + .filter_map(|tag| try_get_version_from_tag(tag.as_str())) .collect(); // Reverse-sort so "highest" version is first tags.sort_by(|a, b| b.0.cmp_precedence(&a.0)); @@ -403,11 +425,9 @@ fn try_find_commit_for_latest_version_tag( // Get the tag of the highest version and convert to an AnnotatedCommit if let Some((_, tag_str)) = tags.first() { log::debug!("Determined '{tag_str}' to be the tag for the newest version"); - if let Ok(obj) = repo.revparse_single(tag_str) { + if let Ok(obj) = repo.rev_parse_single(tag_str.as_str()) { log::debug!("revparse_single succeeded on '{tag_str}'"); - Ok(Some( - repo.find_annotated_commit(obj.peel_to_commit()?.id())?, - )) + Ok(Some(repo.find_commit(obj)?.into())) } else { let err_msg = format!("Failed to get commit for known tag '{}' in repo", tag_str); log::error!("{err_msg}"); diff --git a/library/hipcheck-workspace-hack/Cargo.toml b/library/hipcheck-workspace-hack/Cargo.toml index 3b5f9907e..3c4273fd2 100644 --- a/library/hipcheck-workspace-hack/Cargo.toml +++ b/library/hipcheck-workspace-hack/Cargo.toml @@ -15,143 +15,228 @@ publish = false ### BEGIN HAKARI SECTION [dependencies] -ahash = { version = "0.8.11" } -byteorder = { version = "1.5.0" } bytes = { version = "1.10.1" } chrono = { version = "0.4.40", features = ["serde"] } +crypto-common = { version = "0.1.6", default-features = false, features = ["std"] } dashmap = { version = "6.1.0", default-features = false, features = ["inline", "raw-api", "rayon"] } digest = { version = "0.10.7", features = ["mac", "std"] } either = { version = "1.15.0", features = ["use_std"] } -flate2 = { version = "1.1.0", features = ["zlib"] } -form_urlencoded = { version = "1.2.1", default-features = false, features = ["std"] } +flate2 = { version = "1.1.1", features = ["zlib"] } +form_urlencoded = { version = "1.2.1" } futures-channel = { version = "0.3.31", features = ["sink"] } futures-sink = { version = "0.3.31" } futures-task = { version = "0.3.31", default-features = false, features = ["std"] } futures-util = { version = "0.3.31", default-features = false, features = ["async-await-macro", "channel", "io", "sink"] } +gix = { version = "0.71.0", default-features = false, features = ["basic", "blocking-http-transport-reqwest-rust-tls", "dirwalk", "max-control", "worktree-mutation", "zlib-stock"] } +gix-features = { version = "0.41.1", features = ["crc32", "fs-read-dir", "io-pipe", "once_cell", "parallel", "progress", "walkdir", "zlib-stock"] } +gix-pack = { version = "0.58.0", default-features = false, features = ["object-cache-dynamic", "pack-cache-lru-dynamic", "pack-cache-lru-static", "streaming-input"] } +gix-packetline = { version = "0.18.4", features = ["blocking-io"] } +gix-protocol = { version = "0.49.0", default-features = false, features = ["blocking-client"] } +gix-transport = { version = "0.46.0", features = ["http-client-reqwest-rust-tls"] } +gix-utils = { version = "0.2.0", default-features = false, features = ["bstr"] } hashbrown-3575ec1268b04181 = { package = "hashbrown", version = "0.15.2" } hashbrown-582f2526e08bb6a0 = { package = "hashbrown", version = "0.14.5", features = ["raw"] } -idna = { version = "1.0.3", default-features = false, features = ["compiled_data", "std"] } -indexmap = { version = "2.7.1", features = ["serde"] } -itertools = { version = "0.13.0" } -jiff = { version = "0.1.16", features = ["serde"] } -libz-sys = { version = "1.1.20", default-features = false, features = ["libc"] } -log = { version = "0.4.25", default-features = false, features = ["std"] } +indexmap = { version = "2.9.0", features = ["serde"] } +jiff-6f8ce4dd05d13bba = { package = "jiff", version = "0.2.6", features = ["serde"] } +jiff-c65f7effa3be6d31 = { package = "jiff", version = "0.1.29", features = ["serde"] } +log = { version = "0.4.27", default-features = false, features = ["std"] } memchr = { version = "2.7.4", features = ["use_std"] } -miette = { version = "7.4.0", features = ["fancy"] } +miette = { version = "7.5.0", features = ["fancy"] } minimal-lexical = { version = "0.2.1", default-features = false, features = ["std"] } nom = { version = "7.1.3" } num-traits = { version = "0.2.19", features = ["i128"] } percent-encoding = { version = "2.3.1" } +prodash = { version = "29.0.1", features = ["render-line", "render-line-autoconfigure", "render-line-crossterm", "unit-bytes", "unit-duration", "unit-human"] } prost = { version = "0.13.5", features = ["prost-derive"] } regex = { version = "1.11.1" } -regex-automata = { version = "0.4.8", default-features = false, features = ["dfa-onepass", "dfa-search", "hybrid", "meta", "nfa-backtrack", "perf-inline", "perf-literal", "unicode"] } +regex-automata = { version = "0.4.9", default-features = false, features = ["dfa-onepass", "dfa-search", "hybrid", "meta", "nfa-backtrack", "perf-inline", "perf-literal", "unicode"] } regex-syntax = { version = "0.8.5" } +reqwest = { version = "0.12.15", default-features = false, features = ["blocking", "charset", "http2", "macos-system-configuration", "rustls-tls", "rustls-tls-native-roots"] } schemars = { version = "0.8.22", features = ["chrono", "preserve_order", "url"] } semver = { version = "1.0.26", features = ["serde"] } serde = { version = "1.0.219", features = ["alloc", "derive", "rc"] } +sha1 = { version = "0.10.6", features = ["compress"] } sha2 = { version = "0.10.8" } -smallvec = { version = "1.13.2", default-features = false, features = ["const_new", "union", "write"] } +smallvec = { version = "1.15.0", default-features = false, features = ["const_new", "union", "write"] } strum = { version = "0.27.1", features = ["derive"] } -tokio = { version = "1.44.1", features = ["fs", "io-std", "io-util", "macros", "net", "process", "rt-multi-thread", "sync", "time"] } +sync_wrapper = { version = "1.0.2", default-features = false, features = ["futures"] } +tokio = { version = "1.44.2", features = ["fs", "io-std", "io-util", "macros", "net", "process", "rt-multi-thread", "sync", "time"] } tokio-stream = { version = "0.1.17", features = ["net"] } -tracing-core = { version = "0.1.32" } +tracing-core = { version = "0.1.33" } unicode-normalization = { version = "0.1.24" } url = { version = "2.5.4", features = ["serde"] } -winnow = { version = "0.6.22", features = ["simd", "unstable-recover"] } +winnow = { version = "0.7.6", features = ["simd"] } zeroize = { version = "1.8.1", features = ["zeroize_derive"] } [build-dependencies] -ahash = { version = "0.8.11" } -byteorder = { version = "1.5.0" } bytes = { version = "1.10.1" } -cc = { version = "1.2.16", default-features = false, features = ["parallel"] } +cc = { version = "1.2.18", default-features = false, features = ["parallel"] } chrono = { version = "0.4.40", features = ["serde"] } +crypto-common = { version = "0.1.6", default-features = false, features = ["std"] } dashmap = { version = "6.1.0", default-features = false, features = ["inline", "raw-api", "rayon"] } digest = { version = "0.10.7", features = ["mac", "std"] } either = { version = "1.15.0", features = ["use_std"] } -flate2 = { version = "1.1.0", features = ["zlib"] } -form_urlencoded = { version = "1.2.1", default-features = false, features = ["std"] } +flate2 = { version = "1.1.1", features = ["zlib"] } +form_urlencoded = { version = "1.2.1" } futures-channel = { version = "0.3.31", features = ["sink"] } futures-sink = { version = "0.3.31" } futures-task = { version = "0.3.31", default-features = false, features = ["std"] } futures-util = { version = "0.3.31", default-features = false, features = ["async-await-macro", "channel", "io", "sink"] } +gix = { version = "0.71.0", default-features = false, features = ["basic", "blocking-http-transport-reqwest-rust-tls", "dirwalk", "max-control", "worktree-mutation", "zlib-stock"] } +gix-features = { version = "0.41.1", features = ["crc32", "fs-read-dir", "io-pipe", "once_cell", "parallel", "progress", "walkdir", "zlib-stock"] } +gix-pack = { version = "0.58.0", default-features = false, features = ["object-cache-dynamic", "pack-cache-lru-dynamic", "pack-cache-lru-static", "streaming-input"] } +gix-packetline = { version = "0.18.4", features = ["blocking-io"] } +gix-protocol = { version = "0.49.0", default-features = false, features = ["blocking-client"] } +gix-transport = { version = "0.46.0", features = ["http-client-reqwest-rust-tls"] } +gix-utils = { version = "0.2.0", default-features = false, features = ["bstr"] } hashbrown-3575ec1268b04181 = { package = "hashbrown", version = "0.15.2" } hashbrown-582f2526e08bb6a0 = { package = "hashbrown", version = "0.14.5", features = ["raw"] } -idna = { version = "1.0.3", default-features = false, features = ["compiled_data", "std"] } -indexmap = { version = "2.7.1", features = ["serde"] } -itertools = { version = "0.13.0" } -jiff = { version = "0.1.16", features = ["serde"] } -libz-sys = { version = "1.1.20", default-features = false, features = ["libc"] } -log = { version = "0.4.25", default-features = false, features = ["std"] } +indexmap = { version = "2.9.0", features = ["serde"] } +jiff-6f8ce4dd05d13bba = { package = "jiff", version = "0.2.6", features = ["serde"] } +jiff-c65f7effa3be6d31 = { package = "jiff", version = "0.1.29", features = ["serde"] } +log = { version = "0.4.27", default-features = false, features = ["std"] } +maybe-async = { version = "0.2.10", features = ["is_sync"] } memchr = { version = "2.7.4", features = ["use_std"] } -miette = { version = "7.4.0", features = ["fancy"] } +miette = { version = "7.5.0", features = ["fancy"] } minimal-lexical = { version = "0.2.1", default-features = false, features = ["std"] } nom = { version = "7.1.3" } num-traits = { version = "0.2.19", features = ["i128"] } percent-encoding = { version = "2.3.1" } +prodash = { version = "29.0.1", features = ["render-line", "render-line-autoconfigure", "render-line-crossterm", "unit-bytes", "unit-duration", "unit-human"] } prost = { version = "0.13.5", features = ["prost-derive"] } regex = { version = "1.11.1" } -regex-automata = { version = "0.4.8", default-features = false, features = ["dfa-onepass", "dfa-search", "hybrid", "meta", "nfa-backtrack", "perf-inline", "perf-literal", "unicode"] } +regex-automata = { version = "0.4.9", default-features = false, features = ["dfa-onepass", "dfa-search", "hybrid", "meta", "nfa-backtrack", "perf-inline", "perf-literal", "unicode"] } regex-syntax = { version = "0.8.5" } +reqwest = { version = "0.12.15", default-features = false, features = ["blocking", "charset", "http2", "macos-system-configuration", "rustls-tls", "rustls-tls-native-roots"] } schemars = { version = "0.8.22", features = ["chrono", "preserve_order", "url"] } semver = { version = "1.0.26", features = ["serde"] } serde = { version = "1.0.219", features = ["alloc", "derive", "rc"] } +sha1 = { version = "0.10.6", features = ["compress"] } sha2 = { version = "0.10.8" } -smallvec = { version = "1.13.2", default-features = false, features = ["const_new", "union", "write"] } +smallvec = { version = "1.15.0", default-features = false, features = ["const_new", "union", "write"] } strum = { version = "0.27.1", features = ["derive"] } syn = { version = "2.0.100", features = ["extra-traits", "fold", "full", "visit", "visit-mut"] } -tokio = { version = "1.44.1", features = ["fs", "io-std", "io-util", "macros", "net", "process", "rt-multi-thread", "sync", "time"] } +sync_wrapper = { version = "1.0.2", default-features = false, features = ["futures"] } +tokio = { version = "1.44.2", features = ["fs", "io-std", "io-util", "macros", "net", "process", "rt-multi-thread", "sync", "time"] } tokio-stream = { version = "0.1.17", features = ["net"] } -tracing-core = { version = "0.1.32" } +tracing-core = { version = "0.1.33" } unicode-normalization = { version = "0.1.24" } url = { version = "2.5.4", features = ["serde"] } -winnow = { version = "0.6.22", features = ["simd", "unstable-recover"] } +winnow = { version = "0.7.6", features = ["simd"] } zeroize = { version = "1.8.1", features = ["zeroize_derive"] } [target.x86_64-unknown-linux-gnu.dependencies] -getrandom = { version = "0.3.1", default-features = false, features = ["std", "wasm_js"] } -libc = { version = "0.2.169" } -linux-raw-sys = { version = "0.4.14", default-features = false, features = ["elf", "errno", "general", "ioctl", "no_std", "std"] } -rustix = { version = "0.38.40", features = ["fs", "termios"] } +getrandom = { version = "0.3.2", default-features = false, features = ["std", "wasm_js"] } +hyper = { version = "1.6.0", features = ["client", "http1", "http2", "server"] } +hyper-rustls = { version = "0.27.5", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12", "webpki-tokio"] } +hyper-util = { version = "0.1.11", features = ["client-legacy", "server-auto", "service"] } +libc = { version = "0.2.171" } +miniz_oxide = { version = "0.8.8", default-features = false, features = ["with-alloc"] } +rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38.44", features = ["fs", "termios"] } +rustix-dff4ba8e3ae991db = { package = "rustix", version = "1.0.5", features = ["fs", "termios"] } +rustls = { version = "0.23.25", default-features = false, features = ["logging", "ring", "std", "tls12"] } +tower = { version = "0.5.2", default-features = false, features = ["balance", "buffer", "limit", "timeout"] } +tracing = { version = "0.1.41" } [target.x86_64-unknown-linux-gnu.build-dependencies] -getrandom = { version = "0.3.1", default-features = false, features = ["std", "wasm_js"] } -libc = { version = "0.2.169" } -linux-raw-sys = { version = "0.4.14", default-features = false, features = ["elf", "errno", "general", "ioctl", "no_std", "std"] } -rustix = { version = "0.38.40", features = ["fs", "termios"] } +getrandom = { version = "0.3.2", default-features = false, features = ["std", "wasm_js"] } +hyper = { version = "1.6.0", features = ["client", "http1", "http2", "server"] } +hyper-rustls = { version = "0.27.5", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12", "webpki-tokio"] } +hyper-util = { version = "0.1.11", features = ["client-legacy", "server-auto", "service"] } +libc = { version = "0.2.171" } +miniz_oxide = { version = "0.8.8", default-features = false, features = ["with-alloc"] } +rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38.44", features = ["fs", "termios"] } +rustix-dff4ba8e3ae991db = { package = "rustix", version = "1.0.5", features = ["fs", "termios"] } +rustls = { version = "0.23.25", default-features = false, features = ["logging", "ring", "std", "tls12"] } +tower = { version = "0.5.2", default-features = false, features = ["balance", "buffer", "limit", "timeout"] } +tracing = { version = "0.1.41" } [target.x86_64-apple-darwin.dependencies] -bitflags = { version = "2.6.0", default-features = false, features = ["std"] } -getrandom = { version = "0.3.1", default-features = false, features = ["std", "wasm_js"] } -libc = { version = "0.2.169", features = ["extra_traits"] } -rustix = { version = "0.38.40", features = ["fs", "termios"] } +bitflags = { version = "2.9.0", default-features = false, features = ["std"] } +getrandom = { version = "0.3.2", default-features = false, features = ["std", "wasm_js"] } +hyper = { version = "1.6.0", features = ["client", "http1", "http2", "server"] } +hyper-rustls = { version = "0.27.5", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12", "webpki-tokio"] } +hyper-util = { version = "0.1.11", features = ["client-legacy", "server-auto", "service"] } +libc = { version = "0.2.171", features = ["extra_traits"] } +miniz_oxide = { version = "0.8.8", default-features = false, features = ["with-alloc"] } +rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38.44", features = ["fs", "termios"] } +rustix-dff4ba8e3ae991db = { package = "rustix", version = "1.0.5", features = ["fs", "termios"] } +rustls = { version = "0.23.25", default-features = false, features = ["logging", "ring", "std", "tls12"] } +security-framework = { version = "3.2.0", features = ["OSX_10_14"] } +security-framework-sys = { version = "2.14.0", features = ["OSX_10_14"] } +tower = { version = "0.5.2", default-features = false, features = ["balance", "buffer", "limit", "timeout"] } +tracing = { version = "0.1.41" } [target.x86_64-apple-darwin.build-dependencies] -bitflags = { version = "2.6.0", default-features = false, features = ["std"] } -getrandom = { version = "0.3.1", default-features = false, features = ["std", "wasm_js"] } -libc = { version = "0.2.169", features = ["extra_traits"] } -rustix = { version = "0.38.40", features = ["fs", "termios"] } +bitflags = { version = "2.9.0", default-features = false, features = ["std"] } +getrandom = { version = "0.3.2", default-features = false, features = ["std", "wasm_js"] } +hyper = { version = "1.6.0", features = ["client", "http1", "http2", "server"] } +hyper-rustls = { version = "0.27.5", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12", "webpki-tokio"] } +hyper-util = { version = "0.1.11", features = ["client-legacy", "server-auto", "service"] } +libc = { version = "0.2.171", features = ["extra_traits"] } +miniz_oxide = { version = "0.8.8", default-features = false, features = ["with-alloc"] } +rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38.44", features = ["fs", "termios"] } +rustix-dff4ba8e3ae991db = { package = "rustix", version = "1.0.5", features = ["fs", "termios"] } +rustls = { version = "0.23.25", default-features = false, features = ["logging", "ring", "std", "tls12"] } +security-framework = { version = "3.2.0", features = ["OSX_10_14"] } +security-framework-sys = { version = "2.14.0", features = ["OSX_10_14"] } +tower = { version = "0.5.2", default-features = false, features = ["balance", "buffer", "limit", "timeout"] } +tracing = { version = "0.1.41" } [target.aarch64-apple-darwin.dependencies] -bitflags = { version = "2.6.0", default-features = false, features = ["std"] } -getrandom = { version = "0.3.1", default-features = false, features = ["std", "wasm_js"] } -libc = { version = "0.2.169", features = ["extra_traits"] } -rustix = { version = "0.38.40", features = ["fs", "termios"] } +bitflags = { version = "2.9.0", default-features = false, features = ["std"] } +getrandom = { version = "0.3.2", default-features = false, features = ["std", "wasm_js"] } +hyper = { version = "1.6.0", features = ["client", "http1", "http2", "server"] } +hyper-rustls = { version = "0.27.5", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12", "webpki-tokio"] } +hyper-util = { version = "0.1.11", features = ["client-legacy", "server-auto", "service"] } +libc = { version = "0.2.171", features = ["extra_traits"] } +miniz_oxide = { version = "0.8.8", default-features = false, features = ["with-alloc"] } +rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38.44", features = ["fs", "termios"] } +rustix-dff4ba8e3ae991db = { package = "rustix", version = "1.0.5", features = ["fs", "termios"] } +rustls = { version = "0.23.25", default-features = false, features = ["logging", "ring", "std", "tls12"] } +security-framework = { version = "3.2.0", features = ["OSX_10_14"] } +security-framework-sys = { version = "2.14.0", features = ["OSX_10_14"] } +tower = { version = "0.5.2", default-features = false, features = ["balance", "buffer", "limit", "timeout"] } +tracing = { version = "0.1.41" } [target.aarch64-apple-darwin.build-dependencies] -bitflags = { version = "2.6.0", default-features = false, features = ["std"] } -getrandom = { version = "0.3.1", default-features = false, features = ["std", "wasm_js"] } -libc = { version = "0.2.169", features = ["extra_traits"] } -rustix = { version = "0.38.40", features = ["fs", "termios"] } +bitflags = { version = "2.9.0", default-features = false, features = ["std"] } +getrandom = { version = "0.3.2", default-features = false, features = ["std", "wasm_js"] } +hyper = { version = "1.6.0", features = ["client", "http1", "http2", "server"] } +hyper-rustls = { version = "0.27.5", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12", "webpki-tokio"] } +hyper-util = { version = "0.1.11", features = ["client-legacy", "server-auto", "service"] } +libc = { version = "0.2.171", features = ["extra_traits"] } +miniz_oxide = { version = "0.8.8", default-features = false, features = ["with-alloc"] } +rustix-d585fab2519d2d1 = { package = "rustix", version = "0.38.44", features = ["fs", "termios"] } +rustix-dff4ba8e3ae991db = { package = "rustix", version = "1.0.5", features = ["fs", "termios"] } +rustls = { version = "0.23.25", default-features = false, features = ["logging", "ring", "std", "tls12"] } +security-framework = { version = "3.2.0", features = ["OSX_10_14"] } +security-framework-sys = { version = "2.14.0", features = ["OSX_10_14"] } +tower = { version = "0.5.2", default-features = false, features = ["balance", "buffer", "limit", "timeout"] } +tracing = { version = "0.1.41" } [target.x86_64-pc-windows-msvc.dependencies] -getrandom = { version = "0.3.1", default-features = false, features = ["std", "wasm_js"] } -windows-sys-73dcd821b1037cfd = { package = "windows-sys", version = "0.59.0", features = ["Win32_Globalization", "Win32_Storage_FileSystem", "Win32_System_Com", "Win32_System_Console", "Win32_System_Time", "Win32_UI_Input_KeyboardAndMouse", "Win32_UI_Shell"] } -windows-sys-b21d60becc0929df = { package = "windows-sys", version = "0.52.0", features = ["Wdk_Foundation", "Wdk_Storage_FileSystem", "Wdk_System_IO", "Win32_Foundation", "Win32_Networking_WinSock", "Win32_Security_Authorization", "Win32_Security_Cryptography", "Win32_Storage_FileSystem", "Win32_System_Console", "Win32_System_IO", "Win32_System_Memory", "Win32_System_Pipes", "Win32_System_SystemInformation", "Win32_System_SystemServices", "Win32_System_Threading", "Win32_System_WindowsProgramming"] } +getrandom = { version = "0.3.2", default-features = false, features = ["std", "wasm_js"] } +hyper = { version = "1.6.0", features = ["client", "http1", "http2", "server"] } +hyper-rustls = { version = "0.27.5", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12", "webpki-tokio"] } +hyper-util = { version = "0.1.11", features = ["client-legacy", "server-auto", "service"] } +rustls = { version = "0.23.25", default-features = false, features = ["logging", "ring", "std", "tls12"] } +tower = { version = "0.5.2", default-features = false, features = ["balance", "buffer", "limit", "timeout"] } +tracing = { version = "0.1.41" } +winapi = { version = "0.3.9", default-features = false, features = ["consoleapi", "errhandlingapi", "fileapi", "handleapi", "impl-default", "processenv", "std", "synchapi", "winbase", "winerror", "winsock2", "winuser"] } +windows-sys-73dcd821b1037cfd = { package = "windows-sys", version = "0.59.0", features = ["Win32_Globalization", "Win32_Security_Authentication_Identity", "Win32_Security_Credentials", "Win32_Security_Cryptography", "Win32_Storage_FileSystem", "Win32_System_Com", "Win32_System_Console", "Win32_System_LibraryLoader", "Win32_System_Memory", "Win32_System_SystemInformation", "Win32_System_Time", "Win32_UI_Input_KeyboardAndMouse", "Win32_UI_Shell"] } +windows-sys-b21d60becc0929df = { package = "windows-sys", version = "0.52.0", features = ["Wdk_Foundation", "Wdk_Storage_FileSystem", "Wdk_System_IO", "Win32_Foundation", "Win32_Networking_WinSock", "Win32_Security_Authorization", "Win32_Storage_FileSystem", "Win32_System_IO", "Win32_System_Memory", "Win32_System_Pipes", "Win32_System_SystemServices", "Win32_System_Threading", "Win32_System_WindowsProgramming"] } [target.x86_64-pc-windows-msvc.build-dependencies] -getrandom = { version = "0.3.1", default-features = false, features = ["std", "wasm_js"] } -windows-sys-73dcd821b1037cfd = { package = "windows-sys", version = "0.59.0", features = ["Win32_Globalization", "Win32_Storage_FileSystem", "Win32_System_Com", "Win32_System_Console", "Win32_System_Time", "Win32_UI_Input_KeyboardAndMouse", "Win32_UI_Shell"] } -windows-sys-b21d60becc0929df = { package = "windows-sys", version = "0.52.0", features = ["Wdk_Foundation", "Wdk_Storage_FileSystem", "Wdk_System_IO", "Win32_Foundation", "Win32_Networking_WinSock", "Win32_Security_Authorization", "Win32_Security_Cryptography", "Win32_Storage_FileSystem", "Win32_System_Console", "Win32_System_IO", "Win32_System_Memory", "Win32_System_Pipes", "Win32_System_SystemInformation", "Win32_System_SystemServices", "Win32_System_Threading", "Win32_System_WindowsProgramming"] } +getrandom = { version = "0.3.2", default-features = false, features = ["std", "wasm_js"] } +hyper = { version = "1.6.0", features = ["client", "http1", "http2", "server"] } +hyper-rustls = { version = "0.27.5", default-features = false, features = ["http1", "http2", "native-tokio", "ring", "tls12", "webpki-tokio"] } +hyper-util = { version = "0.1.11", features = ["client-legacy", "server-auto", "service"] } +rustls = { version = "0.23.25", default-features = false, features = ["logging", "ring", "std", "tls12"] } +tower = { version = "0.5.2", default-features = false, features = ["balance", "buffer", "limit", "timeout"] } +tracing = { version = "0.1.41" } +winapi = { version = "0.3.9", default-features = false, features = ["consoleapi", "errhandlingapi", "fileapi", "handleapi", "impl-default", "processenv", "std", "synchapi", "winbase", "winerror", "winsock2", "winuser"] } +windows-sys-73dcd821b1037cfd = { package = "windows-sys", version = "0.59.0", features = ["Win32_Globalization", "Win32_Security_Authentication_Identity", "Win32_Security_Credentials", "Win32_Security_Cryptography", "Win32_Storage_FileSystem", "Win32_System_Com", "Win32_System_Console", "Win32_System_LibraryLoader", "Win32_System_Memory", "Win32_System_SystemInformation", "Win32_System_Time", "Win32_UI_Input_KeyboardAndMouse", "Win32_UI_Shell"] } +windows-sys-b21d60becc0929df = { package = "windows-sys", version = "0.52.0", features = ["Wdk_Foundation", "Wdk_Storage_FileSystem", "Wdk_System_IO", "Win32_Foundation", "Win32_Networking_WinSock", "Win32_Security_Authorization", "Win32_Storage_FileSystem", "Win32_System_IO", "Win32_System_Memory", "Win32_System_Pipes", "Win32_System_SystemServices", "Win32_System_Threading", "Win32_System_WindowsProgramming"] } ### END HAKARI SECTION diff --git a/plugins/git/Cargo.toml b/plugins/git/Cargo.toml index 5c68e6fd1..2df3d77e8 100644 --- a/plugins/git/Cargo.toml +++ b/plugins/git/Cargo.toml @@ -13,7 +13,7 @@ hipcheck-sdk = { version = "0.5.0", path = "../../sdk/rust", features = [ "macros", ] } lru = "0.13.0" -gix = { version = "0.70.0", default-features = false, features = [ +gix = { version = "0.71.0", default-features = false, features = [ "basic", "max-control", "zlib-stock",