Repository navigation
Issue #188 solved: rename rust-toolchain.toml so the pin takes effect - #243
Merged
Merged
Conversation
… effect The file was named "toml .rust-toolchain.toml". rustup only reads rust-toolchain.toml or rust-toolchain, so it was ignored and nothing was pinned locally or in CI; both used whatever stable was installed. The issue asked for a full build on the pinned version before renaming, since channel = "1.80.0" was untested against chrono 0.4.42 and an unpinned iced. Verified on 1.80.0: relay builds and passes its 10 tests, src/server builds and passes its 5, and baton builds. After the rename cargo selects 1.80.0 on its own and rustup pulls rust-std for the x86_64-pc-windows-gnu target named in the file. The comment line also held a bare 0x97 byte, a CP1252 em-dash that is not valid UTF-8. TOML must be UTF-8, so that would have been a parse risk the moment rustup started reading the file. Replaced with a hyphen. README and AGENTS.md both stated the file was not in effect and that the pin was untested. Both updated.
Sanjana-Siddani
self-requested a review
October 24, 2026 17:02
Sanjana-Siddani
approved these changes
Oct 24, 2026
Sanjana-Siddani
left a comment
Collaborator
There was a problem hiding this comment.
Nice catch on the filename! The new file parses fine, and I checked the lockfiles: nothing that actually gets built needs a newer Rust than 1.80. Pinning works for us for now. We can switch to stable + rust-version later if the hidden warnings become a problem. Approving
This was referenced Oct 29, 2026
PRINCEKK122
added a commit
to PRINCEKK122/PilotDataSynchronization
that referenced
this pull request
Oct 31, 2026
Nothing in CI touched the Rust side. meson-build.yml builds the C++ plugin on Windows with its test step commented out, and super-linter lints YAML and clang-format. So relay, src/server and baton had no automated coverage at all, which is how main came to be failing two relay tests without anyone noticing (oss-slu#251). Add a workflow that builds and tests all three crates on pull requests and on pushes to main, as a matrix so each crate reports separately, with fail-fast off so one failure does not hide the others. The relay needs wayland, x11, drm and fontconfig headers because of its iced dependency tree, installed only for that crate. No toolchain is named: rust-toolchain.toml at the repository root decides, once oss-slu#243 lands. Cargo registry and target output are cached per crate, keyed on each Cargo.lock.
PRINCEKK122
added a commit
to PRINCEKK122/PilotDataSynchronization
that referenced
this pull request
Oct 31, 2026
Nothing in CI touched the Rust side. meson-build.yml builds the C++ plugin on Windows with its test step commented out, and super-linter lints YAML and clang-format. So relay, src/server and baton had no automated coverage at all, which is how main came to be failing two relay tests without anyone noticing (oss-slu#251). Add a workflow that builds and tests all three crates on pull requests and on pushes to main, as a matrix so each crate reports separately, with fail-fast off so one failure does not hide the others. The relay needs wayland, x11, drm and fontconfig headers because of its iced dependency tree, installed only for that crate. No toolchain is named: rust-toolchain.toml at the repository root decides, once oss-slu#243 lands. Cargo registry and target output are cached per crate, keyed on each Cargo.lock.
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.
Closes #188.
Problem
The file at the repository root was named
toml .rust-toolchain.toml.rustupreads onlyrust-toolchain.tomlorrust-toolchain, so the leadingtomlmeant it was ignored: nothing was pinned locally or in CI, and both used whatever stable happened to be installed.Verification first
The issue was explicit that renaming is not a safe one-line fix, because
channel = "1.80.0"had never been tested againstchrono 0.4.42and an unpinnediced. So that came first, usingcargo +1.80.0before touching the filename:relaysrc/serverxplane_plugin/subprojects/batonAfter the rename,
cargo --versioninrelay/reports1.80.0with no+1.80.0flag, andrustuppullsrust-stdfor thex86_64-pc-windows-gnutarget named in the file. So a fresh clone is set up for the Windows cross-build without anyone having to read the README first.Change
toml .rust-toolchain.tomlrenamed torust-toolchain.toml.0x97, a CP1252 em-dash, which is not valid UTF-8. TOML must be UTF-8, so this was a parse risk the momentrustupactually started reading the file. It survived only because the file was dormant.README.mdandAGENTS.mdboth stated the file was not in effect and the pin was untested. Both now describe the pin and record that it is verified.One thing worth a decision
A
rust-toolchain.tomlis a hard pin, not a floor: everyone gets exactly 1.80.0, including contributors on newer toolchains. The practical effect is visible immediately —relayreports 19 warnings on 1.98 and 2 on 1.80, becausemismatched_lifetime_syntaxesdoes not exist in 1.80. Pinning quiets those rather than fixing them.If the intent is "minimum supported version" rather than "everyone builds on exactly this", that is
rust-versionin eachCargo.tomlwithchannel = "stable"here. The issue asked for the rename, so that is what this does, but the distinction is worth a maintainer's call.