diff --git a/Cargo.lock b/Cargo.lock index c63cd63a..13e58f33 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -55,6 +55,16 @@ version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +[[package]] +name = "annotate-snippets" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d9b665789884a7e8fb06c84b295e923b03ca51edbb7d08f91a6a50322ecbfe6" +dependencies = [ + "anstyle", + "unicode-width", +] + [[package]] name = "anstream" version = "0.6.13" @@ -129,9 +139,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "backtrace" @@ -295,10 +305,11 @@ dependencies = [ [[package]] name = "cargo" -version = "0.77.0" +version = "0.78.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a399e5bde59d144aa2c7ba643765e2f8c6c3c601daa2da03202caf66f2552b3" +checksum = "40aa4f7f65beb7840194ee32d91f7d0ee0165bbf85e368bbb2c8d6389ea4fabb" dependencies = [ + "annotate-snippets", "anstream", "anstyle", "anyhow", @@ -310,6 +321,7 @@ dependencies = [ "cargo-credential-wincred", "cargo-platform", "cargo-util", + "cargo-util-schemas", "clap", "color-print", "crates-io", @@ -320,7 +332,7 @@ dependencies = [ "git2", "git2-curl", "gix", - "gix-features 0.35.0", + "gix-features", "glob", "hex", "hmac", @@ -340,7 +352,6 @@ dependencies = [ "os_info", "pasetors", "pathdiff", - "pulldown-cmark", "rand", "regex", "rusqlite", @@ -348,13 +359,11 @@ dependencies = [ "semver", "serde", "serde-untagged", - "serde-value", "serde_ignored", "serde_json", "sha1", "shell-escape", "supports-hyperlinks 2.1.0", - "syn 2.0.55", "tar", "tempfile", "time", @@ -364,7 +373,6 @@ dependencies = [ "tracing-subscriber", "unicase", "unicode-width", - "unicode-xid", "url", "walkdir", "windows-sys 0.52.0", @@ -435,11 +443,13 @@ dependencies = [ "cargo", "cargo-platform", "cargo-util", + "cargo-util-schemas", "clap", "clap_lex", "dirs", "env_logger", "fs_extra", + "futures-lite", "log", "nix 0.28.0", "once_cell", @@ -460,9 +470,9 @@ dependencies = [ [[package]] name = "cargo-util" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74862c3c6e53a1c1f8f0178f9d38ab41e49746cd3a7cafc239b3d0248fd4e342" +checksum = "9f2d9a9a8d3e0b61b1110c49ab8f6ed7a76ce4f2b1d53ae48a83152d3d5e8f5b" dependencies = [ "anyhow", "core-foundation", @@ -481,6 +491,22 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "cargo-util-schemas" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e63d2780ac94487eb9f1fea7b0d56300abc9eb488800854ca217f102f5caccca" +dependencies = [ + "semver", + "serde", + "serde-untagged", + "serde-value", + "thiserror", + "toml", + "unicode-xid", + "url", +] + [[package]] name = "cc" version = "1.0.90" @@ -541,9 +567,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.3" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -566,9 +592,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.3" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -707,9 +733,9 @@ dependencies = [ [[package]] name = "crates-io" -version = "0.39.2" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6622f902c3c338eced1f000091f034846ae36aadaf35d0acd1ab0469a2d8ef1f" +checksum = "19958b4dfc8889cf78606e5e2fe64e7e0170a9ab853157192608f3a3253c8ef8" dependencies = [ "curl", "percent-encoding", @@ -1017,9 +1043,6 @@ name = "faster-hex" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" -dependencies = [ - "serde", -] [[package]] name = "fastrand" @@ -1252,9 +1275,9 @@ dependencies = [ [[package]] name = "gix" -version = "0.56.0" +version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0dcdc9c60d66535897fa40a7ea2a635e72f99456b1d9ae86b7e170e80618cb" +checksum = "6dd025382892c7b500a9ce1582cd803f9c2ebfe44aff52e9c7f86feee7ced75e" dependencies = [ "gix-actor", "gix-attributes", @@ -1265,7 +1288,7 @@ dependencies = [ "gix-date", "gix-diff", "gix-discover", - "gix-features 0.36.1", + "gix-features", "gix-filter", "gix-fs", "gix-glob", @@ -1307,9 +1330,9 @@ dependencies = [ [[package]] name = "gix-actor" -version = "0.28.1" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eadca029ef716b4378f7afb19f7ee101fde9e58ba1f1445971315ac866db417" +checksum = "da27b5ab4ab5c75ff891dccd48409f8cc53c28a79480f1efdd33184b2dc1d958" dependencies = [ "bstr", "btoi", @@ -1321,9 +1344,9 @@ dependencies = [ [[package]] name = "gix-attributes" -version = "0.20.1" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f395469d38c76ec47cd1a6c5a53fbc3f13f737b96eaf7535f4e6b367e643381" +checksum = "bd6de7603d6bcefcf9a1d87779c4812b14665f71bc870df7ce9ca4c4b309de18" dependencies = [ "bstr", "gix-glob", @@ -1368,13 +1391,13 @@ dependencies = [ [[package]] name = "gix-commitgraph" -version = "0.22.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a7007ba021f059803afaf6f8a48872422abc20550ac12ede6ddea2936cec36" +checksum = "7e8dcbf434951fa477063e05fea59722615af70dc2567377e58c2f7853b010fc" dependencies = [ "bstr", "gix-chunk", - "gix-features 0.36.1", + "gix-features", "gix-hash", "memmap2", "thiserror", @@ -1382,13 +1405,13 @@ dependencies = [ [[package]] name = "gix-config" -version = "0.32.1" +version = "0.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0341471d55d8676e98b88e121d7065dfa4c9c5acea4b6d6ecdd2846e85cce0c3" +checksum = "367304855b369cadcac4ee5fb5a3a20da9378dd7905106141070b79f85241079" dependencies = [ "bstr", "gix-config-value", - "gix-features 0.36.1", + "gix-features", "gix-glob", "gix-path", "gix-ref", @@ -1416,9 +1439,9 @@ dependencies = [ [[package]] name = "gix-credentials" -version = "0.22.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513dac42450b27946bd0a0535a3a5a88e473d6522e5e3439a129cab779c88f3d" +checksum = "380cf3a7c31763743ae6403ec473281d54bfa05628331d09518a350ad5a0971f" dependencies = [ "bstr", "gix-command", @@ -1445,9 +1468,9 @@ dependencies = [ [[package]] name = "gix-diff" -version = "0.38.0" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8119a985887cfe68f4bdf92e51bd64bc758a73882d82fcfc03ebcb164441c85d" +checksum = "fd6a0454f8c42d686f17e7f084057c717c082b7dbb8209729e4e8f26749eb93a" dependencies = [ "bstr", "gix-hash", @@ -1457,9 +1480,9 @@ dependencies = [ [[package]] name = "gix-discover" -version = "0.27.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fad89416ebe0b3b7df78464124e2a02417b6cd3743d48ad93df86f4d2929c07" +checksum = "b8d7b2896edc3d899d28a646ccc6df729827a6600e546570b2783466404a42d6" dependencies = [ "bstr", "dunce", @@ -1472,30 +1495,19 @@ dependencies = [ [[package]] name = "gix-features" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b9ff423ae4983f762659040d13dd7a5defbd54b6a04ac3cc7347741cec828cd" -dependencies = [ - "crossbeam-channel", - "gix-hash", - "gix-trace", - "libc", - "parking_lot 0.12.1", -] - -[[package]] -name = "gix-features" -version = "0.36.1" +version = "0.37.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d46a4a5c6bb5bebec9c0d18b65ada20e6517dbd7cf855b87dd4bbdce3a771b2" +checksum = "d50270e8dcc665f30ba0735b17984b9535bdf1e646c76e638e007846164d57af" dependencies = [ "bytes", "crc32fast", + "crossbeam-channel", "flate2", "gix-hash", "gix-trace", "libc", "once_cell", + "parking_lot 0.12.1", "prodash", "sha1_smol", "thiserror", @@ -1504,9 +1516,9 @@ dependencies = [ [[package]] name = "gix-filter" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d6a5c9d8e55c364e7c226919c19c9a28be1392d6208b5008059fa94ff7e2bf0" +checksum = "f598c1d688bf9d57f428ed7ee70c3e786d6f0cc7ed1aeb3c982135af41f6e516" dependencies = [ "bstr", "encoding_rs", @@ -1525,30 +1537,30 @@ dependencies = [ [[package]] name = "gix-fs" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20e86eb040f5776a5ade092282e51cdcad398adb77d948b88d17583c2ae4e107" +checksum = "7555c23a005537434bbfcb8939694e18cad42602961d0de617f8477cc2adecdd" dependencies = [ - "gix-features 0.36.1", + "gix-features", ] [[package]] name = "gix-glob" -version = "0.14.1" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db19298c5eeea2961e5b3bf190767a2d1f09b8802aeb5f258e42276350aff19" +checksum = "ae6232f18b262770e343dcdd461c0011c9b9ae27f0c805e115012aa2b902c1b8" dependencies = [ "bitflags 2.5.0", "bstr", - "gix-features 0.36.1", + "gix-features", "gix-path", ] [[package]] name = "gix-hash" -version = "0.13.3" +version = "0.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f8cf8c2266f63e582b7eb206799b63aa5fa68ee510ad349f637dfe2d0653de0" +checksum = "f93d7df7366121b5018f947a04d37f034717e113dcf9ccd85c34b58e57a74d5e" dependencies = [ "faster-hex", "thiserror", @@ -1556,9 +1568,9 @@ dependencies = [ [[package]] name = "gix-hashtable" -version = "0.4.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "feb61880816d7ec4f0b20606b498147d480860ddd9133ba542628df2f548d3ca" +checksum = "7ddf80e16f3c19ac06ce415a38b8591993d3f73aede049cb561becb5b3a8e242" dependencies = [ "gix-hash", "hashbrown", @@ -1567,9 +1579,9 @@ dependencies = [ [[package]] name = "gix-ignore" -version = "0.9.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a215cc8cf21645bca131fcf6329d3ebd46299c47dbbe27df71bb1ca9e328b879" +checksum = "f356ce440c60aedb7e72f3447f352f9c5e64352135c8cf33e838f49760fd2643" dependencies = [ "bstr", "gix-glob", @@ -1579,16 +1591,16 @@ dependencies = [ [[package]] name = "gix-index" -version = "0.27.1" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3f308f5cd2992e96a274b0d1931e9a0e44fdcba87695ead3f6df30d8a697e9c" +checksum = "9e50e63df6c8d4137f7fb882f27643b3a9756c468a1a2cdbe1ce443010ca8778" dependencies = [ "bitflags 2.5.0", "bstr", "btoi", "filetime", "gix-bitmap", - "gix-features 0.36.1", + "gix-features", "gix-fs", "gix-hash", "gix-lock", @@ -1604,9 +1616,9 @@ dependencies = [ [[package]] name = "gix-lock" -version = "11.0.1" +version = "12.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e5c65e6a29830a435664891ced3f3c1af010f14900226019590ee0971a22f37" +checksum = "f40a439397f1e230b54cf85d52af87e5ea44cc1e7748379785d3f6d03d802b00" dependencies = [ "gix-tempfile", "gix-utils", @@ -1626,9 +1638,9 @@ dependencies = [ [[package]] name = "gix-negotiate" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "979f6accd9c051b3dd018b50adf29c0a2459edddf6105cc70b767976cd6f8014" +checksum = "e6820bb5e9e259f6ad052826037452ca023d4f248c5d710dce067d89685dd582" dependencies = [ "bitflags 2.5.0", "gix-commitgraph", @@ -1642,15 +1654,15 @@ dependencies = [ [[package]] name = "gix-object" -version = "0.39.0" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "febf79c5825720c1c63fe974c7bbe695d0cb54aabad73f45671c60ce0e501e33" +checksum = "0c89402e8faa41b49fde348665a8f38589e461036475af43b6b70615a6a313a2" dependencies = [ "bstr", "btoi", "gix-actor", "gix-date", - "gix-features 0.36.1", + "gix-features", "gix-hash", "gix-validate", "itoa", @@ -1661,13 +1673,13 @@ dependencies = [ [[package]] name = "gix-odb" -version = "0.55.0" +version = "0.56.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fae5f971540c99c6ecc8d4368ecc9d18a9dc8b9391025c68c4399747dc93bac" +checksum = "46ae6da873de41c6c2b73570e82c571b69df5154dcd8f46dfafc6687767c33b1" dependencies = [ "arc-swap", "gix-date", - "gix-features 0.36.1", + "gix-features", "gix-hash", "gix-object", "gix-pack", @@ -1680,13 +1692,13 @@ dependencies = [ [[package]] name = "gix-pack" -version = "0.45.0" +version = "0.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4569491c92446fddf373456ff360aff9a9effd627b40a70f2d7914dcd75a3205" +checksum = "782b4d42790a14072d5c400deda9851f5765f50fe72bca6dece0da1cd6f05a9a" dependencies = [ "clru", "gix-chunk", - "gix-features 0.36.1", + "gix-features", "gix-hash", "gix-hashtable", "gix-object", @@ -1737,9 +1749,9 @@ dependencies = [ [[package]] name = "gix-pathspec" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dbbb92f75a38ef043c8bb830b339b38d0698d7f3746968b5fcbade7a880494d" +checksum = "0cdb0ee9517c04f89bcaf6366fe893a17154ecb02d88b5c8174f27f1091d1247" dependencies = [ "bitflags 2.5.0", "bstr", @@ -1765,15 +1777,15 @@ dependencies = [ [[package]] name = "gix-protocol" -version = "0.42.0" +version = "0.43.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95736ef407db0bd15a5bdea791fbfcf523b9f13b96c852c240cd86a9ee0ef817" +checksum = "eca52738435991105f3bbd7f3a3a42cdf84c9992a78b9b7b1de528b3c022cfdd" dependencies = [ "bstr", "btoi", "gix-credentials", "gix-date", - "gix-features 0.36.1", + "gix-features", "gix-hash", "gix-transport", "maybe-async", @@ -1794,13 +1806,13 @@ dependencies = [ [[package]] name = "gix-ref" -version = "0.39.1" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2069adc212cf7f3317ef55f6444abd06c50f28479dbbac5a86acf3b05cbbfe" +checksum = "64d9bd1984638d8f3511a2fcbe84fcedb8a5b5d64df677353620572383f42649" dependencies = [ "gix-actor", "gix-date", - "gix-features 0.36.1", + "gix-features", "gix-fs", "gix-hash", "gix-lock", @@ -1815,9 +1827,9 @@ dependencies = [ [[package]] name = "gix-refspec" -version = "0.20.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d9d3b82e1ee78fc0dc1c37ea5ea76c2dbc73f407db155f0dfcea285e583bee" +checksum = "be219df5092c1735abb2a53eccdf775e945eea6986ee1b6e7a5896dccc0be704" dependencies = [ "bstr", "gix-hash", @@ -1829,9 +1841,9 @@ dependencies = [ [[package]] name = "gix-revision" -version = "0.24.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe5dd51710ce5434bc315ea30394fab483c5377276494edd79222b321a5a9544" +checksum = "aa78e1df3633bc937d4db15f8dca2abdb1300ca971c0fabcf9fa97e38cf4cd9f" dependencies = [ "bstr", "gix-date", @@ -1845,9 +1857,9 @@ dependencies = [ [[package]] name = "gix-revwalk" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d4ed2493ca94a475fdf147138e1ef8bab3b6ebb56abf3d9bda1c05372ec1dd" +checksum = "702de5fe5c2bbdde80219f3a8b9723eb927466e7ecd187cfd1b45d986408e45f" dependencies = [ "gix-commitgraph", "gix-date", @@ -1872,9 +1884,9 @@ dependencies = [ [[package]] name = "gix-submodule" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02a3d7f60a95bdcaeb8981663c99d1c9f4de42aab1169524c949e948989809f9" +checksum = "21d438409222de24dffcc9897f04a9f97903a19fe4835b598ab3bb9b6e0f5e35" dependencies = [ "bstr", "gix-config", @@ -1887,9 +1899,9 @@ dependencies = [ [[package]] name = "gix-tempfile" -version = "11.0.1" +version = "12.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388dd29114a86ec69b28d1e26d6d63a662300ecf61ab3f4cc578f7d7dc9e7e23" +checksum = "a8ef376d718b1f5f119b458e21b00fbf576bc9d4e26f8f383d29f5ffe3ba3eaa" dependencies = [ "gix-fs", "libc", @@ -1906,16 +1918,16 @@ checksum = "9b838b2db8f62c9447d483a4c28d251b67fee32741a82cb4d35e9eb4e9fdc5ab" [[package]] name = "gix-transport" -version = "0.39.0" +version = "0.40.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f731cfefc4d62468c6dd2053f5c6707828256a6d2f5488c1811e3f42c178b144" +checksum = "be01a22053e9395a409fcaeed879d94f4fcffeb4f46de7143275fbf5e5b39770" dependencies = [ "base64", "bstr", "curl", "gix-command", "gix-credentials", - "gix-features 0.36.1", + "gix-features", "gix-packetline", "gix-quote", "gix-sec", @@ -1925,9 +1937,9 @@ dependencies = [ [[package]] name = "gix-traverse" -version = "0.35.0" +version = "0.36.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df2112088122a0206592c84fbd42020db63b2ccaed66a0293779f2e5fbf80474" +checksum = "65109e445ba7a409b48f34f570a4d7db72eade1dc1bcff81990a490e86c07161" dependencies = [ "gix-commitgraph", "gix-date", @@ -1941,12 +1953,12 @@ dependencies = [ [[package]] name = "gix-url" -version = "0.25.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c427a1a11ccfa53a4a2da47d9442c2241deee63a154bc15cc14b8312fbc4005" +checksum = "8f0f17cceb7552a231d1fec690bc2740c346554e3be6f5d2c41dfa809594dc44" dependencies = [ "bstr", - "gix-features 0.36.1", + "gix-features", "gix-path", "home", "thiserror", @@ -1975,13 +1987,13 @@ dependencies = [ [[package]] name = "gix-worktree" -version = "0.28.0" +version = "0.29.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f1d0ae01dee14abe8c8117d78d7518f9a507de2dc4522546fbf4c444e9860b4" +checksum = "53982f8abff0789a9599e644108a1914da61a4d0dede8e45037e744dcb008d52" dependencies = [ "bstr", "gix-attributes", - "gix-features 0.36.1", + "gix-features", "gix-fs", "gix-glob", "gix-hash", @@ -2097,10 +2109,10 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be92446e11d68f5d71367d571c229d09ced1f24ab6d08ea0bff329d5f6c0b2a3" dependencies = [ - "html5ever", + "html5ever 0.26.0", "jni", "lazy_static", - "markup5ever_rcdom", + "markup5ever_rcdom 0.2.0", "percent-encoding", "regex", ] @@ -2113,12 +2125,26 @@ checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7" dependencies = [ "log", "mac", - "markup5ever", + "markup5ever 0.11.0", "proc-macro2", "quote", "syn 1.0.109", ] +[[package]] +name = "html5ever" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c13771afe0e6e846f1e67d038d4cb29998a6779f93c809212e4e9c32efd244d4" +dependencies = [ + "log", + "mac", + "markup5ever 0.12.0", + "proc-macro2", + "quote", + "syn 2.0.55", +] + [[package]] name = "http-auth" version = "0.1.9" @@ -2260,9 +2286,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jni" @@ -2540,16 +2566,42 @@ dependencies = [ "tendril", ] +[[package]] +name = "markup5ever" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7940b09815a02810a42b9e1bc41c069880a87de68e9b1dcbe754a3ba3b47c20" +dependencies = [ + "log", + "phf 0.11.2", + "phf_codegen 0.11.2", + "string_cache", + "string_cache_codegen", + "tendril", +] + [[package]] name = "markup5ever_rcdom" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9521dd6750f8e80ee6c53d65e2e4656d7de37064f3a7a5d2d11d05df93839c2" dependencies = [ - "html5ever", - "markup5ever", + "html5ever 0.26.0", + "markup5ever 0.11.0", "tendril", - "xml5ever", + "xml5ever 0.17.0", +] + +[[package]] +name = "markup5ever_rcdom" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edaa21ab3701bfee5099ade5f7e1f84553fd19228cf332f13cd6e964bf59be18" +dependencies = [ + "html5ever 0.27.0", + "markup5ever 0.12.0", + "tendril", + "xml5ever 0.18.0", ] [[package]] @@ -3148,9 +3200,9 @@ dependencies = [ "bindgen", "clap", "html2md", - "html5ever", + "html5ever 0.27.0", "log", - "markup5ever_rcdom", + "markup5ever_rcdom 0.3.0", "playdate-bindgen-cfg", "playdate-build-utils", "prettyplease", @@ -3436,9 +3488,9 @@ dependencies = [ [[package]] name = "prodash" -version = "26.2.2" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf" +checksum = "744a264d26b88a6a7e37cbad97953fa233b94d585236310bcbc88474b4092d79" dependencies = [ "parking_lot 0.12.1", ] @@ -3459,17 +3511,6 @@ dependencies = [ "unarray", ] -[[package]] -name = "pulldown-cmark" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b" -dependencies = [ - "bitflags 2.5.0", - "memchr", - "unicase", -] - [[package]] name = "quick-xml" version = "0.31.0" @@ -3657,9 +3698,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustfix" -version = "0.7.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ec10cbeb92a2e494ef354d66126882da8c0a244ad769e2a7193efc5de625175" +checksum = "81864b097046da5df3758fdc6e4822bbb70afa06317e8ca45ea1b51cb8c5e5a4" dependencies = [ "serde", "serde_json", @@ -3807,9 +3848,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", @@ -4868,7 +4909,18 @@ checksum = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650" dependencies = [ "log", "mac", - "markup5ever", + "markup5ever 0.11.0", +] + +[[package]] +name = "xml5ever" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c376f76ed09df711203e20c3ef5ce556f0166fa03d39590016c0fd625437fad" +dependencies = [ + "log", + "mac", + "markup5ever 0.12.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 6a34847d..502684e1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -45,3 +45,4 @@ clap = "4.5" serde = "1.0" serde_json = "1.0" toml = "0.8" +futures-lite = "2.3" diff --git a/cargo/Cargo.toml b/cargo/Cargo.toml index 402930f4..311f7b66 100644 --- a/cargo/Cargo.toml +++ b/cargo/Cargo.toml @@ -31,9 +31,10 @@ clap_lex = "0.7" dirs.workspace = true fs_extra.workspace = true -cargo = "=0.77.0" -cargo-util = "=0.2.9" -cargo-platform = "0.1.7" +cargo = "=0.78.0" +cargo-util = "=0.2.10" +cargo-platform = "0.1.8" +cargo-util-schemas = "0.2.0" semver.workspace = true serde = { workspace = true, features = ["derive"] } @@ -51,14 +52,14 @@ anstyle = "1" env_logger.workspace = true log.workspace = true +futures-lite.workspace = true + + [dependencies.build] workspace = true default-features = false features = ["assets-report", "toml"] -# [dependencies.tool] -# workspace = true -# features = ["clap", "cli"] [dependencies.device] workspace = true features = ["clap", "async", "tokio-serial", "tokio"] @@ -92,4 +93,3 @@ nix = { version = "0.28", features = ["signal"] } [features] default = [] -# usb = ["tool/usb"] diff --git a/cargo/src/build/plan/format.rs b/cargo/src/build/plan/format.rs index 1832555c..579e161d 100644 --- a/cargo/src/build/plan/format.rs +++ b/cargo/src/build/plan/format.rs @@ -73,7 +73,7 @@ pub enum CompileModeProxy { Bench, /// A target that will be documented with `rustdoc`. /// If `deps` is true, then it will also document all dependencies. - Doc { deps: bool }, + Doc { deps: bool, json: bool }, /// A target that will be tested with `rustdoc`. Doctest, /// An example or library that will be scraped for function calls by `rustdoc`. diff --git a/cargo/src/cli/mod.rs b/cargo/src/cli/mod.rs index d39c9572..13ee4924 100644 --- a/cargo/src/cli/mod.rs +++ b/cargo/src/cli/mod.rs @@ -20,7 +20,6 @@ use cargo::util::command_prelude::{ArgMatchesExt, CompileMode, ProfileChecking}; use cargo::util::Config as CargoConfig; use cargo::util::CargoResult; use clap_lex::SeekFrom; -use tool::cli::mount::Mount; use crate::config::Config; use crate::logger::LogErr; @@ -220,7 +219,7 @@ pub fn initialize_from(args: impl IntoIterator + AsRe log::debug!("extra args: {extra:?}"); } - let no_wait = matches.flag("no-wait"); + let no_read = matches.flag("no-read"); let mounting = matches!(cmd, Cmd::Run).then(|| Mount::from_arg_matches(&matches).ok()) .flatten(); @@ -289,7 +288,7 @@ pub fn initialize_from(args: impl IntoIterator + AsRe sdk_path, gcc_path, mounting, - no_wait, + no_read, zip, no_info_meta, prevent_unwinding, diff --git a/cargo/src/cli/opts.rs b/cargo/src/cli/opts.rs index afeae114..df9cfcd2 100644 --- a/cargo/src/cli/opts.rs +++ b/cargo/src/cli/opts.rs @@ -8,8 +8,7 @@ use clap::{Arg, ArgAction, value_parser, Args}; use clap::Command; use playdate::consts::{SDK_ENV_VAR, DEVICE_TARGET}; use playdate::toolchain::gcc::ARM_GCC_PATH_ENV_VAR; -use tool::cli::run::DeviceDestination; -use tool::cli::mount::Mount; +// use tool::cli::mount::Mount; use super::{Cmd, CMD_NAME, BIN_NAME}; @@ -48,7 +47,7 @@ pub fn special_args_for(cmd: &Cmd) -> Vec { Cmd::Run => { let mut args = mount(); args.append(&mut shorthands_for(cmd)); - args.push(flag_no_wait()); + args.push(flag_no_read()); args.push(flag_no_info_file()); args.push(flag_pdc_skip_unknown()); args.push(flag_pdc_skip_prebuild()); @@ -231,6 +230,12 @@ fn init_crate() -> Command { } +#[derive(clap::Parser, Debug, Clone, Default)] +pub struct Mount { + #[command(flatten)] + pub device: device::device::query::DeviceQuery, +} + fn mount() -> Vec { let mount: Command = Mount::augment_args(Command::new("mount")).mut_arg("device", |arg| arg.long("device").num_args(0..=1)); @@ -240,11 +245,11 @@ fn mount() -> Vec { .collect() } -fn flag_no_wait() -> Arg { - DeviceDestination::augment_args(Command::new("dest")).get_arguments() - .find(|arg| arg.get_id().as_str() == "no-wait") - .expect("Arg no-wait") - .to_owned() +fn flag_no_read() -> Arg { + flag( + "no-read", + "Do not wait & read the device's output after execution.", + ) } diff --git a/cargo/src/config.rs b/cargo/src/config.rs index 303e5fdd..2c8ed199 100644 --- a/cargo/src/config.rs +++ b/cargo/src/config.rs @@ -7,7 +7,6 @@ use cargo::core::compiler::{CompileTarget, CompileKind, TargetInfo}; use cargo::ops::CompileOptions; use playdate::toolchain::gcc::{ArmToolchain, Gcc}; use playdate::toolchain::sdk::Sdk; -use tool::cli::mount::Mount; use try_lazy_init::Lazy; use cargo::util::{CargoResult, Rustc}; @@ -16,6 +15,7 @@ use crate::build::rustflags::Rustflags; use crate::cli::cmd::Cmd; use crate::cli::deps::Dependency; use crate::cli::ide::Ide; +use crate::cli::opts::Mount; use crate::utils::LazyBuildContext; @@ -39,7 +39,7 @@ pub struct Config<'cfg> { pub gcc_path: Option, pub mounting: Option, - pub no_wait: bool, + pub no_read: bool, pub zip: bool, pub no_info_meta: bool, @@ -83,7 +83,7 @@ impl<'cfg> Config<'cfg> { sdk_path: Option, gcc_path: Option, mounting: Option, - no_wait: bool, + no_read: bool, zip: bool, no_info_meta: bool, prevent_unwinding: bool, @@ -111,7 +111,7 @@ impl<'cfg> Config<'cfg> { sdk_path, gcc_path, mounting, - no_wait, + no_read, zip, no_info_meta, prevent_unwinding, diff --git a/cargo/src/main.rs b/cargo/src/main.rs index 304257b6..dd02d05b 100644 --- a/cargo/src/main.rs +++ b/cargo/src/main.rs @@ -203,22 +203,21 @@ fn execute(config: &Config) -> CargoResult<()> { // run: { - use tool::cli::run::run; - use tool::cli::run::{Run, Destination, SimDestination, DeviceDestination}; - use tool::cli::install::Install; - - let destination = if ck.is_playdate() { - Destination::Device(DeviceDestination { install: Install { pdx: package.path.to_owned(), - mount: config.mounting - .clone() - .unwrap_or_default() }, - no_install: false, - no_wait: config.no_wait }) + use device::run::{run_on_device, run_with_sim}; + use futures_lite::future::block_on; + + if ck.is_playdate() { + let query = config.mounting.clone().unwrap_or_default().device; + let pdx = package.path.to_owned(); + let no_install = false; + let no_read = config.no_read; + let force = false; + let fut = run_on_device(query, pdx, no_install, no_read, force); + block_on(fut)?; } else { - Destination::Simulator(SimDestination { pdx: package.path.to_owned() }) + let fut = run_with_sim(package.path.to_owned(), config.sdk_path.clone()); + block_on(fut)?; }; - - run(Run { destination })?; } std::process::exit(0) diff --git a/cargo/src/package/mod.rs b/cargo/src/package/mod.rs index 80332017..57de0f10 100644 --- a/cargo/src/package/mod.rs +++ b/cargo/src/package/mod.rs @@ -6,13 +6,13 @@ use std::process::Command; use anyhow::anyhow; use anyhow::bail; -use cargo::util_schemas::manifest::TomlDebugInfo; use cargo::CargoResult; use cargo::core::Package; use cargo::core::compiler::CompileKind; use cargo::core::compiler::CrateType; use cargo::core::profiles::DebugInfo; use cargo::core::profiles::Profiles; +use cargo_util_schemas::manifest::TomlDebugInfo; use clap_lex::OsStrExt; use playdate::io::soft_link_checked; use playdate::layout::Layout; diff --git a/support/tool/src/cli/commands/mount.rs b/support/tool/src/cli/commands/mount.rs index 373ed236..13c5cbcd 100644 --- a/support/tool/src/cli/commands/mount.rs +++ b/support/tool/src/cli/commands/mount.rs @@ -13,7 +13,7 @@ use crate::mount::mount_without_sdk; /// Mount the device. #[derive(Clone, Debug, clap::Parser)] -#[command(author, version, about, long_about = None, name = "install")] +#[command(author, version, about, long_about = None, name = "mount")] pub struct Mount { #[cfg_attr(feature = "cli", command(flatten))] pub device: DeviceQuery, diff --git a/support/tool2/Cargo.toml b/support/tool2/Cargo.toml index 35bf2452..cd338f28 100644 --- a/support/tool2/Cargo.toml +++ b/support/tool2/Cargo.toml @@ -20,8 +20,8 @@ name = "pdtool" [dependencies] # RT, async: tokio = { version = "1.36", features = ["full"] } -futures-lite = { version = "2.3" } futures = { version = "0.3" } +futures-lite.workspace = true serde = { workspace = true, features = ["derive"] } serde_json.workspace = true