chore(deps): bring every workspace dependency to its newest published version - #991
Merged
Conversation
… version
55 workspace dependencies move, two of them across a major: compact_str 0.9 to
0.10 and libloading 0.8.9 to 0.9.0. approx goes to 0.6.0-rc2, which is the
newest thing approx has published; 0.5.1 dates from 2022.
libloading 0.9 moved the dlerror text out of Display and behind source, so the
hot reloader's "could not open module: {e}" reduced every dlopen failure to the
words "dlopen failed". host.rs now prints the platform's own message and
implements Error::source, and a new test pins both.
glam, libc, rustls and rustls-webpki stay where they are, each with a comment
next to it saying what holds it back.
nix flake update moves index; nixpkgs and rust-overlay were already at their
upstream heads. rust-toolchain.toml stays on nightly-2026-07-27, which is the
newest nightly upstream has published.
Benchmark Results for generalComparing to 3855d34 |
This was referenced Jul 27, 2026
deny.toml lists 20 skips, 1 unmatched skip and 2 advisory ignores that no longer match anything
#993
Open
Codecov Report❌ Patch coverage is
@@ Coverage Diff @@
## main #991 +/- ##
==========================================
+ Coverage 41.11% 41.17% +0.06%
==========================================
Files 241 241
Lines 25738 25747 +9
Branches 1004 1004
==========================================
+ Hits 10581 10601 +20
+ Misses 14939 14928 -11
Partials 218 218
🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What moved
55 workspace dependencies, from
cargo upgrade --incompatiblepluscargo update. Two crossed a major, and one is a prerelease:The other 52 are within-major: anyhow 1.0.98 to 1.0.104, arc-swap 1.7.1 to 1.9.2, arrayvec 0.7.4 to 0.7.8, bitvec 1.0.1 to 1.1.1, boxcar 0.2.13 to 0.2.14, bumpalo 3.16 to 3.20, bytemuck 1.23.0 to 1.25.2, bytes 1.8.0 to 1.12.1, clap 4.5.38 to 4.6.4, colored 3.0.0 to 3.1.1, derive_more 2.0.1 to 2.1.1, enumset 1.1.6 to 1.1.14, fast_hilbert 2.0.0 to 2.1.0, fastrand 2.1.0 to 2.5.0, flate2 1.1.1 to 1.1.9, futures-util 0.3.31 to 0.3.33, humantime 2.1.0 to 2.4.0, indexmap 2.9.0 to 2.14.0, libc 0.2.172 to 0.2.189, libdeflater 1.24.0 to 1.25.2, memmap2 0.9.5 to 0.9.11, mio 1.0.3 to 1.2.2, num_cpus 1.16.0 to 1.17.0, once_cell 1.21.3 to 1.21.4, ordered-float 5.0.0 to 5.3.0, papaya 0.2.1 to 0.2.4, parking_lot 0.12.3 to 0.12.5, plotters 0.3.6 to 0.3.7, plotters-bitmap 0.3.6 to 0.3.7, proc-macro2 1.0.95 to 1.0.107, proptest 1.5.0 to 1.11.0, quote 1.0.39 to 1.0.47, rayon 1.10.0 to 1.12.0, rkyv 0.8.8 to 0.8.17, rustc-hash 2.0.0 to 2.1.3, rustls 0.23.31 to 0.23.42, rustls-pki-types 1.12.0 to 1.15.1, rustls-webpki 0.103.4 to 0.103.13, serde 1.0.217 to 1.0.229, serde_json 1.0.140 to 1.0.151, slotmap 1.0.7 to 1.1.1, syntect 5.2.0 to 5.3.0, tar 0.4.41 to 0.4.46, thiserror 2.0.12 to 2.0.19, thread_local 1.1.8 to 1.1.10, time 0.3.41 to 0.3.54, tokio 1.45.0 to 1.53.1, tokio-rustls 0.26.2 to 0.26.4, tokio-util 0.7.15 to 0.7.19, tracing 0.1.40 to 0.1.44, tracing-appender 0.2.3 to 0.2.5, tracing-subscriber 0.3.18 to 0.3.23, uuid 1.16.0 to 1.24.0.
The one behaviour change a person would notice
libloading 0.9 moved the
dlerrortext out ofDisplayand behindError::source. The hot reloader formatted its failures ascould not open module: {e}, so every dlopen failure would have printed exactly this and nothing more:That is the whole diagnosis gone: no path, no missing symbol, no "no such file". Fixed at the layer that owns it, in
crates/hyperion-hot-reload/src/host.rs:LoadErrornow appends the source when there is one, and implementsError::sourceso a caller walking the chain reaches the platform message too.crates/hyperion-hot-reload/tests/load_errors.rspins both. I reverted the fix and watched that test fail with the message above before restoring it, so it is a guard rather than a decoration.What did not move, and why
Each of these now carries a comment in
Cargo.tomlnext to the pin.valence_protocolexposes glam types across its whole public API and the vendored fork pins 0.29.3, so a newer glam here puts two of them in the tree and every valence signature stops accepting hyperion's vectors.Those four are the only crates in the workspace with a prerelease above their stable line. Every other
max_preon crates.io is an old release candidate below the current stable, so there was nothing else to take.Git dependencies, checked against upstream
All three are already at the newest revision available to them, so
Cargo.lockand the flake'soutputHashesare unchanged for them.55ec68eisnvzqz/divanmain HEAD.252944dis the head of Sparse-term safety locks pass a stage where a world is required Indra-db/Flecs-Rust#302, rebased today. That PR is still open, so the fork pin stays; the existing comment already says to repin on upstream once it lands.fb792dcis the head ofTestingPlant/valencefeat-bytes. Worth knowing: that branch is 18 ahead and 47 behindvalence-rs/valencemain. Catching it up is a job in that repo, not this one, and it is the same blocker as the glam pin.Toolchain and flake
rust-toolchain.tomlstays on nightly-2026-07-27. That is the newest nightly upstream has published;2026-07-28is a 404 on static.rust-lang.org, checked twice several hours apart.nix flake updatemoved only index (3225f70to5e3b95c). The rootnixpkgs(624af66) andrust-overlay(c67ce00) were already at their upstream heads.Notes for the reader
[workspace.dependencies]but no crate manifest references it and no source file imports it. I bumped it rather than delete it, because deleting a dependency is a different change from updating one. Worth removing separately.cargowarns that bytecheck 0.8.2 and rkyv 0.8.17 use a trailing semicolon in macro expression position. I checked rkyv 0.8.8: the samefail!(NotStarted)is on the same line, so the bump did not introduce it.cargo denyreports 20 unnecessary skips, 1 unmatched skip and 2 advisory ignores that no longer match anything. I ran the same gate against pristineorigin/mainand got byte-identical staleness, so none of it is mine and I left it alone. It wants a separate cleanup pass.flecs_ecs_sys. The runtime one is 0.9.0.multiple-versionsiswarn, and the gate passes.Gates
All run locally in the worktree, on nightly-2026-07-27, aarch64-darwin.
e2eandsmash-e2eusedHYPERION_PLAYER_PORT=36565 HYPERION_SERVER_PORT=46565so they did not touch the live stack on 25565/35565.e2e, one bedwars client through the whole stack:smash-e2e, four clients through a whole match:Not on the required list, but run because libloading's major bump is the thing that actually calls
dlopen, and no listed gate exercises it:Four successive builds of the demo module loaded into one running world, with the migration applied. That is the path libloading 0.9 changed, and it still works.