-
Notifications
You must be signed in to change notification settings - Fork 636
Open
Description
Summary
Building LanceDB 0.22.2 on Rust 1.91.0 surfaces future-incompatibility warnings from num-bigint-dig 0.8.4. The crate is pulled transitively via rsa → reqsign → opendal. Builds still pass today, but this will become a hard error in a future Rust release.
Environment
- Rust 1.91.0 (stable)
- OS: Fedora 42
- lancedb: 0.22.2
- lance: 0.38.2
- opendal: 0.54.1
- reqsign: 0.16.5
- rsa: 0.9.8
- num-bigint-dig: 0.8.4
Dependency Path
cargo tree -i num-bigint-digshows:
num-bigint-dig v0.8.4
└── rsa v0.9.8
└── reqsign v0.16.5
└── opendal v0.54.1
├── lance-io v0.38.2
│ ├── lance v0.38.2
│ │ ├── lance-namespace v0.0.18
│ │ │ └── lancedb v0.22.2
...
│ │ ├── lancedb v0.22.2 (*)
...
│ ├── lance-file v0.38.2
│ │ ├── lance v0.38.2 (*)
│ │ ├── lance-index v0.38.2
│ │ │ ├── lance v0.38.2 (*)
│ │ │ └── lancedb v0.22.2 (*)
│ │ └── lance-table v0.38.2
│ │ ├── lance v0.38.2 (*)
│ │ ├── lance-index v0.38.2 (*)
│ │ └── lancedb v0.22.2 (*)
│ ├── lance-index v0.38.2 (*)
│ ├── lance-table v0.38.2 (*)
│ └── lancedb v0.22.2 (*)
├── lance-namespace v0.0.18 (*)
└── object_store_opendal v0.54.0
└── lance-io v0.38.2 (*)
Reproduction
- Build on 1.91 and generate report:
cargo report future-incompatibilities --id 1
Impact
- Currently: warnings on Rust 1.91.
- Future: hard errors in a later Rust release, breaking downstream builds.
Tried
cargo update -p opendal→ 0.54.1 (still resolves rsa 0.9.8 → num-bigint-dig 0.8.4).cargo update -p rsaand-p reqsign→ no newer compatible versions under current constraints.- Note:
reqsignhas a newer release (0.18.0), but opendal 0.54.x appears to constrain to 0.16.x.
Request
- Please bump the dependency chain so num-big-dig is not pulled when upstream update become available
- I can file upstream reports too if you prefer.
Output
cargo report future-incompatibilities --id 1
The following warnings were discovered during the build. These warnings are an
indication that the packages contain code that will become an error in a
future release of Rust. These warnings typically cover changes to close
soundness problems, unintended or undocumented behavior, or critical problems
that cannot be fixed in a backwards-compatible fashion, and are not expected
to be in wide use.
Each warning should contain a link for more information on what the warning
means and how to resolve it.
To solve this problem, you can try the following approaches:
- If the issue is not solved by updating the dependencies, a fix has to be
implemented by those dependencies. You can help with that by notifying the
maintainers of this problem (e.g. by creating a bug report) or by proposing a
fix to the maintainers (e.g. by creating a pull request):
- num-bigint-dig@0.8.4
- Repository: https://github.com/dignifiedquire/num-bigint
- Detailed warning command: `cargo report future-incompatibilities --id 1 --package num-bigint-dig@0.8.4`
- If waiting for an upstream fix is not an option, you can use the `[patch]`
section in `Cargo.toml` to use your own version of the dependency. For more
information, see:
https://doc.rust-lang.org/cargo/reference/overriding-dependencies.html#the-patch-section
The package `num-bigint-dig v0.8.4` currently triggers the following future incompatibility lints:
> warning: macro `vec` is private
> --> /home/fred/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/biguint.rs:490:22
> |
> 490 | BigUint::new(vec![1])
> | ^^^
> |
> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
> = note: for more information, see issue #120192 <https://github.com/rust-lang/rust/issues/120192>
>
> warning: macro `vec` is private
> --> /home/fred/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/biguint.rs:2005:9
> |
> 2005 | vec![0]
> | ^^^
> |
> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
> = note: for more information, see issue #120192 <https://github.com/rust-lang/rust/issues/120192>
>
> warning: macro `vec` is private
> --> /home/fred/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/biguint.rs:2027:16
> |
> 2027 | return vec![b'0'];
> | ^^^
> |
> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
> = note: for more information, see issue #120192 <https://github.com/rust-lang/rust/issues/120192>
>
> warning: macro `vec` is private
> --> /home/fred/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/biguint.rs:2313:13
> |
> 2313 | vec![0]
> | ^^^
> |
> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
> = note: for more information, see issue #120192 <https://github.com/rust-lang/rust/issues/120192>
>
> warning: macro `vec` is private
> --> /home/fred/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/prime.rs:138:22
> |
> 138 | let mut moduli = vec![BigUint::zero(); prime_limit];
> | ^^^
> |
> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
> = note: for more information, see issue #120192 <https://github.com/rust-lang/rust/issues/120192>
>
> warning: macro `vec` is private
> --> /home/fred/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/bigrand.rs:319:25
> |
> 319 | let mut bytes = vec![0u8; bytes_len];
> | ^^^
> |
> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
> = note: for more information, see issue #120192 <https://github.com/rust-lang/rust/issues/120192>
>
The package `num-bigint-dig v0.8.4` currently triggers the following future incompatibility lints:
> warning: macro `vec` is private
> --> /home/fred/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/biguint.rs:490:22
> |
> 490 | BigUint::new(vec![1])
> | ^^^
> |
> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
> = note: for more information, see issue #120192 <https://github.com/rust-lang/rust/issues/120192>
>
> warning: macro `vec` is private
> --> /home/fred/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/biguint.rs:2005:9
> |
> 2005 | vec![0]
> | ^^^
> |
> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
> = note: for more information, see issue #120192 <https://github.com/rust-lang/rust/issues/120192>
>
> warning: macro `vec` is private
> --> /home/fred/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/biguint.rs:2027:16
> |
> 2027 | return vec![b'0'];
> | ^^^
> |
> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
> = note: for more information, see issue #120192 <https://github.com/rust-lang/rust/issues/120192>
>
> warning: macro `vec` is private
> --> /home/fred/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/biguint.rs:2313:13
> |
> 2313 | vec![0]
> | ^^^
> |
> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
> = note: for more information, see issue #120192 <https://github.com/rust-lang/rust/issues/120192>
>
> warning: macro `vec` is private
> --> /home/fred/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/prime.rs:138:22
> |
> 138 | let mut moduli = vec![BigUint::zero(); prime_limit];
> | ^^^
> |
> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
> = note: for more information, see issue #120192 <https://github.com/rust-lang/rust/issues/120192>
>
> warning: macro `vec` is private
> --> /home/fred/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/num-bigint-dig-0.8.4/src/bigrand.rs:319:25
> |
> 319 | let mut bytes = vec![0u8; bytes_len];
> | ^^^
> |
> = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
> = note: for more information, see issue #120192 <https://github.com/rust-lang/rust/issues/120192>
>
Metadata
Metadata
Assignees
Labels
No labels