Skip to content

fix(deps): move futures-util to 0.3.34, dropping pin-utils - #273

Merged
hyperpolymath merged 1 commit into
mainfrom
claude/futures-util-drop-pin-utils
Nov 9, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
claude/futures-util-drop-pin-utils

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

RUSTSEC-2026-0441 marks pin-utils unmaintained; its upstream repository was archived on 2026-10-01. On main, cargo audit reports it through futures-util 0.3.31.

futures-util 0.3.32 and later no longer depend on pin-utils. This runs cargo update -p futures-util, which:

  • moves futures-core, futures-macro, futures-task and futures-util from 0.3.31 to 0.3.34;
  • removes pin-utils from the lockfile.

Only Cargo.lock changes.

Path in

futures-util reaches the build two ways:

  • through the GUI's accessibility chain: eframe → egui-winit → accesskit_winit → accesskit_unix;
  • through js-sys.

Verification

  • cargo audit exits 0. Its warnings drop from 5 to 4. The remaining four are the upstream-blocked unmaintained advisories, W1 and W2 in docs/UPSTREAM-DEPENDENCY-WATCH.adoc in hyperpolymath/standards.
  • cargo clippy --all-features --all-targets -- -D warnings passes.
  • cargo test --all-features passes, including the 531-test main suite.
  • futures-util 0.3.34 declares rust-version 1.71, below this crate's 1.90.

Generated by Claude Code

RUSTSEC-2026-0441 (2026-10-01) marks pin-utils unmaintained; its
repository was archived. futures-util 0.3.31 depends on it, and
0.3.32 and later no longer do. `cargo update -p futures-util` moves
futures-core, futures-macro, futures-task and futures-util to 0.3.34
and removes pin-utils. Only Cargo.lock changes.

futures-util 0.3.34 declares rust-version 1.71, below this crate's
1.90. `cargo audit` now reports only the four upstream-blocked
warnings (W1 and W2 in the standards upstream dependency watch).
`cargo clippy --all-features --all-targets -D warnings` and
`cargo test --all-features` pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Jma5ixtpeZyJRmfoSsC98u
@sonarqubecloud

sonarqubecloud Bot commented Nov 9, 2026

Copy link
Copy Markdown

@linear-code
linear-code Bot marked this pull request as ready for review November 9, 2026 13:02
Repository owner deleted a comment from coderabbitai Bot Nov 9, 2026
@hyperpolymath
hyperpolymath merged commit 39db4e3 into main Nov 9, 2026
67 checks passed
@hyperpolymath
hyperpolymath deleted the claude/futures-util-drop-pin-utils branch November 9, 2026 22:30
hyperpolymath added a commit to metadatastician/standards that referenced this pull request Nov 9, 2026
)

RUSTSEC-2026-0441 marks `pin-utils` unmaintained; its upstream
repository was archived on 2026-10-01. Two archived example lockfiles
still carry it:

- `9-archive/rhodium-standard-repositories/examples/ai-ml-project`
- `9-archive/rhodium-standard-repositories/examples/enterprise-service`

In both, it arrives by two routes: `futures-util` 0.3.31 and `hyper`
1.8.1. `futures-util` 0.3.32+ and `hyper` 1.9.0+ no longer depend on it;
I checked each release's dependency list on crates.io. `cargo update -p
futures-util -p hyper` moves them to 0.3.34 and 1.12.0 and removes
`pin-utils`. Only the two `Cargo.lock` files change; no `Cargo.toml` in
the archive is edited.

## MSRV note

`enterprise-service` declares `rust-version = "1.70"`, and
`futures-util` 0.3.34 declares 1.71. Before this change the lockfile
already needed Rust 1.88 (`time` 0.3.47), so the declared value was
already stale. This bump does not raise the effective requirement. Every
`futures-util` release without `pin-utils` needs 1.71, so there is no
lower-MSRV route.

## Verification

- `cargo check --lib --bins --tests` passes in both examples.
- `enterprise-service`'s 6 tests pass.
- Neither lockfile contains `pin-utils` afterwards.
- `enterprise-service`'s `api_benchmarks` bench does not compile,
identically before and after this change: `criterion`'s `to_async` needs
its `async_tokio` feature. That failure is pre-existing and this PR
leaves it alone.

Related: hyperpolymath/panic-attack#273 fixes the same advisory in
panic-attack.

---
_Generated by [Claude
Code](https://claude.ai/code/session_01Jma5ixtpeZyJRmfoSsC98u)_

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants