Skip to content

Update MSRV to 1.95 and fix CI - #14

Open
emilk wants to merge 4 commits into
mainfrom
emilk/ci-wayland-and-cargo-deny-v2
Open

Update MSRV to 1.95 and fix CI#14
emilk wants to merge 4 commits into
mainfrom
emilk/ci-wayland-and-cargo-deny-v2

Conversation

@emilk

@emilk emilk commented Aug 18, 2026

Copy link
Copy Markdown
Member

Long time no update

bevy 0.19 enables both `x11` and `wayland` in its default feature set (via
`default_platform`), so `wayland-sys` now needs `wayland-client.pc` at build
time.

cargo-deny-action v1 ships a cargo-deny too old to parse CVSS 4.0 scores, which
now appear in the RustSec advisory database (e.g. RUSTSEC-2026-0038), making
every run fail while loading the database.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@emilk emilk added the exclude from changelog Do not include this in CHANGELOG.md label Aug 18, 2026
@emilk emilk changed the title ci: install libwayland-dev and bump cargo-deny-action to v2 Update MSRV to 1.95 and fix CI Aug 18, 2026
@emilk
emilk marked this pull request as draft August 18, 2026 13:16
emilk and others added 3 commits August 18, 2026 15:27
The old dependencies tripped ten RustSec advisories. Most are fixed by a
lockfile update, but the patched `time` needs a compiler that understands
edition 2024, hence the MSRV bump.

`cargo update` fixes `bytes`, `crossbeam-epoch`, `h2`, `lz4_flex`, `time` and
`tracing-subscriber`. The three that remain need semver-major bumps we cannot do
here, so deny.toml ignores them:
* RUSTSEC-2026-0097: `rand` 0.8 is unsound; the fix is in `rand` 0.9.
* RUSTSEC-2026-0192: `ttf-parser` is unmaintained, with no safe upgrade.
* RUSTSEC-2026-0206: `rustybuzz` is unmaintained, reached via `cosmic-text`.

`twox-hash` joins `skip-tree`, since the newer `lz4_flex` uses 2.x while rerun
is still on 1.x.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
cargo-cranky is unmaintained, and Cargo has supported lint tables since 1.74, so
the lints move into Cargo.toml and CI calls `cargo clippy` directly.

The lint set is the one from rerun_template: all of `clippy::pedantic` on, with
the unhelpful ones opted out one by one.
See rerun-io/rerun_template#43.

`disallowed-macros` now says `std::dbg`, since plain `dbg` does not name a
reachable macro and clippy 1.95 warns about it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Mostly mechanical, from `cargo clippy --fix`: `use_self`, trait imports as `_`,
`?` instead of `and_then` chains, `is_some_and` instead of `map_or`, and
`#[expect]` instead of `#[allow]`.

By hand:
* `ancestors_from_world` uses `?` rather than nested `if let`, which also drops
  the `collapsible_match` exception.
* `component_to_ron` and `component_to_hash` release the type-registry read
  guard before the work that does not need it.
* The deliberate casts in `Mesh::to_rerun` get an `#[expect]` with a reason.
* The Bevy examples get file-level `#[expect]`s, so they stay close to the
  upstream sources they were copied from.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@emilk
emilk marked this pull request as ready for review August 18, 2026 13:30
@emilk
emilk requested a review from Wumpf August 18, 2026 13:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

exclude from changelog Do not include this in CHANGELOG.md

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant