diff --git a/.github/workflows/actionlint.yml b/.github/workflows/actionlint.yml index b6bfb30..36c0174 100644 --- a/.github/workflows/actionlint.yml +++ b/.github/workflows/actionlint.yml @@ -5,9 +5,9 @@ on: jobs: actionlint: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Update ShellCheck run: | diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0132dab..8d93cb4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -11,14 +11,16 @@ jobs: include: - { target: x86_64-pc-windows-msvc, os: windows-2019 } - { target: x86_64-pc-windows-msvc, os: windows-2022 } - - { target: x86_64-apple-darwin, os: macos-11 } - - { target: x86_64-apple-darwin, os: macos-12 } - - { target: x86_64-unknown-linux-gnu, os: ubuntu-20.04 } + - { target: x86_64-pc-windows-msvc, os: windows-2025 } + - { target: x86_64-apple-darwin, os: macos-13 } + - { target: aarch64-apple-darwin, os: macos-14 } + - { target: aarch64-apple-darwin, os: macos-15 } - { target: x86_64-unknown-linux-gnu, os: ubuntu-22.04 } + - { target: x86_64-unknown-linux-gnu, os: ubuntu-24.04 } name: test (${{ matrix.target }}) runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Read ./rust-toolchain id: read-rust-toolchain @@ -35,9 +37,9 @@ jobs: run: cargo test --target ${{ matrix.target }} docker-build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Update ShellCheck run: | @@ -58,5 +60,38 @@ jobs: - name: Generate install-command.bash run: cargo xtask gen-command > ./install-command.bash + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: install-command + path: install-command.bash + - name: docker-build run: docker build . + + gen-toml: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + + - name: Read ./rust-toolchain + id: read-rust-toolchain + run: echo "toolchain=$(cat ./rust-toolchain)" >> "$GITHUB_OUTPUT" + shell: bash + + - name: Set up Rust + uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ steps.read-rust-toolchain.outputs.toolchain }} + + - name: clone SPDX License List Data + run: git clone https://github.com/spdx/license-list-data.git /tmp/license-list-data --depth 1 + + - name: Generate install-script.toml + run: cargo xtask gen-toml /tmp/license-list-data/json/details/ | tee ./install-script.toml + + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: install-script + path: install-script.toml diff --git a/.github/workflows/licenses.yml b/.github/workflows/licenses.yml index fd7761b..0576754 100644 --- a/.github/workflows/licenses.yml +++ b/.github/workflows/licenses.yml @@ -5,9 +5,9 @@ on: jobs: cargo-deny: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Read ./rust-toolchain id: read-rust-toolchain @@ -23,15 +23,17 @@ jobs: uses: taiki-e/install-action@cargo-binstall - name: Install cargo-deny - run: cargo binstall cargo-deny@^0.13 --no-confirm --log-level debug + run: cargo binstall cargo-deny@^0.16 --no-confirm --log-level debug - name: cargo-deny (main) run: cargo deny check + # https://github.com/EmbarkStudios/cargo-deny/pull/626 # Pixar ライセンスを無視するworkaround + # https://github.com/jpeddicord/askalono/issues/94 bottlerocket-license-scan: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Read ./rust-toolchain id: read-rust-toolchain diff --git a/.github/workflows/rust-lint.yml b/.github/workflows/rust-lint.yml index 0fada7d..716070e 100644 --- a/.github/workflows/rust-lint.yml +++ b/.github/workflows/rust-lint.yml @@ -5,9 +5,9 @@ on: jobs: rustfmt: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Read ./rust-toolchain id: read-rust-toolchain @@ -27,9 +27,9 @@ jobs: run: cargo fmt --all --manifest-path ./xtask/Cargo.toml -- --check clippy: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Read ./rust-toolchain id: read-rust-toolchain diff --git a/.github/workflows/typos.yml b/.github/workflows/typos.yml index 1b43eaf..25839e1 100644 --- a/.github/workflows/typos.yml +++ b/.github/workflows/typos.yml @@ -5,8 +5,8 @@ on: jobs: typos: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: crate-ci/typos@master diff --git a/Cargo.lock b/Cargo.lock index 7ac4678..93b5c90 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,18 +1,17 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "ac-library-rs" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09e1ead7b72f44698f97266946c0576d00c9e2010858f5aba47aa4660177ef73" +version = "0.2.0-alpha.1" +source = "git+https://github.com/rust-lang-ja/ac-library-rs?rev=3085eda4776093268c3aedc67a395e97484cc463#3085eda4776093268c3aedc67a395e97484cc463" [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -28,25 +27,32 @@ dependencies = [ "num-traits", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + [[package]] name = "amplify" -version = "3.14.2" +version = "4.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba2ec14f4fb838e9ddace42fa5944bb1ee4dff8477494ba48c5f874e16caf27a" +checksum = "448cf0c3afc71439b5f837aac5399a1ef2b223f5f38324dbfb4343deec3b80cc" dependencies = [ "amplify_derive", "amplify_num", + "ascii", "libc", - "rand", + "rand 0.8.5", "stringly_conversions", "wasm-bindgen", ] [[package]] name = "amplify_derive" -version = "2.11.3" +version = "4.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c3de270e75f27a4468a7c344070109046656e85cb522141f7d40ab4b83803ac" +checksum = "2a6309e6b8d89b36b9f959b7a8fa093583b94922a0f6438a24fb08936de4d428" dependencies = [ "amplify_syn", "proc-macro2", @@ -56,15 +62,18 @@ dependencies = [ [[package]] name = "amplify_num" -version = "0.4.1" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27d3d00d3d115395a7a8a4dc045feb7aa82b641e485f7e15f4e67ac16f4f56d" +checksum = "99bcb75a2982047f733547042fc3968c0f460dfcf7d90b90dea3b2744580e9ad" +dependencies = [ + "wasm-bindgen", +] [[package]] name = "amplify_syn" -version = "1.1.6" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da24db1445cc7bc3842fa072c2d51fe5b25b812b6a572d65842a4c72e87221ac" +checksum = "7736fb8d473c0d83098b5bac44df6a561e20470375cd8bcae30516dc889fd62a" dependencies = [ "proc-macro2", "quote", @@ -73,9 +82,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.72" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "approx" @@ -97,9 +106,18 @@ dependencies = [ [[package]] name = "arbitrary" -version = "1.3.0" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" + +[[package]] +name = "archery" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" +checksum = "eae2ed21cd55021f05707a807a5fc85695dafb98832921f6cfa06db67ca5b869" +dependencies = [ + "triomphe", +] [[package]] name = "argio" @@ -108,7 +126,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edcfc5018bf09b4bba1fd737598ba0ed9671da849a510611716804e616816393" dependencies = [ "argio-macro", - "proconio", + "proconio 0.4.5", ] [[package]] @@ -131,9 +149,9 @@ checksum = "d92bec98840b8f03a5ff5413de5293bfcd8bf96467cf5452609f939ec6f5de16" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "az" @@ -141,6 +159,12 @@ version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + [[package]] name = "bitmaps" version = "2.1.0" @@ -170,9 +194,9 @@ dependencies = [ [[package]] name = "bstr" -version = "1.6.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" dependencies = [ "memchr", "regex-automata", @@ -190,15 +214,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "bytemuck" -version = "1.13.1" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" +checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" [[package]] name = "cfg-if" @@ -208,36 +232,54 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "counter" -version = "0.5.7" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d458e66999348f56fd3ffcfbb7f7951542075ca8359687c703de6500c1ddccd" +checksum = "f009fcafa949dc1fc46a762dae84d0c2687d3b550906b633c4979d58d2c6ae52" dependencies = [ "num-traits", ] +[[package]] +name = "deprecate-until" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a3767f826efbbe5a5ae093920b58b43b01734202be697e1354914e862e8e704" +dependencies = [ + "proc-macro2", + "quote", + "semver", + "syn 2.0.100", +] + [[package]] name = "easy-ext" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49457524c7e65648794c98283282a0b7c73b10018e7091f1cdcfff314fd7ae59" +checksum = "cc5d6d6a8504f8caedd7de14576464383900cd3840b7033a7a3dce5ac00121ca" [[package]] name = "either" -version = "1.8.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[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 = "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 = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "funty" @@ -247,13 +289,25 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", - "wasi", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", ] [[package]] @@ -263,22 +317,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2e102e6eb644d3e0b186fc161e4460417880a0a0b87d235f2e5b8fb30f2e9e0" [[package]] -name = "hashbag" -version = "0.1.11" +name = "hamming" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d44c238cb72d3e8993a30c32e97b2b2c2c1a12388603f28c4f19a44c4396bc" +checksum = "65043da274378d68241eb9a8f8f8aa54e349136f7b8e12f63e3ef44043cc30e1" [[package]] -name = "hashbrown" -version = "0.12.3" +name = "hashbag" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "98f494b2060b2a8f5e63379e1e487258e014cee1b1725a735816c0107a2e9d93" [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] [[package]] name = "im-rc" @@ -287,8 +346,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe" dependencies = [ "bitmaps", - "rand_core", - "rand_xoshiro", + "rand_core 0.6.4", + "rand_xoshiro 0.6.0", "sized-chunks", "typenum", "version_check", @@ -302,22 +361,12 @@ checksum = "d3c4d532eb2a0194b8cfa6ca3745f817e58e6844bb86a0cbba5ada68de5fce10" [[package]] name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", -] - -[[package]] -name = "indexmap" -version = "2.0.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.14.0", + "hashbrown", ] [[package]] @@ -331,9 +380,9 @@ dependencies = [ [[package]] name = "itertools" -version = "0.11.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ "either", ] @@ -355,9 +404,9 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "leb128" @@ -367,21 +416,21 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libm" -version = "0.2.7" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "log" -version = "0.4.19" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "main" @@ -403,12 +452,12 @@ dependencies = [ "easy-ext", "either", "fixedbitset", - "getrandom", + "getrandom 0.3.2", "glidesort", "hashbag", "im-rc", "indexing", - "indexmap 2.0.0", + "indexmap", "itertools", "itertools-num", "lazy_static", @@ -421,7 +470,7 @@ dependencies = [ "ndarray", "num", "num-bigint", - "num-complex 0.4.3", + "num-complex 0.4.6", "num-derive", "num-integer", "num-iter", @@ -429,25 +478,31 @@ dependencies = [ "num-traits", "omniswap", "once_cell", - "ordered-float 3.7.0", + "ordered-float 5.0.0", "pathfinding", "permutohedron", "petgraph", - "proconio", - "rand", - "rand_chacha", - "rand_core", - "rand_distr", + "primal", + "proconio 0.5.0", + "rand 0.9.1", + "rand_chacha 0.9.0", + "rand_core 0.9.3", + "rand_distr 0.5.1", "rand_hc", "rand_pcg", + "rand_xorshift", + "rand_xoshiro 0.7.0", "recur-fn", "regex", - "rustc-hash", + "rpds", + "rustc-hash 2.1.1", "smallvec", "static_assertions", + "statrs", "superslice", "tap", "text_io", + "thiserror 2.0.12", "varisat", ] @@ -459,9 +514,9 @@ checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" [[package]] name = "matrixmultiply" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" +checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" dependencies = [ "autocfg", "rawpointer", @@ -469,9 +524,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.5.0" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memoise" @@ -486,18 +541,18 @@ dependencies = [ [[package]] name = "multimap" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70db9248a93dc36a36d9a47898caa007a32755c7ad140ec64eeeb50d5a730631" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" dependencies = [ "serde", ] [[package]] name = "multiversion" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cda45dade5144c2c929bf2ed6c24bebbba784e9198df049ec87d722b9462bd1" +checksum = "7edb7f0ff51249dfda9ab96b5823695e15a052dc15074c9dbf3d118afaf2c201" dependencies = [ "multiversion-macros", "target-features", @@ -505,64 +560,68 @@ dependencies = [ [[package]] name = "multiversion-macros" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04bffdccbd4798b61dce08c97ce8c66a68976f95541aaf284a6e90c1d1c306e1" +checksum = "b093064383341eb3271f42e381cb8f10a01459478446953953c75d24bd339fc0" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", "target-features", ] [[package]] name = "nalgebra" -version = "0.32.3" +version = "0.33.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" +checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" dependencies = [ "approx 0.5.1", "matrixmultiply", "nalgebra-macros", - "num-complex 0.4.3", + "num-complex 0.4.6", "num-rational", "num-traits", + "rand 0.8.5", + "rand_distr 0.4.3", "simba", "typenum", ] [[package]] name = "nalgebra-macros" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" +checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "ndarray" -version = "0.15.6" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32" +checksum = "882ed72dce9365842bf196bdeedf5055305f11fc8c03dee7bb0194a6cad34841" dependencies = [ "matrixmultiply", - "num-complex 0.4.3", + "num-complex 0.4.6", "num-integer", "num-traits", + "portable-atomic", + "portable-atomic-util", "rawpointer", ] [[package]] name = "num" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" dependencies = [ "num-bigint", - "num-complex 0.4.3", + "num-complex 0.4.6", "num-integer", "num-iter", "num-rational", @@ -571,11 +630,10 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "autocfg", "num-integer", "num-traits", ] @@ -592,39 +650,38 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", ] [[package]] name = "num-derive" -version = "0.4.0" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e6a0fd4f737c707bd9086cc16c925f294943eb62eb71499e9fd4cf71f8b9f4e" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.100", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ "autocfg", "num-integer", @@ -633,11 +690,10 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", "num-bigint", "num-integer", "num-traits", @@ -645,9 +701,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", "libm", @@ -661,24 +717,24 @@ checksum = "8b73dba5f4428a4b36f77fb700ebba05e7f3c8bdbea4530f94427eb2009196f8" [[package]] name = "once_cell" -version = "1.18.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "ordered-float" -version = "2.10.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" dependencies = [ "num-traits", ] [[package]] name = "ordered-float" -version = "3.7.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fc2dbde8f8a79f2102cc474ceb0ad68e3b80b85289ea62389b60e66777e4213" +checksum = "e2c1f9f56e534ac6a9b8a4600bdf0f530fb393b5f393e7b4d03489c3cf0c3f01" dependencies = [ "num-traits", ] @@ -705,22 +761,22 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pathfinding" -version = "4.3.0" +version = "4.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc597cf0c06c15bcca90fba95ee81b3a80a934403562001d0ed7d8626f7c6ae" +checksum = "59ac35caa284c08f3721fb33c2741b5f763decaf42d080c8a6a722154347017e" dependencies = [ - "fixedbitset", - "indexmap 1.9.3", + "deprecate-until", + "indexmap", "integer-sqrt", "num-traits", - "rustc-hash", - "thiserror", + "rustc-hash 2.1.1", + "thiserror 2.0.12", ] [[package]] @@ -731,25 +787,91 @@ checksum = "b687ff7b5da449d39e418ad391e5e08da53ec334903ddbb921db208908fc372c" [[package]] name = "petgraph" -version = "0.6.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" +checksum = "7a98c6720655620a521dcc722d0ad66cd8afd5d86e34a89ef691c50b7b24de06" dependencies = [ "fixedbitset", - "indexmap 1.9.3", + "hashbrown", + "indexmap", + "serde", +] + +[[package]] +name = "portable-atomic" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" + +[[package]] +name = "portable-atomic-util" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +dependencies = [ + "portable-atomic", ] [[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", +] + +[[package]] +name = "primal" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e5f354948532e6017fc91f9a5ff5ba1be0dabd3a0c9e9c417969cd4c1ad6e8" +dependencies = [ + "primal-check", + "primal-estimate", + "primal-sieve", +] + +[[package]] +name = "primal-bit" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "252429dbb8aeacc3233df500dc3a6a367bf28eb3a711272884d7540a7b636055" +dependencies = [ + "hamming", +] + +[[package]] +name = "primal-check" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc0d895b311e3af9902528fbb8f928688abbd95872819320517cc24ca6b2bd08" +dependencies = [ + "num-integer", +] + +[[package]] +name = "primal-estimate" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a432100a0b3a61085e75b5f89e9f42de73c0acb7dea5038b893697918105d822" + +[[package]] +name = "primal-sieve" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e982796d82203351983d3602a8d6372d1d7894e86960047ba0d4b7426a5edd3" +dependencies = [ + "primal-bit", + "primal-estimate", + "smallvec", +] [[package]] name = "proc-macro2" -version = "1.0.65" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92de25114670a878b1261c79c9f8f729fb97e95bac93f6312f583c60dd6a1dfe" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -759,6 +881,12 @@ name = "proconio" version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eb404616795079e2390e7115acf0ada24e9332e8476de2aada7bacb9992dc9e" + +[[package]] +name = "proconio" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c10091de86d0dc939b37a115d74597cbe83af470032a1729d50c98ccee043cb0" dependencies = [ "proconio-derive", ] @@ -776,13 +904,19 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.30" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5907a1b7c277254a8b15170f6e7c97cfa60ee7872a3217663bb81151e48184bb" +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 = "radium" version = "0.7.0" @@ -796,8 +930,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", ] [[package]] @@ -807,7 +951,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] @@ -816,7 +970,16 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom", + "getrandom 0.2.15", +] + +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.2", ] [[package]] @@ -826,25 +989,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", +] + +[[package]] +name = "rand_distr" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8615d50dcf34fa31f7ab52692afec947c4dd0ab803cc87cb3b0b4570ff7463" +dependencies = [ + "num-traits", + "rand 0.9.1", ] [[package]] name = "rand_hc" -version = "0.3.2" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b363d4f6370f88d62bf586c80405657bde0f0e1b8945d47d2ad59b906cb4f54" +checksum = "54fc7b35e3026136eaf1decdc66ecde3efadfd663cc0d71115ad40da7ebcff63" dependencies = [ - "rand_core", + "rand_core 0.9.3", ] [[package]] name = "rand_pcg" -version = "0.3.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +checksum = "b48ac3f7ffaab7fac4d2376632268aa5f89abdb55f7ebf8f4d11fffccb2320f7" dependencies = [ - "rand_core", + "rand_core 0.9.3", +] + +[[package]] +name = "rand_xorshift" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +dependencies = [ + "rand_core 0.9.3", ] [[package]] @@ -853,7 +1035,16 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" dependencies = [ - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_xoshiro" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f703f4665700daf5512dcca5f43afa6af89f09db47fb56be587f80636bda2d41" +dependencies = [ + "rand_core 0.9.3", ] [[package]] @@ -870,9 +1061,9 @@ checksum = "ddb239d0574f3f7a7f44da906a0484f1fc284f89cfbc4eca1895420dbf948201" [[package]] name = "regex" -version = "1.9.1" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -882,9 +1073,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.3" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39354c10dd07468c2e73926b23bb9c2caca74c5501e38a35da70406f1d923310" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", @@ -893,9 +1084,18 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "rpds" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "a7f89f654d51fffdd6026289d07d1fd523244d46ae0a8bc22caa6dd7f9e8cb0b" +dependencies = [ + "archery", +] [[package]] name = "rustc-hash" @@ -903,43 +1103,61 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" + +[[package]] +name = "rustversion" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" + [[package]] name = "safe_arch" -version = "0.7.0" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62a7484307bd40f8f7ccbacccac730108f2cae119a3b11c74485b48aa9ea650f" +checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" dependencies = [ "bytemuck", ] +[[package]] +name = "semver" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" + [[package]] name = "serde" -version = "1.0.171" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.171" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.100", ] [[package]] name = "simba" -version = "0.8.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +checksum = "b3a386a501cd104797982c15ae17aafe8b9261315b5d07e3ec803f2ea26be0fa" dependencies = [ "approx 0.5.1", - "num-complex 0.4.3", + "num-complex 0.4.6", "num-traits", "paste", "wide", @@ -957,9 +1175,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" dependencies = [ "arbitrary", "serde", @@ -971,6 +1189,18 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "statrs" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3fe7c28c6512e766b0874335db33c94ad7b8f9054228ae1c2abd47ce7d335e" +dependencies = [ + "approx 0.5.1", + "nalgebra", + "num-traits", + "rand 0.8.5", +] + [[package]] name = "stringly_conversions" version = "0.1.1" @@ -999,9 +1229,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.26" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -1028,53 +1258,79 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-features" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06f6b473c37f9add4cf1df5b4d66a8ef58ab6c895f1a3b3f949cf3e21230140e" +checksum = "c1bbb9f3c5c463a01705937a24fdabc5047929ac764b2d5b9cf681c1f5041ed5" [[package]] name = "text_io" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f0c8eb2ad70c12a6a69508f499b3051c924f4b1cfeae85bfad96e6bc5bba46" +checksum = "4d8d3ca3b06292094e03841d8995e910712d2a10b5869c8f9725385b29761115" + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] [[package]] name = "thiserror" -version = "1.0.43" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] name = "thiserror-impl" -version = "1.0.43" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.100", ] +[[package]] +name = "triomphe" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef8f7726da4807b58ea5c96fdc122f80702030edc33b35aff9190a51148ccc85" + [[package]] name = "typenum" -version = "1.16.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "unicode-ident" -version = "1.0.11" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-xid" -version = "0.2.4" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "varisat" @@ -1086,11 +1342,11 @@ dependencies = [ "itoa", "leb128", "log", - "ordered-float 2.10.0", + "ordered-float 2.10.1", "partial_ref", - "rustc-hash", + "rustc-hash 1.1.0", "serde", - "thiserror", + "thiserror 1.0.69", "varisat-checker", "varisat-dimacs", "varisat-formula", @@ -1108,9 +1364,9 @@ dependencies = [ "anyhow", "log", "partial_ref", - "rustc-hash", + "rustc-hash 1.1.0", "smallvec", - "thiserror", + "thiserror 1.0.69", "varisat-dimacs", "varisat-formula", "varisat-internal-proof", @@ -1124,7 +1380,7 @@ checksum = "3d1dee4e21be1f04c0a939f7ae710cced47233a578de08a1b3c7d50848402636" dependencies = [ "anyhow", "itoa", - "thiserror", + "thiserror 1.0.69", "varisat-formula", ] @@ -1165,9 +1421,9 @@ checksum = "68ed610a8d5e63d9c0e31300e8fdb55104c5f21e422743a9dc74848fa8317fd2" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "wasi" @@ -1175,36 +1431,46 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] + [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", + "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.100", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1212,33 +1478,45 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.26", + "syn 2.0.100", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wide" -version = "0.7.11" +version = "0.7.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa469ffa65ef7e0ba0f164183697b89b854253fd31aeb92358b7b6155177d62f" +checksum = "41b5576b9a81633f3e8df296ce0063042a73507636cbe956c61133dd7034ab22" dependencies = [ "bytemuck", "safe_arch", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags", +] + [[package]] name = "wyz" version = "0.5.1" @@ -1247,3 +1525,23 @@ checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" dependencies = [ "tap", ] + +[[package]] +name = "zerocopy" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", +] diff --git a/Cargo.toml b/Cargo.toml index f2f819c..53587b3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,71 +7,79 @@ lto = true # コンパイル時間が著しく長くなってしまう場合は [package] name = "main" version = "0.0.0" -edition = "2021" +edition = "2024" publish = false [dependencies] +# 202411から: +rpds = "=1.1.1" +rand_xorshift = "=0.4.0" +rand_xoshiro = "=0.7.0" +statrs = "=0.18.0" +primal = "=0.3.3" +thiserror = "=2.0.12" # 202301から: -ac-library-rs = "=0.1.1" -once_cell = "=1.18.0" +ac-library-rs = { git = "https://github.com/rust-lang-ja/ac-library-rs", rev = "3085eda4776093268c3aedc67a395e97484cc463" } +#ac-library-rs = "=0.1.1" +once_cell = "=1.21.3" static_assertions = "=1.1.0" varisat = "=0.2.2" memoise = "=0.3.2" argio = "=0.2.0" bitvec = "=1.0.1" -counter = "=0.5.7" -hashbag = "=0.1.11" -pathfinding = "=4.3.0" +counter = "=0.6.0" +hashbag = "=0.1.12" +pathfinding = "=4.14.0" recur-fn = "=2.2.0" indexing = { version = "=0.4.1", features = ["experimental_pointer_ranges"] } -amplify = { version = "=3.14.2", features = ["c_raw", "rand", "stringly_conversions"] } -amplify_derive = "=2.11.3" -amplify_num = { version = "=0.4.1", features = ["std"] } -easy-ext = "=1.0.1" -multimap = "=0.9.0" +amplify = { version = "=4.8.0", features = ["c_raw", "rand", "stringly_conversions"] } +amplify_derive = "=4.0.1" +amplify_num = { version = "=0.5.3", features = ["std"] } +easy-ext = "=1.0.2" +multimap = "=0.10.0" btreemultimap = "=0.1.1" -bstr = "=1.6.0" +bstr = "=1.12.0" az = "=1.2.1" glidesort = "=0.1.2" tap = "=1.0.1" omniswap = "=0.1.0" -multiversion = "=0.7.2" +multiversion = "=0.8.0" # 202004から続投: -num = "=0.4.1" -num-bigint = "=0.4.3" -num-complex = "=0.4.3" -num-integer = "=0.1.45" -num-iter = "=0.1.43" -num-rational = "=0.4.1" -num-traits = "=0.2.15" -num-derive = "=0.4.0" -ndarray = "=0.15.6" -nalgebra = "=0.32.3" +num = "=0.4.3" +num-bigint = "=0.4.6" +num-complex = "=0.4.6" +num-integer = "=0.1.46" +num-iter = "=0.1.45" +num-rational = "=0.4.2" +num-traits = "=0.2.19" +num-derive = "=0.4.2" +ndarray = "=0.16.1" +nalgebra = "=0.33.2" alga = "=0.9.3" -libm = "=0.2.7" -rand = { version = "=0.8.5", features = ["small_rng", "min_const_gen"] } -getrandom = "=0.2.10" -rand_chacha = "=0.3.1" -rand_core = "=0.6.4" -rand_hc = "=0.3.2" -rand_pcg = "=0.3.1" -rand_distr = "=0.4.3" -petgraph = "=0.6.3" -indexmap = "=2.0.0" -regex = "=1.9.1" -lazy_static = "=1.4.0" -ordered-float = "=3.7.0" +libm = "=0.2.11" +rand = "=0.9.1" +getrandom = "=0.3.2" +rand_chacha = "=0.9.0" +rand_core = "=0.9.3" +rand_hc = "=0.4.0" +rand_pcg = "=0.9.0" +rand_distr = "=0.5.1" +petgraph = "=0.8.1" +indexmap = "=2.9.0" +regex = "=1.11.1" +lazy_static = "=1.5.0" +ordered-float = "=5.0.0" ascii = "=1.1.0" permutohedron = "=0.2.4" superslice = "=1.0.0" -itertools = "=0.11.0" +itertools = "=0.14.0" itertools-num = "=0.1.3" maplit = "=1.0.2" -either = "=1.8.1" +either = "=1.15.0" im-rc = "=15.1.0" -fixedbitset = "=0.4.2" +fixedbitset = "=0.5.7" bitset-fixed = "=0.1.0" -proconio = { version = "=0.4.5", features = ["derive"] } -text_io = "=0.1.12" -rustc-hash = "=1.1.0" -smallvec = { version = "=1.11.0", features = ["const_generics", "const_new", "write", "union", "serde", "arbitrary"] } +proconio = { version = "=0.5.0", features = ["derive"] } +text_io = "=0.1.13" +rustc-hash = "=2.1.1" +smallvec = { version = "=1.15.0", features = ["const_generics", "const_new", "write", "union", "serde", "arbitrary"] } diff --git a/Dockerfile b/Dockerfile index 4649bf0..c80aa35 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ -FROM ubuntu:22.10 +FROM ubuntu:24.04 RUN apt-get update RUN apt-get install -y --no-install-recommends sudo -RUN groupadd -g 1000 runner && \ +RUN groupadd runner && \ useradd -g runner -G sudo -m runner && \ echo 'runner ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers && \ mkdir /judge && \ diff --git a/clarify.toml b/clarify.toml index 24d074f..956aa8a 100644 --- a/clarify.toml +++ b/clarify.toml @@ -1,57 +1,221 @@ -# https://github.com/dimforge/nalgebra/issues/972 -# BSD-3-Clauseで正しく、LICENSEファイルだけアップデートされていない状態らしい +[clarify.aho-corasick] +expression = "Unlicense OR MIT" +license-files = [ + { path = "LICENSE-MIT", hash = 0x616d8a83, license = "MIT" }, + { path = "UNLICENSE", hash = 0x87b84020, license = "Unlicense" }, +# COPYING ファイルが自動分類できないため + { path = "COPYING", hash = 0x969f37d8, license = "Unlicense OR MIT" }, +] + [clarify.bstr] -expression = "(MIT OR Apache-2.0) AND Unicode-DFS-2016" +expression = "MIT OR Apache-2.0" license-files = [ - { path = "COPYING", hash = 0x278afbcf }, - { path = "LICENSE-APACHE", hash = 0x24b54f4b} , - { path = "LICENSE-MIT", hash = 0x462dee44 }, - { path = "src/unicode/data/LICENSE-UNICODE", hash = 0x70f7339 }, + { path = "LICENSE-APACHE", hash = 0x24b54f4b, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x462dee44, license = "MIT" }, +# COPYING ファイルが自動分類できないため + { path = "COPYING", hash = 0x278afbcf, license = "MIT OR Apache-2.0" }, ] -[clarify.nalgebra] -expression = "BSD-3-Clause" -license-files = [] -skip-files = [ - "LICENSE", +[clarify.byteorder] +expression = "Unlicense OR MIT" +license-files = [ + { path = "LICENSE-MIT", hash = 0x616d8a83, license = "MIT" }, + { path = "UNLICENSE", hash = 0x87b84020, license = "Unlicense" }, +# COPYING ファイルが自動分類できないため + { path = "COPYING", hash = 0x969f37d8, license = "Unlicense OR MIT" }, +] + +[clarify.memchr] +expression = "Unlicense OR MIT" +license-files = [ + { path = "LICENSE-MIT", hash = 0x616d8a83, license = "MIT" }, + { path = "UNLICENSE", hash = 0x87b84020, license = "Unlicense" }, +# COPYING ファイルが自動分類できないため + { path = "COPYING", hash = 0x969f37d8, license = "Unlicense OR MIT" }, ] -[clarify.regex] +[clarify.nalgebra-macros] +expression = "Apache-2.0" +license-files = [ +# `LICENSE` ファイルに `../LICENSE` (nalbegaのLICENSEを参照) とだけ書かれているため +# https://github.com/dimforge/nalgebra/blob/main/nalgebra-macros/LICENSE + { path = "LICENSE", hash = 0xe2278313, license = "Apache-2.0" }, +] + +[clarify.petgraph] +# CC-BY-SA-4.0 ライセンスが含まれるため +expression = "(MIT OR Apache-2.0) AND CC-BY-SA-4.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0x24b54f4b, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0xc97e30bd, license = "MIT" }, +# ## Logo +# The mascot is named "Sir Paul Rustory Graphosaurus" (close friends call him Paul). The logo has been created by the talented Aren. +# https://docs.rs/crate/petgraph/latest/source/README.md +# https://docs.rs/crate/petgraph/latest/source/assets/LICENSE.md + { path = "assets/LICENSE.md", hash = 0x7c815b17, license = "CC-BY-SA-4.0" }, +] + +[clarify.rand] expression = "MIT OR Apache-2.0" license-files = [ - { path = "LICENSE-APACHE", hash = 0x24b54f4b }, - { path = "LICENSE-MIT", hash = 0xb755395b }, + { path = "LICENSE-APACHE", hash = 0x9e2a0652, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x082cb909, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0xa8762835, license = "MIT OR Apache-2.0" }, ] -skip-files = [ - "src/testdata/LICENSE", + +[[clarify.rand_chacha]] +expression = "MIT OR Apache-2.0" +version = "<0.9.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0x701e2ab8, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x082cb909, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0xa8762835, license = "MIT OR Apache-2.0" }, +] + +[[clarify.rand_chacha]] +expression = "MIT OR Apache-2.0" +version = ">=0.9.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0x9e2a0652, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x082cb909, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0xa8762835, license = "MIT OR Apache-2.0" }, +] + +[clarify.rand_core] +expression = "MIT OR Apache-2.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0x631d6796, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x082cb909, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0xa8762835, license = "MIT OR Apache-2.0" }, +] + +[clarify.rand_distr] +expression = "MIT OR Apache-2.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0x631d6796, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x2e96c189, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0xa8762835, license = "MIT OR Apache-2.0" }, +] + +[clarify.rand_hc] +expression = "MIT OR Apache-2.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0x9e2a0652, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x2e96c189, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0xa8762835, license = "MIT OR Apache-2.0" }, +] + +[[clarify.rand_pcg]] +expression = "MIT OR Apache-2.0" +version = "<0.9.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0x701e2ab8, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x6a012d70, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0xa8762835, license = "MIT OR Apache-2.0" }, +] + +[[clarify.rand_pcg]] +expression = "MIT OR Apache-2.0" +version = ">=0.9.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0x631d6796, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x6a012d70, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0xa8762835, license = "MIT OR Apache-2.0" }, +] + +[clarify.rand_xorshift] +expression = "MIT OR Apache-2.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0x9e2a0652, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x082cb909, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0xa8762835, license = "MIT OR Apache-2.0" }, +] + +[[clarify.rand_xoshiro]] +expression = "MIT OR Apache-2.0" +version = "<0.7.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0x24b54f4b, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0xb1c84bbf, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0xa8762835, license = "MIT OR Apache-2.0" }, +] + +[[clarify.rand_xoshiro]] +expression = "MIT OR Apache-2.0" +version = ">=0.7.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0xb5518783, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0xb1c84bbf, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0xa8762835, license = "MIT OR Apache-2.0" }, +] + +[clarify.recur-fn] +expression = "MIT OR Apache-2.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0xee2c88bd, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x2af2bb98, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0x991da501, license = "MIT OR Apache-2.0" }, ] [clarify.regex-syntax] +# Unicode-DFS-2016 ライセンスが含まれるため expression = "(MIT OR Apache-2.0) AND Unicode-DFS-2016" license-files = [ - { path = "LICENSE-APACHE", hash = 0x24b54f4b }, - { path = "LICENSE-MIT", hash = 0xb755395b }, - { path = "src/unicode_tables/LICENSE-UNICODE", hash = 0xa7f28b93 }, +# Cargo.toml では "MIT OR Apache-2.0" と記述されているが、 "Unicode-DFS-2016" が含まれているため + { path = "LICENSE-APACHE", hash = 0x24b54f4b, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0xb755395b, license = "MIT" }, + { path = "src/unicode_tables/LICENSE-UNICODE", hash = 0xa7f28b93, license = "Unicode-DFS-2016" }, ] [clarify.typenum] expression = "MIT OR Apache-2.0" license-files = [ - { path = "LICENSE", hash = 0xa4618a29 }, - { path = "LICENSE-APACHE", hash = 0x91d5a0a7 }, - { path = "LICENSE-MIT", hash = 0xb9f15462 }, +# LICENSE ファイルが自動分類できないため + { path = "LICENSE", hash = 0xa4618a29, license = "MIT OR Apache-2.0" }, + { path = "LICENSE-APACHE", hash = 0x91d5a0a7, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0xb9f15462, license = "MIT" }, ] -[clarify.unicode-ident] -expression = "(MIT OR Apache-2.0) AND Unicode-DFS-2016" +[clarify.unicode-xid] +expression = "MIT OR Apache-2.0" +license-files = [ + { path = "LICENSE-APACHE", hash = 0x24b54f4b, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x86e6d3b9, license = "MIT" }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0x860b1718, license = "MIT OR Apache-2.0" }, +] + +[clarify.vec_mut_scan] +expression = "0BSD" license-files = [ - { path = "LICENSE-APACHE", hash = 0xb5518783 }, - { path = "LICENSE-MIT", hash = 0x386ca1bc }, - { path = "LICENSE-UNICODE", hash = 0x9698cbbe }, +# COPYRIGHT ファイルが自動分類できないため + { path = "COPYRIGHT", hash = 0xa0851550, license = "0BSD" }, ] -[clarify.whiteread] -expression = "LicenseRef-MIT-WITH-NonMilitaryNonSpy" +[clarify.wasi] +expression = "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT" license-files = [ - { path = "LICENSE", hash = 0xf385eca4 }, + { path = "LICENSE-APACHE", hash = 0x24b54f4b, license = "Apache-2.0" }, + { path = "LICENSE-MIT", hash = 0x386ca1bc, license = "MIT" }, +# LICENSE-Apache-2.0_WITH_LLVM-exception ファイルが "Apache-2.0" と自動分類されるため + { path = "LICENSE-Apache-2.0_WITH_LLVM-exception", hash = 0xdebf99f1, license = "Apache-2.0" }, +] + +[spdx] +ignore-licenses = [ + # Apache-2.0 is often misclassified as Pixar, which is a significantly more rare + # https://github.com/jpeddicord/askalono/issues/94 + "Pixar" ] diff --git a/deny.toml b/deny.toml index 7891ba0..dfad0c4 100644 --- a/deny.toml +++ b/deny.toml @@ -1,3 +1,4 @@ +[graph] targets = [ { triple = "x86_64-unknown-linux-gnu" }, ] @@ -7,35 +8,43 @@ multiple-versions = "allow" # クレートの中にはビルド時にcurl等でCのライブラリ(lib○○)を持って来てリンクすることがある。 # 今回のクレートのセットにはそのようなものは含まれていない。 # そのことを各build.rsを目視して確認した。 -allow-build-scripts = [ - { name = "anyhow", version = "=1.0.72" }, # https://docs.rs/crate/anyhow/1.0.72/source/build.rs +build.allow-build-scripts = [ + { name = "anyhow", version = "=1.0.98" }, # https://docs.rs/crate/anyhow/1.0.98/source/build.rs { name = "az", version = "=1.2.1" }, # https://docs.rs/crate/az/1.2.1/source/build.rs + { name = "getrandom", version = "=0.3.2" }, # https://docs.rs/crate/getrandom/0.3.2/source/build.rs { name = "im-rc", version = "=15.1.0" }, # https://docs.rs/crate/im-rc/15.1.0/source/build.rs { name = "indexmap", version = "=1.9.3" }, # https://docs.rs/crate/indexmap/1.9.3/source/build.rs - { name = "libc", version = "=0.2.147" }, # https://docs.rs/crate/libc/0.2.147/source/build.rs - { name = "libm", version = "=0.2.7" }, # https://docs.rs/crate/libm/0.2.7/source/build.rs - { name = "log", version = "=0.4.17" }, # https://docs.rs/crate/log/0.4.17/source/build.rs - { name = "matrixmultiply", version = "=0.3.7" }, # https://docs.rs/crate/matrixmultiply/0.3.7/source/build.rs + { name = "libc", version = "=0.2.172" }, # https://docs.rs/crate/libc/0.2.172/source/build.rs + { name = "libm", version = "=0.2.11" }, # https://docs.rs/crate/libm/0.2.11/source/build.rs + { name = "matrixmultiply", version = "=0.3.9" }, # https://docs.rs/crate/matrixmultiply/0.3.9/source/build.rs { name = "memchr", version = "=2.5.0" }, # https://docs.rs/crate/memchr/2.5.0/source/build.rs { name = "num-bigint", version = "=0.4.3" }, # https://docs.rs/crate/num-bigint/0.4.3/source/build.rs { name = "num-complex", version = "=0.2.4" }, # https://docs.rs/crate/num-complex/0.2.4/source/build.rs { name = "num-integer", version = "=0.1.45" }, # https://docs.rs/crate/num-integer/0.1.45/source/build.rs { name = "num-iter", version = "=0.1.43" }, # https://docs.rs/crate/num-iter/0.1.43/source/build.rs { name = "num-rational", version = "=0.4.1" }, # https://docs.rs/crate/num-rational/0.4.1/source/build.rs - { name = "num-traits", version = "=0.2.15" }, # https://docs.rs/crate/num-traits/0.2.15/source/build.rs - { name = "paste", version = "=1.0.14" }, # https://docs.rs/crate/paste/1.0.14/source/build.rs - { name = "proc-macro2", version = "=1.0.65" }, # https://docs.rs/crate/proc-macro2/1.0.65/source/build.rs + { name = "num-traits", version = "=0.2.19" }, # https://docs.rs/crate/num-traits/0.2.19/source/build.rs + { name = "paste", version = "=1.0.15" }, # https://docs.rs/crate/paste/1.0.15/source/build.rs + { name = "proc-macro2", version = "=1.0.95" }, # https://docs.rs/crate/proc-macro2/1.0.95/source/build.rs { name = "proc-macro-error", version = "=1.0.4" }, # https://docs.rs/crate/proc-macro-error/1.0.4/source/build.rs { name = "proc-macro-error-attr", version = "=1.0.4" }, # https://docs.rs/crate/proc-macro-error-attr/1.0.4/source/build.rs - { name = "quote", version = "=1.0.30" }, # https://docs.rs/crate/quote/1.0.30/source/build.rs + { name = "quote", version = "=1.0.40" }, # https://docs.rs/crate/quote/1.0.40/source/build.rs { name = "radium", version = "=0.7.0" }, # https://docs.rs/crate/radium/0.7.0/source/build.rs - { name = "serde", version = "=1.0.171" }, # https://docs.rs/crate/serde/1.0.171/source/build.rs - { name = "serde_derive", version = "=1.0.159" }, # https://docs.rs/crate/serde_derive/1.0.159/source/build.rs + { name = "semver", version = "=1.0.26" }, # https://docs.rs/crate/semver/1.0.26/source/build.rs + { name = "serde", version = "=1.0.219" }, # https://docs.rs/crate/serde/1.0.219/source/build.rs + { name = "serde_derive", version = "=1.0.218" }, # https://docs.rs/crate/serde_derive/1.0.218/source/build.rs { name = "syn", version = "=1.0.109" }, # https://docs.rs/crate/syn/1.0.109/source/build.rs - { name = "target-features", version = "=0.1.4" }, # https://docs.rs/crate/target-features/0.1.4/source/build.rs - { name = "thiserror", version = "=1.0.43" }, # https://docs.rs/crate/thiserror/1.0.43/source/build.rs - { name = "typenum", version = "=1.16.0" }, # https://docs.rs/crate/typenum/1.16.0/source/build/main.rs + { name = "target-features", version = "=0.1.6" }, # https://docs.rs/crate/target-features/0.1.6/source/build.rs + { name = "thiserror", version = "=1.0.69" }, # https://docs.rs/crate/thiserror/1.0.69/source/build.rs + { name = "thiserror", version = "=2.0.12" }, # https://docs.rs/crate/thiserror/2.0.12/source/build.rs + { name = "typenum", version = "=1.18.0" }, # https://docs.rs/crate/typenum/1.18.0/source/build/main.rs { name = "varisat", version = "=0.2.2" }, # https://docs.rs/crate/varisat/0.2.2/source/build.rs + { name = "zerocopy", version = "=0.8.24" }, # https://docs.rs/crate/zerocopy/0.8.24/source/build.rs +] + +[sources] +allow-git = [ + "https://github.com/rust-lang-ja/ac-library-rs.git", ] [licenses] @@ -46,5 +55,16 @@ allow = [ "CC0-1.0", "MIT", "MPL-2.0", - "Unicode-DFS-2016", +# "Unicode-DFS-2016", + "Unicode-3.0", + "Zlib", +] + +[advisories] +ignore = [ + # https://rustsec.org/advisories/RUSTSEC-2024-0436 paste - no longer maintained + # Announcement: https://github.com/dtolnay/paste + # RUSTSEC-2024-0436 affect "statrs v0.18.0", "nalgebra v0.33.2", "amplify v4.8.0", + # also, "simba v0.9.0", "stringly_conversions v0.1.1". + "RUSTSEC-2024-0436", ] diff --git a/rust-toolchain b/rust-toolchain index 832e9af..59d7d10 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -1.70.0 +1.86.0 \ No newline at end of file diff --git a/xtask/Cargo.lock b/xtask/Cargo.lock index 96ee4ed..9a5ed50 100644 --- a/xtask/Cargo.lock +++ b/xtask/Cargo.lock @@ -1,12 +1,12 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] @@ -17,6 +17,27 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -26,79 +47,155 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" + +[[package]] +name = "anstyle-parse" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" +dependencies = [ + "anstyle", + "once_cell", + "windows-sys", +] + [[package]] name = "anyhow" -version = "1.0.70" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" + +[[package]] +name = "askalono" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46676ccec8213bcc35a7e8562a8459138b8ae82c380bbc9ae7ffcfa247352972" +dependencies = [ + "anyhow", + "flate2", + "lazy_static", + "log", + "rayon", + "regex", + "rmp-serde", + "serde", + "serde_json", + "unicode-normalization", + "zstd", +] [[package]] name = "askama" -version = "0.12.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47cbc3cf73fa8d9833727bbee4835ba5c421a0d65b72daf9a7b5d0e0f9cfb57e" +checksum = "5d4744ed2eef2645831b441d8f5459689ade2ab27c854488fbab1fbe94fce1a7" dependencies = [ "askama_derive", - "askama_escape", - "humansize", - "num-traits", + "itoa", "percent-encoding", + "serde", + "serde_json", ] [[package]] name = "askama_derive" -version = "0.12.1" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22fbe0413545c098358e56966ff22cdd039e10215ae213cfbd65032b119fc94" +checksum = "d661e0f57be36a5c14c48f78d09011e67e0cb618f269cca9f2fd8d15b68c46ac" dependencies = [ + "askama_parser", "basic-toml", - "mime", - "mime_guess", - "nom", + "memchr", "proc-macro2", "quote", + "rustc-hash", "serde", - "syn 2.0.10", + "serde_derive", + "syn", ] [[package]] -name = "askama_escape" -version = "0.10.3" +name = "askama_parser" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "619743e34b5ba4e9703bba34deac3427c72507c7159f5fd030aea8cac0cfe341" +checksum = "cf315ce6524c857bb129ff794935cf6d42c82a6cff60526fe2a63593de4d0d4f" +dependencies = [ + "memchr", + "serde", + "serde_derive", + "winnow", +] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "backtrace" -version = "0.3.67" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", "cfg-if", "libc", - "miniz_oxide", + "miniz_oxide 0.7.4", "object", "rustc-demangle", ] [[package]] name = "base64" -version = "0.21.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "basic-toml" -version = "0.1.2" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c0de75129aa8d0cceaf750b89013f0e08804d6ec61416da787b35ad0d7cddf1" +checksum = "ba62675e8242a4c4e806d12f11d136e626e6c8361d6b829310732241652a178a" dependencies = [ "serde", ] @@ -114,26 +211,36 @@ dependencies = [ [[package]] name = "bitflags" -version = "1.3.2" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "bstr" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4" +dependencies = [ + "memchr", + "serde", +] [[package]] name = "build-info" -version = "0.0.30" +version = "0.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36484c58823abd59bb12a8873fff765f0637723e3c4fbd9c523a9035995e95ce" +checksum = "288657edd15bfa5a7f30ca3b123c1af2c503eaf218e517fa10bc9063dbc2ad99" dependencies = [ + "bincode", "build-info-common", "build-info-proc", - "once_cell", ] [[package]] name = "build-info-build" -version = "0.0.30" +version = "0.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a81141b1af6bc87316a3fdcc3b33658f7a9153c7677da6b0e57d762c87f8ee61" +checksum = "3146483d5bc5081ec26f9c4e60232e770980d750b2802d6cc2563cded665cc73" dependencies = [ "anyhow", "base64", @@ -143,18 +250,17 @@ dependencies = [ "chrono", "git2", "glob", - "once_cell", "pretty_assertions", "rustc_version", "serde_json", - "xz2", + "zstd", ] [[package]] name = "build-info-common" -version = "0.0.30" +version = "0.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0209923629b6854e590663db44001ea7cf35b3c7c13b04428c227f42bfda0489" +checksum = "8524ad59f5958f37f95e66bf6c9a8fa8440c4f56c069247c44244434cfca3eb1" dependencies = [ "chrono", "derive_more", @@ -164,9 +270,9 @@ dependencies = [ [[package]] name = "build-info-proc" -version = "0.0.30" +version = "0.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a05d014e9d21c950661a8f774d0147297b7d24f22c1ce8605a1e3853c8dfdaf" +checksum = "6b58fb02636d968e8327d84a5a256df9704ac27a1eda98429c35dbe50a278f69" dependencies = [ "anyhow", "base64", @@ -175,43 +281,49 @@ dependencies = [ "chrono", "num-bigint", "num-traits", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "serde_json", - "syn 2.0.10", - "xz2", + "syn", + "zstd", ] [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "byteorder" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "camino" -version = "1.1.4" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2" +checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.2" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" dependencies = [ "serde", ] [[package]] name = "cargo_metadata" -version = "0.15.3" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" +checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" dependencies = [ "camino", "cargo-platform", @@ -223,11 +335,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.79" +version = "1.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" dependencies = [ "jobserver", + "libc", + "shlex", ] [[package]] @@ -238,68 +352,62 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" dependencies = [ + "android-tzdata", "iana-time-zone", - "num-integer", "num-traits", "serde", - "winapi", + "windows-link", ] [[package]] name = "clap" -version = "4.1.13" +version = "4.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c911b090850d79fc64fe9ea01e28e465f65e821e08813ced95bced72f7a8a9b" +checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" dependencies = [ - "bitflags", + "clap_builder", "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" +dependencies = [ + "anstream", + "anstyle", "clap_lex", - "is-terminal", - "once_cell", "strsim", - "termcolor", ] [[package]] name = "clap_derive" -version = "4.1.12" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a932373bab67b984c790ddf2c9ca295d8e3af3b7ef92de5a5bacdccdee4b09b" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.10", + "syn", ] [[package]] name = "clap_lex" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646" -dependencies = [ - "os_str_bytes", -] - -[[package]] -name = "codespan-reporting" -version = "0.11.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "termcolor", - "unicode-width", -] +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "color-eyre" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204" +checksum = "55146f5e46f237f7423d74111267d4597b59b0dad0ffaf7303bce9945d843ad5" dependencies = [ "backtrace", "color-spantrace", @@ -312,9 +420,9 @@ dependencies = [ [[package]] name = "color-spantrace" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba75b3d9449ecdccb27ecbc479fdc0b87fa2dd43d2f8298f9bf0e59aacc8dce" +checksum = "cd6be1b2a7e382e2b98b43b2adcca6bb0e465af0bdd38123873ae61eb17a72c2" dependencies = [ "once_cell", "owo-colors", @@ -323,82 +431,70 @@ dependencies = [ ] [[package]] -name = "convert_case" -version = "0.4.0" +name = "colorchoice" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] -name = "ctor" -version = "0.1.26" +name = "crc32fast" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ - "quote", - "syn 1.0.109", + "cfg-if", ] [[package]] -name = "cxx" -version = "1.0.94" +name = "crossbeam-deque" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] -name = "cxx-build" -version = "1.0.94" +name = "crossbeam-epoch" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2", - "quote", - "scratch", - "syn 2.0.10", + "crossbeam-utils", ] [[package]] -name = "cxxbridge-flags" -version = "1.0.94" +name = "crossbeam-utils" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] -name = "cxxbridge-macro" -version = "1.0.94" +name = "derive_more" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.10", + "derive_more-impl", ] [[package]] -name = "derive_more" -version = "0.99.17" +name = "derive_more-impl" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ - "convert_case", "proc-macro2", "quote", - "rustc_version", - "syn 1.0.109", + "syn", + "unicode-xid", ] [[package]] @@ -408,68 +504,100 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" [[package]] -name = "either" -version = "1.8.1" +name = "displaydoc" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] [[package]] -name = "errno" -version = "0.2.8" +name = "either" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi", -] +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] -name = "errno-dragonfly" -version = "0.1.2" +name = "equivalent" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "eyre" -version = "0.6.8" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" dependencies = [ "indenter", "once_cell", ] +[[package]] +name = "flate2" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" +dependencies = [ + "crc32fast", + "miniz_oxide 0.8.8", +] + [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] [[package]] name = "fs-err" -version = "2.9.0" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f89bda4c2a21204059a977ed3bfe746677dfd137b83c339e702b0ac91d482aa" +dependencies = [ + "autocfg", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", +] [[package]] name = "gimli" -version = "0.27.2" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "git2" -version = "0.16.1" +version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf7f68c2995f392c49fffb4f95ae2c873297830eb25c6bc4c114ce8f4562acc" +checksum = "5220b8ba44c68a9a7f7a7659e864dd73692e417ef0211bea133c7b74e031eeb9" dependencies = [ "bitflags", "libc", @@ -480,161 +608,289 @@ dependencies = [ [[package]] name = "glob" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] -name = "hashbrown" -version = "0.12.3" +name = "globset" +version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "54a1028dfc5f5df5da8a56a73e6c153c9a9708ec57232470703592a3f18e49f5" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata", + "regex-syntax", +] [[package]] -name = "hermit-abi" -version = "0.3.1" +name = "hashbrown" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" [[package]] -name = "humansize" -version = "2.1.3" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cb51c9a029ddc91b07a787f1d86b53ccfa49b0e86688c946ebe8d3555685dd7" -dependencies = [ - "libm", -] +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "iana-time-zone" -version = "0.1.54" +version = "0.1.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c17cc76786e99f8d2f055c11159e7f0091c42474dcc3189fbab96072e873e6d" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", + "log", "wasm-bindgen", - "windows", + "windows-core", ] [[package]] name = "iana-time-zone-haiku" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" dependencies = [ - "cxx", - "cxx-build", + "cc", ] [[package]] -name = "idna" -version = "0.3.0" +name = "icu_collections" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "displaydoc", + "yoke", + "zerofrom", + "zerovec", ] [[package]] -name = "indenter" -version = "0.3.3" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] [[package]] -name = "indexmap" -version = "1.9.3" +name = "icu_locid_transform" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" dependencies = [ - "autocfg", - "hashbrown", - "serde", + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", ] [[package]] -name = "io-lifetimes" -version = "1.0.9" +name = "icu_locid_transform_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09270fd4fa1111bc614ed2246c7ef56239a3063d5be0d1ec3b589c505d400aeb" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ - "hermit-abi", - "libc", - "windows-sys", + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", ] [[package]] -name = "is-terminal" -version = "0.4.5" +name = "icu_properties_data" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8687c819457e979cc940d09cb16e42a1bf70aa6b60a549de6d3a62a0ee90c69e" +checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ - "hermit-abi", - "io-lifetimes", - "rustix", - "windows-sys", + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", ] +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "ignore" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" +dependencies = [ + "crossbeam-deque", + "globset", + "log", + "memchr", + "regex-automata", + "same-file", + "walkdir", + "winapi-util", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +dependencies = [ + "equivalent", + "hashbrown", + "serde", +] + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "itertools" -version = "0.10.5" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" -version = "0.1.26" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom 0.3.2", "libc", ] [[package]] name = "js-sys" -version = "0.3.61" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.140" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libgit2-sys" -version = "0.14.2+1.5.1" +version = "0.18.1+1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f3d95f6b51075fe9810a7ae22c7095f12b98005ab364d8544797a825ce946a4" +checksum = "e1dcb20f84ffcdd825c7a311ae347cce604a6f084a767dec4a4929829645290e" dependencies = [ "cc", "libc", @@ -642,17 +898,11 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "libm" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" - [[package]] name = "libz-sys" -version = "1.1.8" +version = "1.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" dependencies = [ "cc", "libc", @@ -661,346 +911,419 @@ dependencies = [ ] [[package]] -name = "link-cplusplus" -version = "1.0.8" +name = "litemap" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" -dependencies = [ - "cc", -] +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" [[package]] -name = "linux-raw-sys" -version = "0.1.4" +name = "log" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] -name = "log" -version = "0.4.17" +name = "memchr" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] -name = "lzma-sys" -version = "0.1.20" +name = "miniz_oxide" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ - "cc", - "libc", - "pkg-config", + "adler", ] [[package]] -name = "memchr" -version = "2.5.0" +name = "miniz_oxide" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +dependencies = [ + "adler2", +] [[package]] -name = "mime" -version = "0.3.17" +name = "num-bigint" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] [[package]] -name = "mime_guess" -version = "2.0.4" +name = "num-integer" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "mime", - "unicase", + "num-traits", ] [[package]] -name = "minimal-lexical" -version = "0.2.1" +name = "num-traits" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] [[package]] -name = "miniz_oxide" -version = "0.6.2" +name = "object" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ - "adler", + "memchr", ] [[package]] -name = "nom" -version = "7.1.3" +name = "once_cell" +version = "1.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" + +[[package]] +name = "owo-colors" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pkg-config" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "memchr", - "minimal-lexical", + "zerocopy", ] [[package]] -name = "num-bigint" -version = "0.4.3" +name = "pretty_assertions" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "3ae130e2f271fbc2ac3a40fb1d07180839cdbbe443c7a27e1e3c13c5cac0116d" dependencies = [ - "autocfg", - "num-integer", - "num-traits", + "diff", + "yansi", ] [[package]] -name = "num-integer" -version = "0.1.45" +name = "proc-macro-error-attr2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ - "autocfg", - "num-traits", + "proc-macro2", + "quote", ] [[package]] -name = "num-traits" -version = "0.2.15" +name = "proc-macro-error2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ - "autocfg", + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "object" -version = "0.30.3" +name = "proc-macro2" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ - "memchr", + "unicode-ident", ] [[package]] -name = "once_cell" -version = "1.17.1" +name = "quote" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +dependencies = [ + "proc-macro2", +] [[package]] -name = "os_str_bytes" -version = "6.5.0" +name = "r-efi" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" [[package]] -name = "output_vt100" -version = "0.1.3" +name = "rand" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ - "winapi", + "libc", + "rand_chacha", + "rand_core", ] [[package]] -name = "owo-colors" -version = "3.5.0" +name = "rand_chacha" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] [[package]] -name = "percent-encoding" -version = "2.2.0" +name = "rand_core" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] [[package]] -name = "pin-project-lite" -version = "0.2.9" +name = "rayon" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] [[package]] -name = "pkg-config" -version = "0.3.26" +name = "rayon-core" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] [[package]] -name = "pretty_assertions" -version = "1.3.0" +name = "regex" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ - "ctor", - "diff", - "output_vt100", - "yansi", + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", ] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "regex-automata" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", + "aho-corasick", + "memchr", + "regex-syntax", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "regex-syntax" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] -name = "proc-macro2" -version = "1.0.53" +name = "rmp" +version = "0.8.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba466839c78239c09faf015484e5cc04860f88242cff4d03eb038f04b4699b73" +checksum = "228ed7c16fa39782c3b3468e974aec2795e9089153cd08ee2e9aefb3613334c4" dependencies = [ - "unicode-ident", + "byteorder", + "num-traits", + "paste", ] [[package]] -name = "quote" -version = "1.0.26" +name = "rmp-serde" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "52e599a477cf9840e92f2cde9a7189e67b42c57532749bf90aea6ec10facd4db" dependencies = [ - "proc-macro2", + "byteorder", + "rmp", + "serde", ] [[package]] name = "rustc-demangle" -version = "0.1.22" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a36c42d1873f9a77c53bde094f9664d9891bc604a45b4798fd2c389ed12e5b" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] [[package]] -name = "rustix" -version = "0.36.11" +name = "rustversion" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4165c9963ab29e422d6c26fbc1d37f15bace6b2810221f9d925023480fcf0e" -dependencies = [ - "bitflags", - "errno", - "io-lifetimes", - "libc", - "linux-raw-sys", - "windows-sys", -] +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] -name = "scratch" -version = "1.0.5" +name = "same-file" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] [[package]] name = "semver" -version = "1.0.17" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.158" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771d4d9c4163ee138805e12c710dd365e4f44be8be0503cb1bb9eb989425d9c9" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.158" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e801c1712f48475582b7696ac71e0ca34ebb30e09338425384269d9717c62cad" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.10", + "syn", ] [[package]] name = "serde_json" -version = "1.0.94" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c533a59c9d8a93a09c6ab31f0fd5e5f4dd1b8fc9434804029839884765d04ea" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] [[package]] name = "serde_spanned" -version = "0.6.1" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] [[package]] -name = "strsim" -version = "0.10.0" +name = "shlex" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] -name = "syn" -version = "1.0.109" +name = "smallvec" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" + +[[package]] +name = "spdx" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "58b69356da67e2fc1f542c71ea7e654a361a79c938e4424392ecf4fa065d2193" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "smallvec", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + [[package]] name = "syn" -version = "2.0.10" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aad1363ed6d37b84299588d62d3a7d95b5a5c2d9aad5c85609fda12afaa1f40" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", @@ -1008,49 +1331,61 @@ dependencies = [ ] [[package]] -name = "termcolor" -version = "1.2.0" +name = "synstructure" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "winapi-util", + "proc-macro2", + "quote", + "syn", ] [[package]] name = "thiserror" -version = "1.0.40" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.40" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.10", + "syn", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinyvec" -version = "1.6.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" dependencies = [ "tinyvec_macros", ] @@ -1063,9 +1398,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml" -version = "0.7.3" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ "serde", "serde_spanned", @@ -1075,18 +1410,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.1" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.19.8" +version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ "indexmap", "serde", @@ -1097,20 +1432,19 @@ dependencies = [ [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ - "cfg-if", "pin-project-lite", "tracing-core", ] [[package]] name = "tracing-core" -version = "0.1.30" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -1118,9 +1452,9 @@ dependencies = [ [[package]] name = "tracing-error" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e" +checksum = "8b1581020d7a273442f5b45074a6a57d5757ad0a47dac0e9f0bd57b81936f3db" dependencies = [ "tracing", "tracing-subscriber", @@ -1128,9 +1462,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.16" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "sharded-slab", "thread_local", @@ -1138,57 +1472,69 @@ dependencies = [ ] [[package]] -name = "unicase" -version = "2.6.0" +name = "twox-hash" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +checksum = "e7b17f197b3050ba473acf9181f7b1d3b66d1cf7356c6cc57886662276e65908" dependencies = [ - "version_check", + "rand", ] -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] [[package]] -name = "unicode-width" -version = "0.1.10" +name = "unicode-xid" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "url" -version = "2.3.1" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", "percent-encoding", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + [[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" @@ -1197,41 +1543,61 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] -name = "version_check" -version = "0.9.4" +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +dependencies = [ + "wit-bindgen-rt", +] [[package]] name = "wasm-bindgen" -version = "0.2.84" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", + "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.84" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 1.0.109", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.84" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1239,81 +1605,113 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.84" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.84" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] -name = "winapi" -version = "0.3.9" +name = "winapi-util" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", + "windows-sys", ] [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +name = "windows-core" +version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] [[package]] -name = "winapi-util" -version = "0.1.5" +name = "windows-implement" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ - "winapi", + "proc-macro2", + "quote", + "syn", ] [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" [[package]] -name = "windows" -version = "0.46.0" +name = "windows-result" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdacb41e6a96a052c6cb63a144f24900236121c6f63f4f8219fef5977ecb0c25" +checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" dependencies = [ - "windows-targets", + "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" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", + "windows_i686_gnullvm", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", @@ -1322,59 +1720,87 @@ dependencies = [ [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.42.2" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.4.1" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae8970b36c66498d8ff1d66685dc86b91b29db0c7739899012f63a63814b4b28" +checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" dependencies = [ "memchr", ] +[[package]] +name = "wit-bindgen-rt" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +dependencies = [ + "bitflags", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "xtask" version = "0.0.0" dependencies = [ + "askalono", "askama", "build-info", "build-info-build", @@ -1384,25 +1810,137 @@ dependencies = [ "color-eyre", "eyre", "fs-err", + "ignore", "indexmap", "itertools", + "regex", + "semver", "serde", "serde_json", + "spdx", "toml", "toml_edit", + "twox-hash", + "walkdir", ] [[package]] -name = "xz2" -version = "0.1.7" +name = "yansi" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" + +[[package]] +name = "yoke" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388c44dc09d76f1536602ead6d325eb532f5c122f17782bd57fb47baeeb767e2" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ - "lzma-sys", + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", ] [[package]] -name = "yansi" -version = "0.5.1" +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.15+zstd.1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index 63a81d2..e75b2b1 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -1,25 +1,32 @@ [package] name = "xtask" version = "0.0.0" -edition = "2021" +edition = "2024" license = "CC0-1.0" publish = false [dependencies] -askama = "0.12.0" -build-info = "0.0.30" -camino = "1.1.4" -cargo_metadata = "0.15.3" -clap = { version = "4.1.13", features = ["derive"] } -color-eyre = "0.6.2" -eyre = "0.6.8" -fs-err = "2.9.0" -indexmap = { version = "1.9.3", features = ["serde-1"] } -itertools = "0.10.5" -serde = { version = "1.0.158", features = ["derive"] } -serde_json = "1.0.94" -toml = "0.7.3" -toml_edit = "0.19.8" +askalono = "0.5.0" +askama = "0.13.0" +build-info = "0.0.40" +camino = "1.1.9" +cargo_metadata = "0.19.1" +clap = { version = "4.5.24", features = ["derive"] } +color-eyre = "0.6.3" +eyre = "0.6.12" +fs-err = "3.0.0" +ignore = "0.4.23" +indexmap = { version = "2.9.0", features = ["serde"] } +itertools = "0.14.0" +regex = "1.11.1" +semver = "1.0.24" +serde = { version = "1.0.217", features = ["derive"] } +serde_json = "1.0.134" +spdx = "0.10.8" +toml = "0.8.19" +toml_edit = "0.22.22" +twox-hash = "2.1.0" +walkdir = "2.5.0" [build-dependencies] -build-info-build = "0.0.30" +build-info-build = "0.0.40" diff --git a/xtask/src/main.rs b/xtask/src/main.rs index f039411..043e731 100755 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -1,5 +1,3 @@ -use std::collections::HashMap; - use askama::Template as _; use build_info::build_info; use camino::Utf8Path; @@ -9,15 +7,25 @@ use eyre::{ensure, eyre}; use indexmap::IndexMap; use itertools::Itertools as _; use serde::Deserialize; +use std::{ + collections::{BTreeMap, HashMap, HashSet}, + fmt::Write, +}; #[allow(clippy::enum_variant_names)] #[derive(clap::Parser)] enum Args { + GenToml(ArgsGenToml), GenSpecs(ArgsGenSpecs), GenCommand(ArgsGenCommand), GenLicenseUrls(ArgsGenLicenseUrls), } +#[derive(clap::Parser)] +struct ArgsGenToml { + spdx_data: String, +} + #[derive(clap::Parser)] struct ArgsGenSpecs {} @@ -27,15 +35,461 @@ struct ArgsGenCommand {} #[derive(clap::Parser)] struct ArgsGenLicenseUrls {} +#[derive(Debug, Deserialize, Default)] +struct Clarifications { + #[serde(default)] + clarify: HashMap, +} + +#[derive(Debug, Deserialize)] +#[serde(untagged)] +enum Clarification { + SingleClarification(Box), + ClarificationList(Vec), +} + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "kebab-case")] +struct InnerClarification { + /// The optional version constraint. Defaults to any version. + version: Option, + + /// The SPDX license expression for the entire package. + #[serde(deserialize_with = "expression_from_str")] + expression: spdx::Expression, + + /// List of files containing license information and their hashes. + license_files: Vec, + + /// List of files that should be skipped as they don't contain license information. + #[serde(default)] + skip_files: Vec, +} + +#[derive(Debug, Deserialize)] +struct LicenseFile { + path: String, + hash: u32, + /// The SPDX license expression for the entire package. + #[serde(deserialize_with = "expression_from_str")] + license: spdx::Expression, +} + +/// `#[serde(deserialize_with)]` handler for parsing as an `spdx::Expression`. +fn expression_from_str<'de, D>(deserializer: D) -> Result +where + D: serde::de::Deserializer<'de>, +{ + struct Visitor; + + impl<'de> serde::de::Visitor<'de> for Visitor { + type Value = spdx::Expression; + + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("a string") + } + + fn visit_str(self, s: &str) -> Result + where + E: serde::de::Error, + { + spdx::Expression::parse(s).map_err(|err| E::custom(err.to_string())) + } + } + + deserializer.deserialize_str(Visitor) +} + fn main() -> eyre::Result<()> { color_eyre::install()?; match Args::parse() { + Args::GenToml(args) => gen_toml(args), Args::GenSpecs(args) => gen_specs(args), Args::GenCommand(args) => gen_command(args), Args::GenLicenseUrls(args) => gen_license_urls(args), } } +fn gen_toml(ArgsGenToml { spdx_data }: ArgsGenToml) -> eyre::Result<()> { + let mut cargo_toml = include_str!("../../Cargo.toml").parse::()?; + cargo_toml.remove("workspace"); + cargo_toml.remove("cargo-features"); + + let clarify: Clarifications = toml::from_str(include_str!("../../clarify.toml"))?; + let clarify_vec = clarify + .clarify + .iter() + .flat_map(|(name, clarification)| match clarification { + Clarification::SingleClarification(clarification) => { + vec![(name.clone(), clarification.as_ref())] + } + Clarification::ClarificationList(clarifications) => clarifications + .iter() + .map(|clarification| (name.clone(), clarification)) + .collect::>(), + }) + .collect::>(); + + let mut store = askalono::Store::new(); + store + .load_spdx(std::path::Path::new(spdx_data.as_str()), false) + .unwrap(); + + let md = MetadataCommand::new() + .features(CargoOpt::AllFeatures) + .exec()?; + let root_package = &md.root_package().ok_or_else(|| eyre!("no root package"))?; + let root_dependencies = root_package + .dependencies + .iter() + .map(|d| (d.name.clone(), d.req.to_string())) + .collect::>(); + + let packages = md + .packages + .iter() + .map(|p| ((&p.name, &p.version), p)) + .collect::>() + .into_values() + .collect::>(); + + let mut libraries = String::new(); + for package in packages.iter().filter(|p| p.name.as_str() != "main") { + let indirect = !root_dependencies.contains(&( + package.name.clone(), + ["=", package.version.to_string().as_str()].join(""), + )); + let licensee: spdx::Expression = spdx::Expression::parse( + package + .license + .as_ref() + .unwrap() + .split("/") + .map(str::trim) + .join(" OR ") + .as_str(), + )?; + let clar = clarify_vec.iter().find(|(name, clar)| { + name == &package.name + && clar + .version + .as_ref() + .map_or(true, |v| v.matches(&package.version)) + }); + writeln!( + &mut libraries, + "library.{name}-{version_h} = {{ license = [", + name = package.name, + version_h = package + .version + .to_string() + .replace(".", "-") + .replace("+", "-"), + )?; + writeln!( + &mut libraries, + "# Cargo.toml (package.license) [{license}]", + license = licensee.to_string(), + )?; + if let Some((_, clar)) = clar { + writeln!( + &mut libraries, + "# clarifyed [{license}]", + license = clar.expression.to_string(), + )?; + } + for expr_node in licensee.iter() { + if let spdx::expression::ExprNode::Req(expr_req) = expr_node { + if package.name.as_str() == "ac-library-rs" { + let re = regex::Regex::new( + r#"^git\+https://github.com/rust-lang-ja/ac-library-rs\?rev=([0-9a-f]+)"#, + ) + .unwrap(); + if let Some(rev) = package + .source + .as_ref() + .and_then(|source| re.captures(&source.repr)) + .and_then(|caps| caps.get(1)) + .map(|rev| rev.as_str()) + { + writeln!( + &mut libraries, + " {{ name = '{license}', url = 'https://github.com/rust-lang-ja/ac-library-rs/blob/{rev}/Cargo.toml' }},", + license = if expr_req.req.license.id().unwrap().is_gnu() { + // fmt include or_later "-or-later" + expr_req.req.license.to_string() + } else { + // fmt remove or_later "+" + expr_req.req.license.id().unwrap().name.to_string() + }, + )?; + continue; + } + } + writeln!( + &mut libraries, + " {{ name = '{license}', url = 'https://docs.rs/crate/{name}/{version}/source/Cargo.toml' }},", + license = if expr_req.req.license.id().unwrap().is_gnu() { + // fmt include or_later "-or-later" + expr_req.req.license.to_string() + } else { + // fmt remove or_later "+" + expr_req.req.license.id().unwrap().name.to_string() + }, + name = package.name, + version = package.version, + )?; + } + } + let base_dir = package.manifest_path.parent().unwrap(); + for dir_entry in ignore::Walk::new(base_dir).filter_map(Result::ok) { + if !dir_entry.path().is_file() { + continue; + } + let filename = dir_entry.path().file_name().unwrap().to_str().unwrap(); + if !["LICENSE", "COPYING", "COPYRIGHT"] + .iter() + .any(|s| filename.to_uppercase().contains(s)) + { + continue; + } + let path = dir_entry.path().strip_prefix(base_dir)?.to_str().unwrap(); + if !path + .chars() + .all(|c| c.is_ascii_alphanumeric() || "/-_.".contains(c)) + { + eprintln!("skip: {}", path); + continue; + } + let file_string = std::fs::read_to_string(dir_entry.path())?; + let matched = store.analyze(&file_string.clone().into()); + let hash = twox_hash::XxHash32::oneshot(0, file_string.as_bytes()); + + if let Some((_, clar)) = clar { + writeln!( + &mut libraries, + "# {path} [{matched}] hash = 0x{hash:08x}", + matched = match matched { + askalono::Match { + score, + name, + license_type: _, + data: _, + } if score >= 0.9 => { + format!( + "{name} (confidence {score:.4}){ex}", + ex = if name == "Pixar" { + // Pixar maybe Apache-2.0 + ", maybe Apache-2.0" + } else { + "" + } + ) + } + _ => "unknown".to_string(), + }, + )?; + + if clar.skip_files.iter().any(|p| p.as_str() == path) { + writeln!( + &mut libraries, + "# clarified skip: {path} [{matched}] hash = 0x{hash:08x}", + matched = match matched { + askalono::Match { + score, + name, + license_type: _, + data: _, + } if score >= 0.9 => { + format!( + "{name} (confidence {score:.4}){ex}", + ex = if name == "Pixar" { + // Pixar maybe Apache-2.0 + ", maybe Apache-2.0" + } else { + "" + } + ) + } + _ => "unknown".to_string(), + }, + )?; + } else if let Some(license_file) = clar + .license_files + .iter() + .find(|f| f.path == path && f.hash == hash) + { + writeln!( + &mut libraries, + "# clarifyed: {path} [{license}] hash = 0x{hash:08x}", + license = license_file.license.to_string(), + )?; + for expr_node in license_file.license.iter() { + if let spdx::expression::ExprNode::Req(exp) = expr_node { + writeln!( + &mut libraries, + " {{ name = '{license}', url = 'https://docs.rs/crate/{name}/{version}/source/{path}' }},", + license = exp.req, + name = package.name, + version = package.version, + path = path, + )?; + } + } + } else { + panic!( + "Unclarified: {package} {version} {path} hash = 0x{hash:08x}\n{clar:?}", + package = package.name, + version = package.version, + clar = clar, + ); + } + } else { + writeln!( + &mut libraries, + "# {path} [{matched}] hash = 0x{hash:08x}", + matched = match matched { + askalono::Match { + score, + name, + license_type: _, + data: _, + } if score >= 0.9 => { + format!( + "{name} (confidence {score:.4}){ex}", + ex = if name == "Pixar" { + // Pixar maybe Apache-2.0 + ", maybe Apache-2.0" + } else { + "" + } + ) + } + _ => panic!( + "Unmatched: {package} {path} hash = 0x{hash:08x}", + package = package.name + ), + }, + )?; + + let license_name = match matched { + askalono::Match { + score, + name, + license_type: _, + data: _, + } if score >= 0.9 => { + if name == "Pixar" { + // Pixar maybe Apache-2.0 + "Apache-2.0" + } else { + name + } + } + _ => panic!( + "Unmatched: {package} {path} hash = 0x{hash:08x}", + package = package.name + ), + }; + + if package.name.as_str() == "ac-library-rs" { + let re = regex::Regex::new( + r#"^git\+https://github.com/rust-lang-ja/ac-library-rs\?rev=([0-9a-f]+)"#, + ) + .unwrap(); + if let Some(rev) = package + .source + .as_ref() + .and_then(|source| re.captures(&source.repr)) + .and_then(|caps| caps.get(1)) + .map(|rev| rev.as_str()) + { + writeln!( + &mut libraries, + " {{ name = '{license}', url = 'https://github.com/rust-lang-ja/ac-library-rs/blob/{rev}/{path}' }},", + license = license_name, + path = path, + )?; + continue; + } + } + writeln!( + &mut libraries, + " {{ name = '{license}', url = 'https://docs.rs/crate/{name}/{version}/source/{path}' }},", + license = license_name, + name = package.name, + version = package.version, + path = dir_entry + .path() + .strip_prefix(base_dir)? + .to_str() + .unwrap() + .replace("\\", "/"), + )?; + } + } + writeln!( + &mut libraries, + "], indirect = {indirect}, version = '{version}' }}", + version = package.version, + )?; + } + + let git_rev = build_info() + .version_control + .as_ref() + .unwrap() + .git() + .unwrap() + .commit_id + .clone(); + + let commands = CommandTemplate { + rust_version: build_info().compiler.version.to_string(), + rust_channel: match build_info().compiler.channel { + build_info::CompilerChannel::Stable => build_info().compiler.version.to_string(), + build_info::CompilerChannel::Beta => "beta".to_string(), + build_info::CompilerChannel::Nightly => "nightly".to_string(), + build_info::CompilerChannel::Dev => "dev".to_string(), + }, + cargo_toml: cargo_toml.to_string().trim_start(), + git_rev: &git_rev, + } + .render()?; + + let install_script = ScriptTemplate { + rust_version: &build_info().compiler.version.to_string(), + commands: commands.trim_end(), + libraries: libraries.trim_end(), + git_rev: &git_rev, + } + .render()?; + + println!("{install_script}"); + + return Ok(()); + + build_info!(fn build_info); + + #[derive(askama::Template)] + #[template(path = "./install-command.bash.txt")] + struct CommandTemplate<'a> { + rust_version: String, + rust_channel: String, + cargo_toml: &'a str, + git_rev: &'a str, + } + + #[derive(askama::Template)] + #[template(path = "./install-script.toml.txt")] + struct ScriptTemplate<'a> { + rust_version: &'a str, + commands: &'a str, + libraries: &'a str, + git_rev: &'a str, + } +} + fn gen_specs(ArgsGenSpecs {}: ArgsGenSpecs) -> eyre::Result<()> { let md = MetadataCommand::new() .features(CargoOpt::AllFeatures) @@ -53,11 +507,18 @@ fn gen_specs(ArgsGenSpecs {}: ArgsGenSpecs) -> eyre::Result<()> { } fn gen_command(ArgsGenCommand {}: ArgsGenCommand) -> eyre::Result<()> { - let mut cargo_toml = include_str!("../../Cargo.toml").parse::()?; + let mut cargo_toml = include_str!("../../Cargo.toml").parse::()?; cargo_toml.remove("workspace"); + cargo_toml.remove("cargo-features"); let install_command = Template { rust_version: build_info().compiler.version.to_string(), + rust_channel: match build_info().compiler.channel { + build_info::CompilerChannel::Stable => build_info().compiler.version.to_string(), + build_info::CompilerChannel::Beta => "beta".to_string(), + build_info::CompilerChannel::Nightly => "nightly".to_string(), + build_info::CompilerChannel::Dev => "dev".to_string(), + }, cargo_toml: cargo_toml.to_string().trim_start(), git_rev: &build_info() .version_control @@ -77,8 +538,9 @@ fn gen_command(ArgsGenCommand {}: ArgsGenCommand) -> eyre::Result<()> { #[template(path = "./install-command.bash.txt")] struct Template<'a> { rust_version: String, + rust_channel: String, cargo_toml: &'a str, - git_rev: &'static str, + git_rev: &'a str, } } @@ -113,6 +575,7 @@ fn gen_license_urls(ArgsGenLicenseUrls {}: ArgsGenLicenseUrls) -> eyre::Result<( format!("https://github.com/rust-amplify/rust-amplify/blob/{sha1}/LICENSE"), )); } + /* if name == "proconio" { let sha1 = read_git_sha1(manifest_dir)?; return Ok(( @@ -120,6 +583,7 @@ fn gen_license_urls(ArgsGenLicenseUrls {}: ArgsGenLicenseUrls) -> eyre::Result<( format!("https://github.com/statiolake/proconio-rs/tree/{sha1}"), )); } + */ if name == "nalgebra" { // clarify.tomlを参照のこと return Ok(( diff --git a/xtask/templates/install-command.bash.txt b/xtask/templates/install-command.bash.txt index acf68b1..57efd61 100644 --- a/xtask/templates/install-command.bash.txt +++ b/xtask/templates/install-command.bash.txt @@ -2,14 +2,16 @@ set -e +sudo apt-get update sudo apt-get install -y --no-install-recommends build-essential ca-certificates curl rust_version={{ rust_version }} +rust_channel={{ rust_channel }} # https://forge.rust-lang.org/infra/other-installation-methods.html#standalone-installers -curl "https://static.rust-lang.org/dist/rust-$rust_version-x86_64-unknown-linux-gnu.tar.gz" -fO --output-dir /tmp -tar xvf "/tmp/rust-$rust_version-x86_64-unknown-linux-gnu.tar.gz" -C /tmp -sudo "/tmp/rust-$rust_version-x86_64-unknown-linux-gnu/install.sh" +curl "https://static.rust-lang.org/dist/rust-$rust_channel-x86_64-unknown-linux-gnu.tar.gz" -fO --output-dir /tmp +tar xvf "/tmp/rust-$rust_channel-x86_64-unknown-linux-gnu.tar.gz" -C /tmp +sudo "/tmp/rust-$rust_channel-x86_64-unknown-linux-gnu/install.sh" cargo -vV [ "$(command -v cargo)" = /usr/local/bin/cargo ] diff --git a/xtask/templates/install-script.toml.txt b/xtask/templates/install-script.toml.txt new file mode 100644 index 0000000..c8aad0b --- /dev/null +++ b/xtask/templates/install-script.toml.txt @@ -0,0 +1,242 @@ +# 言語インストールスクリプト +# +# 言語をインストールするためのスクリプトをTOML形式で記述していただきます +# 各キー/値ごとにコメントで +# キー: キー名 +# 型: そのキーに対する値の型 +# 要否: そのキーが必須であるか任意であるか +# 説明: そのキーの説明 +# 例: そのキーの値として指定するものの例 +# が記述してあるので、 必須 の項目については必ず記述してください +# 直後にそのキー/値の例が記述してあるので参考にしてください +# +# 実行環境は以下の通りとなっています +# +# OS: Ubuntu 24.04.1 +# カレントディレクトリ: /judge +# 環境変数: HOME=/home/runner +# LANG=C.UTF-8 +# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +# ATCODER=1 + +# キー: language +# 型: 文字列 +# 要否: 必須 +# 説明: プログラミング言語の名前 +# 例: 'C' +# 'C++' +# 'Java' +# 'Python3' +language = 'Rust' + +# キー: name +# 型: 文字列 +# 要否: 必須 +# 説明: コンパイラ/インタプリタの名前 +# コンパイラ、インタプリタの実装名を記述してください +# 例: 'GCC' +# 'Clang' +# 'OpenJDK' +name = 'rustc' + +# キー: version +# 型: 文字列 +# 要否: 必須 +# 説明: コンパイラ/インタプリタのバージョン番号 +# コンパイラ、インタプリタの実装バージョンを記述してください +# 例: '14.2' +# '18.1.8' +# '23' +version = '{{ rust_version }}' +# 1.86.0: Released on: 3 April, 2025 https://releases.rs/docs/1.86.0/ +# 1.87.0: Will be stable on: 15 May, 2025 https://releases.rs/docs/1.87.0/ + +# キー: license +# 型: 配列 +# 配列内の各要素はテーブルで、1要素が1つのライセンス +# テーブルに記述するキー/値は以下の通り +# キー: url +# 型: 文字列 +# 要否: 必須 +# 説明: ライセンスが確認できるURL +# 例: 'https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=COPYING3;hb=refs/heads/master' +# 'https://github.com/llvm/llvm-project/blob/main/clang/LICENSE.TXT' +# 'https://openjdk.org/legal/gplv2+ce.html' +# +# キー: name +# 型: 文字列 +# 要否: 必須 +# 説明: ライセンス名 +# https://spdx.org/licenses/ にある Identifier で記述してください +# ライセンスを記述するうえで例外規定を含む場合は後述の `exception` に分けて記述してください +# つまりこの項目では `WITH` を使った書き方はしないでください +# 上記リストにないライセンスの場合は問い合わせをしてください +# 例: 'GPL-3.0-and-later' +# 'Apache-2.0' +# 'GPL-2.0-only' +# +# キー: exception +# 型: 文字列 +# 要否: 任意 +# 説明: ライセンスの例外規定名 +# ライセンスにおける例外規定を https://spdx.org/licenses/exceptions-index.html にある Identifier で記述してください +# この項目は任意項目となっていますがライセンスに例外規定がある場合は必須です +# 任意となっているのは例外規定がない場合に書く内容がないためであり、例外規定を書かなくていいという意味ではありません +# 上記リストにないライセンスの場合は問い合わせをしてください +# 例: 'GCC-exception-3.1' +# 'LLVM-exception' +# 'Classpath-exception-2.0' +# 要否: 必須 +# 説明: コンパイラ/インタプリタのライセンス +# コンパイラ、インタプリタの実装のライセンスを記述してください +# デュアルライセンスなど、ライセンスが複数ある場合はすべて記述してください +license = [ + { name = 'Apache-2.0', url = 'https://github.com/rust-lang/rust/blob/{{ rust_version }}/COPYRIGHT' }, + { name = 'MIT', url = 'https://github.com/rust-lang/rust/blob/{{ rust_version }}/COPYRIGHT' }, + { name = 'Apache-2.0', exception = 'LLVM-exception', url = 'https://github.com/rust-lang/rust/blob/{{ rust_version }}/COPYRIGHT' }, + { name = 'Apache-2.0', url = 'https://github.com/rust-lang/rust/blob/{{ rust_version }}/LICENSE-APACHE' }, + { name = 'MIT', url = 'https://github.com/rust-lang/rust/blob/{{ rust_version }}/LICENSE-MIT' }, +] + +# キー: library +# 型: テーブル +# テーブル内の各キー/値はライブラリ1つを表し、キーにはライブラリ名を、値はテーブル型でライブラリの詳細を記述 +# ライブラリの詳細として記述できるキー/値は以下の通り +# キー: license +# 型: テーブルの配列 +# ここに記述する型/値は上記 `license` と同様なのでそちらを参照 +# 要否: 必須 +# 説明: ライブラリのライセンス +# +# キー: indirect +# 型: ブール値 +# 要否: 任意 +# 説明: 間接的にインストールされるライブラリかどうか +# 他ライブラリから依存されてインストールされるライブラリである場合にこのキーの値に `true` を指定してください +# このキー/値が設定されなかった場合のデフォルト値は `false` で、直接的にインストールするライブラリであることを表します +# このキーが存在する理由は、直接インストールされるライブラリが依存しているライブラリのライセンスを明示するためにあります +# つまり使用したいライブラリが依存しているライブラリもライセンス的に使用できることを明示するために存在し、これが `true` にされたライブラリはインストールされたライブラリ一覧としては表示されません +# +# キー: version +# 型: 文字列 +# 要否: 任意 +# 説明: ライブラリのバージョン番号 +# +# `indirect` のとおり、間接的に使用されるライブラリのライセンスもできるだけ記述してください +# バージョンに関してはコンパイラ/インタプリタと違い任意であるが、ユーザが確認できなくなるためどうしてもわからない場合などを除き記述すること +# 要否: 任意 +# 説明: 追加でインストールされるライブラリ一覧 +# ここに記述されたものは言語一覧などの表示に使用されるものでありインストールなどには影響しません +# そのためインストールスクリプトで記述されるものと一致するようにしてください +# 例: boost = { license = [ { name = 'Boost Software License', url = 'https://www.boost.org/LICENSE_1_0.txt' } ], version = '1.86.0' } + +# license clarified config, see: https://github.com/rust-lang-ja/atcoder-proposal/tree/{{ git_rev }}/clarify.toml +{{libraries}} + +# キー: filename +# 型: 文字列 +# 要否: 必須 +# 説明: 配置するファイル名 +# 提出されたソースコードがこの名前でカレントディレクトリに作成されます +# 基本的には Main + 拡張子 で統一してください +# ただしファイル名に意味がある場合やプロジェクトファイルを用いる場合は適切にファイルパスを指定してください +# 例: 'Main.c' +# 'Main.cpp' +# 'src/main.rs' +filename = 'src/main.rs' + +# キー: install +# 型: 文字列 +# 要否: 必須 +# 説明: インストールスクリプト +# このスクリプトでは言語環境のイメージを作成するために使用されます +# そのためコンパイラ/インタプリタやライブラリのインストールだけでなく、プロジェクトの生成やプリコンパイルといった、提出によらずにすべてで行うべき工程はこのインストールスクリプトで行ってください +# ネットワークアクセスができるのはこのタイミングだけです +# 後述のコンパイルスクリプト、および実行コマンドではネットワークアクセスができないため、必要なファイルがインターネットにある場合はこのスクリプトでダウンロードを行っておいてください +# +# ここで記述されたスクリプトはbashに渡されて実行されます +# シェル変数などは通常通り使用可能ですが、コンパイルスクリプト、実行コマンドには引き継がれないので注意してください +# コンパイルスクリプトにおいては同様にbashで実行されるため、同じ内容を記述してください +# 実行コマンドはシェルを介さず直接起動されるため、環境変数の修正が必要な場合は後述のenvironmentを使用してください +# +# またイメージを最小化するために、インストール作業には必要だが最終成果物として不要なものは /tmp においてください +# インストールスクリプトが終了したあとで /tmp 以下のものは削除されます +install = ''' +{{ commands }} +''' + +# キー: compile +# 型: 文字列 +# 要否: 任意 +# 説明: コンパイルスクリプト +# コンパイルを行う言語の場合はコンパイルコマンドを記入してください +# +# ここで記述されたスクリプトはbashに渡されて実行されます +# シェル変数などは通常通り使用可能ですが、実行コマンドには引き継がれないので注意してください +# 実行コマンドはシェルを介さず直接起動されるため、環境変数の修正が必要な場合は後述のenvironmentを使用してください +# +# コンパイルを行わない言語の場合は記述不要です +# ただしコンパイルを行う必要のない言語の場合でも、構文チェックなどをコンパイル代わりに行わせることが可能です +# 成功時に後述の object で指定するファイルが生成されるようにコマンドを記述してください +compile = ''' +cargo build --release --quiet --offline +''' + +# キー: object +# 型: 文字列 +# 要否: 任意 +# 説明: コンパイル成否を判断するためのファイルパス +# コンパイルが成功したかどうかの判定に行うファイルを/judgeからの相対パスで記入してください +# コンパイルの成否はこのファイルの存在で判定を行います +# コンパイラの出力内容や、コンパイラの終了コードでは判定を行いませんので注意してください +# またこの仕様を用いて、インタプリタ言語で構文チェックなどを行うことが可能です +# 例えばコンパイルコマンドとして構文チェックを行い、その成否に応じてここで指定するファイルを生成する/しないを行えば、インタプリタ言語でもコンパイルエラーで実行を中断させることが可能です +# 例: 'a.out' +# 'publish/Main' +# 'target/release/main' +object = 'target/release/main' + +# キー: environment +# 型: テーブル +# テーブル内の各キー/値は環境変数1つを表し、キーには環境変数名を、値は文字列型で環境変数の内容を記述 +# 要否: 任意 +# 説明: 実行時の環境変数 +# 実行はシェルを介さず直接実行されるためシェルと同じ方法では環境変数を設定できません +# そのため環境変数を修正する場合はenvironmentテーブル内にキー/値を記述してください +# +# デフォルトでは以下の環境変数が設定されています +# environment.PATH = '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' +# environment.HOME = '/home/runner' +# environment.LANG = 'C.UTF-8' +# environment.ATCODER = '1' +# +# ここで指定する環境変数は実行時のみ影響するものです +# インストールスクリプト、コンパイルスクリプトには影響しません +# それぞれで環境変数を変更する場合はそれぞれのスクリプト内で直接変更するようにしてください +# +# また以下の文字列は実行直前にジャッジシステムによって置換されます: +# {memory:b} 問題のメモリ制限の数値(単位: バイト) +# {memory:kb} 問題のメモリ制限の数値(単位: KiB) +# {memory:mb} 問題のメモリ制限の数値(単位: MiB) +# インタプリタ言語など、環境変数によって実行環境の設定を行う場合に使用できます +environment.RUST_BACKTRACE = '0' + +# キー: execution +# 型: 配列 +# 配列内の各要素は文字列で、実行コマンドとして渡される各引数 +# 要否: 任意 +# 説明: 実行コマンド +# 実行を行うときのコマンドを配列で指定してください +# 実行はオーバーヘッドを取り除くためにシェルなどを使わずに直接起動させます +# そのためシェルの構文などは一切使えません +# ただし以下の文字列は実行直前にジャッジシステムによって置換されます: +# {memory:b} 問題のメモリ制限の数値(単位: バイト) +# {memory:kb} 問題のメモリ制限の数値(単位: KiB) +# {memory:mb} 問題のメモリ制限の数値(単位: MiB) +# インタプリタ言語など、実行環境の設定を行う場合に使用できます +# 例: [ './a.out' ] +# [ './target/release/main' ] +# [ 'java', '-Xss{memory:mb}M', 'Main' ] +execution = [ + './target/release/main', +]