Deprecate async-std-rt and document reqwless upgrade blocker#130
Deprecate async-std-rt and document reqwless upgrade blocker#130
Conversation
c59fa5f to
761b32b
Compare
761b32b to
96bdb61
Compare
96bdb61 to
695145c
Compare
|
Can you document this change in CHANGELOG.md? This is somewhat still a breaking change imo since previously working code will not work anymore before switching |
31eee08 to
510a127
Compare
510a127 to
4538380
Compare
…cker Replace async-std sleep implementation with a deprecation warning and runtime panic. Using compile_error! would break --all-features builds (including CI clippy checks), so instead we emit a deprecation warning at compile time and panic at runtime if the feature is actually exercised. Also document in Cargo.toml that the atomic-polyfill advisory (RUSTSEC-2023-0089) is blocked upstream on a reqwless update. Closes #126 Partially addresses #111
… and reqwless blocker
…t deprecation async-std has been discontinued (RUSTSEC-2025-0052). Using panic!() inside a #[cfg(feature = "async-std-rt")] block caused clippy to report an unreachable statement on the subsequent futures-rt block when --all-features was used, because panic!() is a diverging expression. Replace the runtime panic with a module-level compile_error!() so: - Users get a clear compile-time message instead of a runtime panic - No unreachable-code lint is triggered (compile_error! is at module level) - The CI clippy step now uses an explicit feature list excluding async-std-rt (--all-features would always fail since compile_error! fires unconditionally)
1719ffc to
563c441
Compare
alloc::boxed::Box is only used by XRPLWebSocketError which is gated on feature = "websocket". Without the websocket gate, building with only json-rpc produces an unused import warning.
There was a problem hiding this comment.
A few issues flagged inline: narrowed cfg guard on Box import risks no_std breakage, a misleading comment calls a compile-time error a runtime panic, two supply-chain advisories (RUSTSEC-2023-0089, RUSTSEC-2025-0052) lack CI suppression/tracking entries, and the hardcoded Clippy feature list needs a sync reminder.
Review by Claude Opus 4.6 · Prompt: V13
- Cargo.toml: correct comment to say "compile_error" not "runtime panic" - build_and_lint.yml: add note for contributors to manually add new features
There was a problem hiding this comment.
Four follow-up issues flagged inline: two related to the async-std dep still being resolved by Cargo despite the compile_error! guard, one for the unresolved atomic-polyfill advisory (RUSTSEC-2023-0089), and one for the hardcoded Clippy feature list requiring manual upkeep.
Review by Claude Opus 4.6 · Prompt: V13
|
Done in |
High Level Overview of Change
async-std-rtfeature with acompile_error!directing users tosmol-rtreqwless0.13.0 pinsembedded-tls0.17.0 which still depends onatomic-polyfill, and that this is blocked upstreamCloses #126
Partially addresses #111
Context of Change
async-std (#126): The
async-stdcrate has been officially discontinued (RUSTSEC-2025-0052). Rather than silently removing the feature (which would be a breaking change for anyone who has it in theirCargo.toml), this replaces the runtime implementation with acompile_error!that tells users to switch tosmol-rt. Theasync-stddependency is retained inCargo.tomlso the feature gate still resolves -- it just immediately errors at compile time with a clear message.atomic-polyfill (#111): The advisory (RUSTSEC-2023-0089) comes from
embedded-tls0.17.0, which is pulled in byreqwless0.13.0. Newer versions ofembedded-tlshave migrated toportable-atomic, butreqwless0.13.0 pins the old version. There is no compatiblereqwlessrelease that fixes this yet. Added a comment inCargo.tomldocumenting the situation so it's tracked in-tree rather than only in the issue tracker.Type of Change
Before / After
Before:
async-std-rtfeature compiles and runs using a discontinued runtimecargo auditreports RUSTSEC-2025-0052 (async-std) and RUSTSEC-2023-0089 (atomic-polyfill)After:
async-std-rtproduces a clear compile-time error: "The async-std-rt feature is deprecated. async-std has been discontinued (RUSTSEC-2025-0052). Use smol-rt instead."atomic-polyfillsituation documented in Cargo.toml (upstream-blocked on reqwless update)cargo auditadvisory count reducedTest Plan