From 7fe8108d9b7148ec07893d810e9b9c34f0344ee8 Mon Sep 17 00:00:00 2001 From: Dave Grantham Date: Mon, 17 Aug 2026 22:02:33 -0600 Subject: [PATCH] fix workflows Signed-off-by: Dave Grantham --- .github/workflows/build.yml | 163 ----------------------------- .github/workflows/generated-pr.yml | 14 --- .github/workflows/rust.yml | 103 ++++++++++++++++++ .github/workflows/stale.yml | 14 --- Cargo.lock | 90 ++++++++-------- Cargo.toml | 8 +- 6 files changed, 152 insertions(+), 240 deletions(-) delete mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/generated-pr.yml create mode 100644 .github/workflows/rust.yml delete mode 100644 .github/workflows/stale.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 1b95a0c..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,163 +0,0 @@ -name: build - -on: - push: - pull_request: - schedule: - - cron: '0 3 * * *' - workflow_dispatch: - -jobs: - build: - name: Build - strategy: - fail-fast: false - matrix: - platform: [ubuntu-latest, macos-latest, windows-latest] - toolchain: [stable] - runs-on: ${{ matrix.platform }} - - steps: - - name: Checkout Sources - uses: actions/checkout@v5 - - - name: Cache Dependencies & Build Outputs - uses: actions/cache@v4 - with: - path: ~/.cargo - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - - - name: Install Rust Toolchain - uses: dtolnay/rust-toolchain@stable - with: - toolchain: ${{ matrix.toolchain }} - components: rustfmt, clippy - - - name: Check Code Format - run: cargo fmt --all -- --check - shell: bash - - - name: Code Lint - run: cargo clippy --all-targets --all-features --workspace -- -D warnings - shell: bash - - - name: Test - run: cargo test --all-features --workspace - shell: bash - - ensure_no_std: - name: Ensure no_std - runs-on: ubuntu-latest - - steps: - - name: Checkout Sources - uses: actions/checkout@v5 - - - name: Install Rust Toolchain - uses: dtolnay/rust-toolchain@nightly - with: - targets: thumbv6m-none-eabi - - - name: Build - run: cargo build --no-default-features --target thumbv6m-none-eabi - shell: bash - - msrv: - name: Verify MSRV (1.85) - runs-on: ubuntu-latest - - steps: - - name: Checkout Sources - uses: actions/checkout@v5 - - - name: Install Rust Toolchain (1.85) - uses: dtolnay/rust-toolchain@1.85.0 - - - name: Check - run: cargo check --all-features --workspace - shell: bash - - - name: Check CLI - run: cargo check --manifest-path cli/Cargo.toml - shell: bash - - audit: - name: Security Audit - runs-on: ubuntu-latest - - steps: - - name: Checkout Sources - uses: actions/checkout@v5 - - - name: Install Rust Toolchain - uses: dtolnay/rust-toolchain@stable - - - name: Install cargo-audit - run: cargo install cargo-audit - shell: bash - - - name: Run cargo audit - run: cargo audit - shell: bash - - coverage: - name: Code Coverage - runs-on: ubuntu-latest - steps: - - name: Checkout Sources - uses: actions/checkout@v5 - - - name: Install Rust Toolchain - uses: dtolnay/rust-toolchain@stable - - - name: Generate Code Coverage - run: | - cargo install cargo-tarpaulin - cargo tarpaulin --all-features --out Xml - shell: bash - - - name: Upload Code Coverage - uses: codecov/codecov-action@v5 - - fuzz: - name: Fuzz - runs-on: ubuntu-latest - # Bounded fuzzing is expensive. Only run on schedule or manual dispatch - # to avoid exhausting CI minutes; regular push/PR CI already covers - # fmt, clippy, audit, MSRV, no_std, and coverage. - if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' - - steps: - - name: Checkout Sources - uses: actions/checkout@v5 - - - name: Install Rust Toolchain (nightly) - uses: dtolnay/rust-toolchain@nightly - - - name: Cache Dependencies & Build Outputs - uses: actions/cache@v4 - with: - path: | - ~/.cargo - target - fuzz/target - key: ${{ runner.os }}-fuzz-${{ hashFiles('**/Cargo.lock') }} - - - name: Install cargo-fuzz - run: cargo install cargo-fuzz - shell: bash - - - name: Run fuzz_decode (60s) - run: cargo fuzz run fuzz_decode -- -max_total_time=60 - working-directory: fuzz - shell: bash - - - name: Run fuzz_encode (60s) - run: cargo fuzz run fuzz_encode -- -max_total_time=60 - working-directory: fuzz - shell: bash - - - name: Run fuzz_roundtrip (60s) - run: cargo fuzz run fuzz_roundtrip -- -max_total_time=60 - working-directory: fuzz - shell: bash diff --git a/.github/workflows/generated-pr.yml b/.github/workflows/generated-pr.yml deleted file mode 100644 index b8c5cc6..0000000 --- a/.github/workflows/generated-pr.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: Close Generated PRs - -on: - schedule: - - cron: '0 0 * * *' - workflow_dispatch: - -permissions: - issues: write - pull-requests: write - -jobs: - stale: - uses: ipdxco/unified-github-workflows/.github/workflows/reusable-generated-pr.yml@v1 diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 0000000..191a249 --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,103 @@ +name: Rust + +on: + push: + branches: ["master"] + pull_request: + branches: ["master"] + +env: + CARGO_TERM_COLOR: always + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install Rust Toolchain + uses: dtolnay/rust-toolchain@stable + with: + components: rustfmt, clippy + + - name: Check Code Format + run: cargo fmt --all -- --check + + - name: Code Lint + run: cargo clippy --all-targets --all-features -- -D warnings + + - name: Build + run: cargo build --verbose --all-features + + - name: Run tests + run: cargo test --verbose --all-features + + msrv: + name: Verify MSRV (1.85) + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install Rust Toolchain (1.85) + uses: dtolnay/rust-toolchain@1.85.0 + + - name: Check + run: cargo check --all-features + + ensure_no_std: + name: Ensure no_std + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install Rust Toolchain (nightly) + uses: dtolnay/rust-toolchain@nightly + with: + targets: thumbv6m-none-eabi + + - name: Build (no_std) + run: cargo build --no-default-features --target thumbv6m-none-eabi + shell: bash + + coverage: + name: Coverage + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install Rust Toolchain (stable) + uses: dtolnay/rust-toolchain@stable + with: + components: llvm-tools-preview + + - name: Install cargo-llvm-cov + run: cargo install cargo-llvm-cov + + - name: Run coverage + run: cargo llvm-cov --all-features --workspace --lcov --output-path lcov.info + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v4 + with: + files: lcov.info + fail_ci_if_error: false + + audit: + name: Security Audit + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install Rust Toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Install cargo-audit + run: cargo install cargo-audit + + - name: Run cargo audit + run: cargo audit diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index 7c955c4..0000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: Close Stale Issues - -on: - schedule: - - cron: '0 0 * * *' - workflow_dispatch: - -permissions: - issues: write - pull-requests: write - -jobs: - stale: - uses: ipdxco/unified-github-workflows/.github/workflows/reusable-stale-issue.yml@v1 diff --git a/Cargo.lock b/Cargo.lock index 6089bff..e27225c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 4 [[package]] name = "aho-corasick" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" dependencies = [ "memchr", ] @@ -79,9 +79,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.4.0" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5add81bb678e6cb321aff7fa0dc7689ad82b112dbc032cea19f91d6b8e3582b9" +checksum = "509591b7bcd67f4ef775afad7662703b4935daaa6ec0e5605cfb1090b32a2b6d" dependencies = [ "find-msvc-tools", "shlex", @@ -133,18 +133,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.6.4" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91e0c145792ef73a6ad36d27c75ac09f1832222a3c209689d90f534685ee5b7" +checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.6.2" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09628afdcc538b57f3c6341e9c8e9970f18e4a481690a64974d7023bd33548b" +checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889" dependencies = [ "anstyle", "clap_lex", @@ -233,15 +233,15 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "data-encoding" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" +checksum = "4583a4551df46e2792f82ceeac45e850d2e2d5debba0b91f102385cda5b11f06" [[package]] name = "data-encoding-macro" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3259c913752a86488b501ed8680446a5ed2d5aeac6e596cb23ba3800768ea32c" +checksum = "c6a127ecbb3c4632e1525380e04c0c3fcf8dcb44d32a79ea290d8a36906edcd8" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -249,12 +249,12 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.18" +version = "0.1.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccc2776f0c61eca1ca32528f85548abd1a4be8fb53d1b21c013e4f18da1e7090" +checksum = "c54e03a951783e8b327515db3f2a2fd0e3bed362a96b066f341ce66ed49b4ead" dependencies = [ "data-encoding", - "syn 2.0.119", + "syn 3.0.3", ] [[package]] @@ -281,9 +281,9 @@ checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" [[package]] name = "find-msvc-tools" -version = "0.1.9" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890" [[package]] name = "fnv" @@ -293,21 +293,21 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "futures-core" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" +checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" [[package]] name = "futures-task" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" +checksum = "cd417de3d1d015fc3bfd2b1ea46dfc7bab72ef86f1cc7cc9c78e728b34a6d1fd" [[package]] name = "futures-util" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +checksum = "0d50a92467f8ba5dd6e3ee5d4bd04d73ab2e4e1c44474a0674821dfce14b79bc" dependencies = [ "futures-core", "futures-task", @@ -367,9 +367,9 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.103" +version = "0.3.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102" +checksum = "0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a" dependencies = [ "cfg-if", "futures-util", @@ -625,9 +625,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.16" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fcfdb36bda0c880c5931cdc7a2bcdc8ba4556847b9d912bca70bc94708711ad" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", "memchr", @@ -772,18 +772,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.19" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9" +checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.19" +version = "2.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd" +checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", @@ -842,9 +842,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4" +checksum = "1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70" dependencies = [ "cfg-if", "once_cell", @@ -855,9 +855,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1" +checksum = "77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -865,9 +865,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e" +checksum = "e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284" dependencies = [ "bumpalo", "proc-macro2", @@ -878,18 +878,18 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.126" +version = "0.2.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24" +checksum = "7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.103" +version = "0.3.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8622dcb61c0bcc9fffa6938bed81210af2da9a7e4a1a834b2e37a59b6dfb6141" +checksum = "c435338968042f4f59a557f690a253676d47ce13ceb55d70100e7facf6620a30" dependencies = [ "js-sys", "wasm-bindgen", @@ -949,18 +949,18 @@ checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "zerocopy" -version = "0.8.55" +version = "0.8.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5a105cd7b140f6eeec8acff2ea38135d3cab283ada58540f629fe51e46696eb" +checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.55" +version = "0.8.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe976fb70c78cd64cccfe3a6fc142244e8a77b70959b30faf9d0ac37ee228eb" +checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 6d61a08..11d7d1e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,14 +16,14 @@ default = ["std"] std = ["data-encoding/std"] [dependencies] -base-x = { version = "0.2.7", default-features = false } -data-encoding = { version = "2.3.1", default-features = false, features = ["alloc"] } -data-encoding-macro = "0.1.9" +base-x = { version = "0.2", default-features = false } +data-encoding = { version = "2.11", default-features = false, features = ["alloc"] } +data-encoding-macro = "0.1" thiserror = { version = "2.0", default-features = false } [dev-dependencies] criterion = { version = "0.8", features = ["html_reports"] } -proptest = "1.4" +proptest = "1.11" rand = "0.10" [lints.clippy]