From ea9cce0a1d060146c5a9d20f4dc43664510f22bd Mon Sep 17 00:00:00 2001 From: Dave Grantham Date: Thu, 8 Oct 2026 16:59:22 -0600 Subject: [PATCH 1/2] update msrv Signed-off-by: Dave Grantham --- .github/workflows/rust.yml | 6 +++--- Cargo.toml | 2 +- README.md | 2 +- cli/Cargo.toml | 2 +- fuzz/Cargo.toml | 2 +- tests/lib.rs | 10 +++++----- tests/security.rs | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 191a249..db6de17 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -34,14 +34,14 @@ jobs: run: cargo test --verbose --all-features msrv: - name: Verify MSRV (1.85) + name: Verify MSRV (1.99) runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Install Rust Toolchain (1.85) - uses: dtolnay/rust-toolchain@1.85.0 + - name: Install Rust Toolchain (1.99) + uses: dtolnay/rust-toolchain@1.99.0 - name: Check run: cargo check --all-features diff --git a/Cargo.toml b/Cargo.toml index 11d7d1e..7d11a86 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ name = "multi-base" version = "1.0.4" authors = ["Friedel Ziegelmayer ", "Dave Grantham "] edition = "2024" -rust-version = "1.85" +rust-version = "1.99" license = "MIT" readme = "README.md" description = "multibase in rust" diff --git a/README.md b/README.md index f3ab451..f740ea2 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ For `no_std` environments: multi-base = { version = "1.1", default-features = false } ``` -MSRV: Rust 1.85 (Edition 2024). +MSRV: Rust 1.99 (Edition 2024). ## Usage diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 18326f3..e242ae2 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -7,7 +7,7 @@ authors = [ "Dave Grantham ", ] edition = "2024" -rust-version = "1.85" +rust-version = "1.99" license = "MIT" description = "Command-line multibase encoder/decoder" repository = "https://github.com/cryptidtech/multi-base.git" diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index 82e44f1..d4b613d 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -3,7 +3,7 @@ name = "multibase-fuzz" version = "0.0.0" publish = false edition = "2024" -rust-version = "1.85" +rust-version = "1.99" [package.metadata] cargo-fuzz = true diff --git a/tests/lib.rs b/tests/lib.rs index a9fe35a..dbc5066 100644 --- a/tests/lib.rs +++ b/tests/lib.rs @@ -304,11 +304,11 @@ fn error_traits() { // Test Debug let debug_str = format!("{error:?}"); - assert!(!debug_str.is_empty()); + assert_ne!(debug_str, ""); // Test Display (from thiserror) let display_str = format!("{error}"); - assert!(!display_str.is_empty()); + assert_ne!(display_str, ""); assert!(display_str.contains("empty")); } @@ -405,7 +405,7 @@ fn test_encode_into_all_bases() { for base in bases { encode_into(base, input, &mut buffer); assert!(buffer.starts_with(base.code())); - assert!(!buffer.is_empty()); + assert_ne!(buffer, ""); } } @@ -562,7 +562,7 @@ fn test_decode_into_loop_performance() { // This should reuse the buffer across iterations for input in inputs { let _base = decode_into(input, true, &mut buffer).unwrap(); - assert!(!buffer.is_empty()); + assert_ne!(buffer, Vec::::new()); } } @@ -1092,7 +1092,7 @@ fn test_all_error_variants() { // All errors should support Debug let err = Error::EmptyInput; let debug = format!("{err:?}"); - assert!(!debug.is_empty()); + assert_ne!(debug, ""); } /// Test concurrent encoding/decoding doesn't cause issues. diff --git a/tests/security.rs b/tests/security.rs index 612832a..1661ba3 100644 --- a/tests/security.rs +++ b/tests/security.rs @@ -252,7 +252,7 @@ fn test_capacity_calculation_safety() { // Test that capacity calculations don't overflow let encoded = encode(Base::Base64, &data); - assert!(!encoded.is_empty()); + assert_ne!(encoded, ""); // Verify decode works let (base, decoded) = decode(&encoded, true).unwrap(); From ba281e83482f0ae3d1d820c7aaef2b4cdac1924f Mon Sep 17 00:00:00 2001 From: Dave Grantham Date: Thu, 8 Oct 2026 17:44:59 -0600 Subject: [PATCH 2/2] version update Signed-off-by: Dave Grantham --- .gitignore | 3 ++ CHANGELOG.md | 12 +++++ Cargo.lock | 136 +++++++++++++++++++++++++-------------------------- Cargo.toml | 4 +- 4 files changed, 85 insertions(+), 70 deletions(-) diff --git a/.gitignore b/.gitignore index e28d108..d298bd7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ target *.bk + +plan.md +session.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 16113c1..f044d8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,17 @@ All notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.1.0] - 2026-10-08 + +### Changed +- Raised `rust-version` from 1.85 to 1.99 in `Cargo.toml`. The `cli` and + `fuzz` manifests declare the same floor. The CI MSRV job now installs + Rust 1.99.0. The README MSRV line reads 1.99. A minor release carries + this change. A raised MSRV is possibly breaking under the Cargo book + rules. +- Fixed the clippy 0.1.99 `assert_is_empty` findings in the integration + and security tests. No public API changes. + ## [1.0.4] - 2026-07-29 ### Changed @@ -164,6 +175,7 @@ Rust 1.85 (Edition 2024). 3. `#[non_exhaustive]` added to `Error` enum. 4. Edition updated to 2021. +[1.1.0]: https://github.com/cryptidtech/multi-base/compare/v1.0.4...v1.1.0 [1.0.4]: https://github.com/cryptidtech/multi-base/compare/v1.0.3...v1.0.4 [1.0.3]: https://github.com/cryptidtech/multi-base/compare/v1.0.2...v1.0.3 [1.0.2]: https://github.com/cryptidtech/multi-base/compare/v1.0.1...v1.0.2 diff --git a/Cargo.lock b/Cargo.lock index e27225c..f521d9b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -40,9 +40,9 @@ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "base-x" -version = "0.2.11" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" +checksum = "c88e1890b4717f1cce48d42b0836d6b9c6c96136f5ab8922ae4626f4eaf69638" [[package]] name = "bit-set" @@ -61,9 +61,9 @@ checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bitflags" -version = "2.13.1" +version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" [[package]] name = "bumpalo" @@ -79,9 +79,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.4.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "509591b7bcd67f4ef775afad7662703b4935daaa6ec0e5605cfb1090b32a2b6d" +checksum = "f74872d07caf508b30a21f6836e7d7016a2eaf7d9ff4f48deaa58cd8a0407630" dependencies = [ "find-msvc-tools", "shlex", @@ -89,15 +89,15 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" [[package]] name = "chacha20" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81" +checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" dependencies = [ "cfg-if", "cpufeatures", @@ -133,18 +133,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.6.6" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca" +checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.6.6" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889" +checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d" dependencies = [ "anstyle", "clap_lex", @@ -152,15 +152,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" +checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486" [[package]] name = "cpufeatures" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" dependencies = [ "libc", ] @@ -202,9 +202,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb" +checksum = "622f3fc73690be383c7214310406f28a90e6edeadc3cea882f9d71e495b9711a" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -212,18 +212,18 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.20" +version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" +checksum = "dc74980687109a3b14c72fd458107bf0baa1da1a1a805e178d15501ba9b86d9d" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" +checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" [[package]] name = "crunchy" @@ -254,14 +254,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c54e03a951783e8b327515db3f2a2fd0e3bed362a96b066f341ce66ed49b4ead" dependencies = [ "data-encoding", - "syn 3.0.3", + "syn 3.0.6", ] [[package]] name = "either" -version = "1.17.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" +checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" [[package]] name = "errno" @@ -281,9 +281,9 @@ checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" [[package]] name = "find-msvc-tools" -version = "0.1.11" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d45db016d36b838f563236e9193d0ee6ce38f3f68b6c94e914b4929c96bbb890" +checksum = "aedcfb3409746eddb02b9e19ebda1c3394f759a152e48ee875a0844d1b955484" [[package]] name = "fnv" @@ -367,9 +367,9 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.104" +version = "0.3.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a" +checksum = "7883d941dae510fb2d978fc3fe018c71c9e2892fd38854de3e8b92c2e5ad9cc5" dependencies = [ "cfg-if", "futures-util", @@ -378,9 +378,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.189" +version = "0.2.190" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" +checksum = "ce5d3ddc6d3fa000eb1536d85e147bfe31aacaba692ed6a876f95cb7c855be78" [[package]] name = "linux-raw-sys" @@ -396,14 +396,14 @@ checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "multi-base" -version = "1.0.4" +version = "1.1.0" dependencies = [ "base-x", "criterion", "data-encoding", "data-encoding-macro", "proptest", - "rand 0.10.2", + "rand 0.10.3", "thiserror", ] @@ -548,9 +548,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" +checksum = "65c9fb96cbc91e3478eaae79a69fcd3f1ae4ad052e471fe6732fff548984b4af" dependencies = [ "chacha20", "getrandom 0.4.3", @@ -642,9 +642,9 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "rustix" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +checksum = "891efababe418670775f199f0d233d84843c227a0949a883ce15b37c78d6629d" dependencies = [ "bitflags", "errno", @@ -707,7 +707,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.6", ] [[package]] @@ -748,9 +748,9 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.3" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee" dependencies = [ "proc-macro2", "quote", @@ -772,22 +772,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.20" +version = "2.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f" +checksum = "09e52cb86a36cede5cb101bf8908837b3e4c6e5e59fe7fd85c23fb56200d189e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "2.0.20" +version = "2.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" +checksum = "fe5197923287db20a58125f0bc85c062f7f2c892de97b18c356f9efb14b28524" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.6", ] [[package]] @@ -808,9 +808,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.24" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954" [[package]] name = "wait-timeout" @@ -833,18 +833,18 @@ dependencies = [ [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.4+wasi-0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.127" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70" +checksum = "9bb54f33acc68fd454578d9820b0bde1a1a3d17aa17bb7b6595806d02886d409" dependencies = [ "cfg-if", "once_cell", @@ -855,9 +855,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.127" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1" +checksum = "2e29d0c35b16e224a7eeb5cd2d25e3e1968fbd65604117b44d3b789d00ee8535" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -865,31 +865,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.127" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284" +checksum = "6f501a8bc3719dba86ef8ae4728879c08001bea749eb1333ac5b91e040e2a6b7" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.6", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.127" +version = "0.2.129" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf" +checksum = "23f0c9c52aa7cd7d77769a4cfe2a9adb1b331f489a41d912ce14513d5ab995c6" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.104" +version = "0.3.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c435338968042f4f59a557f690a253676d47ce13ceb55d70100e7facf6620a30" +checksum = "88261b9deccee56594c11a3460c462c41f58d148598fe70ad77070126a68aba4" dependencies = [ "js-sys", "wasm-bindgen", @@ -943,24 +943,24 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.46.0" +version = "0.57.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" [[package]] name = "zerocopy" -version = "0.8.56" +version = "0.8.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb" +checksum = "86502bf56ac7c77571a32e2647bb2a15894565e981fb2a48d7bde2d91c965a9d" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.56" +version = "0.8.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1" +checksum = "5457206954b06561e2608c7e19cf58b1926586d999c246eebe4502f7e2039d1a" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 7d11a86..2f410f0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multi-base" -version = "1.0.4" +version = "1.1.0" authors = ["Friedel Ziegelmayer ", "Dave Grantham "] edition = "2024" rust-version = "1.99" @@ -16,7 +16,7 @@ default = ["std"] std = ["data-encoding/std"] [dependencies] -base-x = { version = "0.2", default-features = false } +base-x = { version = "0.3", 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 }