Repository navigation
Conversation
- Bump edition 2018 -> 2024 (rust-version 1.85); migrate unsafe extern blocks, unsafe attributes, and unsafe fn bodies across all platforms - Fix disjoint-capture Send regression in the Android event loop closure - Replace X11 clipboard static mut with a Mutex - Mark GPU-context-dependent ElapsedQuery doctests as ignore (failing) - Add tests/ with headless integration tests for conf defaults, graphics value types, event types, and desktop fs - Update dev-dependencies: glam 0.33, fontdue 0.9, quad-rand 0.2 and migrate examples to the glam camera API - CI: replace archived actions-rs with dtolnay/rust-toolchain, add test and lint jobs, bump MSRV job to 1.85 - Fix clippy warnings and apply rustfmt across all targets
The notfl3/cargo-apk image ships a toolchain older than cargo 1.85, which fails to parse the 2024 edition manifest.
cargo-quad-apk statically links cargo 0.62, whose manifest parser rejects edition-2024 manifests, and there is no newer release, so the container-based APK build cannot work with this Cargo.toml anymore. A cross-target cargo check needs no NDK/SDK and keeps compile coverage of all four Android ABIs.
Modernize to Rust 2024 edition, add tests/
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.
Summary
Modernizes the codebase to the current Rust language version and adds a real test suite:
rust-version = 1.85, the edition's MSRV): migrates allunsafe externblocks,#[unsafe(no_mangle)]attributes, andunsafe {}blocks insideunsafe fnbodies across every platform backend (Linux/X11/Wayland, Windows, macOS, iOS/tvOS, Android, WASM).CursorIconexhaustiveness), and the desktopfsloader. Also addsPartialEq/Eq/HashtoUniformType(additive).actions-rs/*actions withdtolnay/rust-toolchain, adds Test (default +log-impl) and Lint (cargo fmt --check+cargo clippy -D warnings) jobs, MSRV job bumped 1.70 → 1.85, addsaarch64-apple-darwinto the build matrix.notfl3/cargo-apkcontainer job with acargo checkmatrix over all four Android ABIs —cargo-quad-apkstatically links cargo 0.62, whose manifest parser rejects edition-2024 manifests, and there is no newer release (upstream repo is gone).cargo checkneeds no NDK and keeps the compile coverage.Notable fixes along the way
SendFdirectly through theSendHackwrapper (2021+ disjoint field capture); the whole wrapper is now moved into the closure.static mut MESSAGEwith aMutex<Option<String>>(removes a data-race hazard).ElapsedQuerydocs that called GPU-context methods and were already failing.-D warningson every target.Deliberately not changed
winapi→windows,objc-rs→objc2, andndk-sysbumps are left out: they are large FFI rewrites that need real hardware/CI validation on those platforms and deserve separate PRs.Verification
cargo build,cargo test,cargo test --features log-impl,cargo build --all-targets: green.cargo fmt --checkandcargo clippy --all-targets -- -D warnings: clean.cargo check+cargo clippywith zero warnings on:x86_64-unknown-linux-gnu,x86_64-pc-windows-gnu,wasm32-unknown-unknown,x86_64-apple-darwin,aarch64-apple-darwin,aarch64-apple-ios,aarch64-linux-android.