Skip to content

Issue #188 solved: rename rust-toolchain.toml so the pin takes effect - #243

Merged
Sanjana-Siddani merged 1 commit into
oss-slu:mainfrom
PRINCEKK122:188-pin-rust-toolchain
Oct 29, 2026
Merged

Sanjana-Siddani merged 1 commit into
oss-slu:mainfrom
PRINCEKK122:188-pin-rust-toolchain

Conversation

@PRINCEKK122

Copy link
Copy Markdown
Contributor

Closes #188.

Problem

The file at the repository root was named toml .rust-toolchain.toml. rustup reads only rust-toolchain.toml or rust-toolchain, so the leading toml meant 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 against chrono 0.4.42 and an unpinned iced. So that came first, using cargo +1.80.0 before touching the filename:

Crate Result on 1.80.0
relay builds, 10/10 tests pass
src/server builds, 5/5 tests pass
xplane_plugin/subprojects/baton builds

After the rename, cargo --version in relay/ reports 1.80.0 with no +1.80.0 flag, and rustup pulls rust-std for the x86_64-pc-windows-gnu target 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.toml renamed to rust-toolchain.toml.
  • Fixed an invalid byte in the comment line: a bare 0x97, a CP1252 em-dash, which is not valid UTF-8. TOML must be UTF-8, so this was a parse risk the moment rustup actually started reading the file. It survived only because the file was dormant.
  • README.md and AGENTS.md both 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.toml is a hard pin, not a floor: everyone gets exactly 1.80.0, including contributors on newer toolchains. The practical effect is visible immediately — relay reports 19 warnings on 1.98 and 2 on 1.80, because mismatched_lifetime_syntaxes does 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-version in each Cargo.toml with channel = "stable" here. The issue asked for the rename, so that is what this does, but the distinction is worth a maintainer's call.

… 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
Sanjana-Siddani self-requested a review October 24, 2026 17:02

@Sanjana-Siddani Sanjana-Siddani left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@Sanjana-Siddani
Sanjana-Siddani merged commit fff0ff2 into oss-slu:main Oct 29, 2026
2 checks passed
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.
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.

rust-toolchain file is misnamed, so the toolchain is not pinned

2 participants