fix(ci): pin Rust to 1.79.0 to avoid E0282 in time crate on 1.80+#162
fix(ci): pin Rust to 1.79.0 to avoid E0282 in time crate on 1.80+#162TimeToBuildBob wants to merge 1 commit into
Conversation
aw-server-rust@dc70318 uses a version of the `time` crate that fails to compile on Rust 1.80+ due to tightened type inference (E0282: type annotations needed for Box<_>). Pin to 1.79.0 until aw-server-rust updates its dependencies.
Greptile SummaryThis PR pins the Rust toolchain in the
Confidence Score: 4/5Safe to merge; the one-line change correctly targets the broken step and the cache key already accommodates the toolchain version switch. The change is a single, well-scoped CI fix with a clear explanation. The cargo cache key already uses the toolchain's own cachekey output, so switching from stable to 1.79.0 won't pollute existing caches. The only open question is whether there is a tracking mechanism to remember to unpin once aw-server-rust updates its time dependency. .github/workflows/build.yml — only file changed; the pin comment should ideally reference a tracking issue so the temporary fix doesn't get forgotten. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[push / pull_request] --> B[build-rust job]
B --> C{cache-jniLibs hit?}
C -- yes --> D[Skip Rust setup & build]
C -- no --> E[Set up Android SDK & NDK]
E --> F["Set up Rust\ndtolnay/rust-toolchain@1.79.0\n(pinned, was @stable)"]
F --> G[Set up Rust toolchain for Android NDK]
G --> H[Restore cargo build cache\nkeyed on toolchain.cachekey + Cargo.lock]
H --> I[make aw-server-rust]
I --> J[Check jniLibs present]
D --> J
J --> K[build-apk / test / test-e2e downstream jobs]
Reviews (1): Last reviewed commit: "fix(ci): pin Rust to 1.79.0 to avoid E02..." | Re-trigger Greptile |
| # Pin to 1.79.0: aw-server-rust@dc70318 uses `time` crate which fails to compile | ||
| # on Rust 1.80+ due to tightened type inference (E0282 in Box<_> expressions). | ||
| uses: dtolnay/rust-toolchain@1.79.0 |
There was a problem hiding this comment.
No tracking issue for the unpin
The comment explains the temporary nature of this pin, but without a linked GitHub issue the team may forget to revisit it when aw-server-rust updates its time dependency. Consider adding a TODO(#<issue>): reference so the pin stays on the radar and is easy to find later.
|
Note: the 'Get latest versionCode' check fails on fork PRs because it requires Fastlane secrets (Play Store access) that aren't available in fork CI runs. This is expected and unrelated to this change. The key check is 'Build aw-server-rust' — that's the one that was failing due to the Rust/time crate issue. |
|
@TimeToBuildBob is this PR still necessary since you bumped the aw-server-rust version |
|
No. This PR is obsolete now. PR #165 merged on 2026-05-23 and fixed the same Rust/time failure the right way by bumping the Verification:
Closing this as superseded by #165. |
Summary
aw-server-rust@dc70318depends on an older version of thetimecrate that fails to compile on Rust 1.80+ due to tightened type inference (E0282: type annotations needed for Box<_>)dtolnay/rust-toolchainto1.79.0in theBuild aw-server-rustjob until aw-server-rust updates its dependenciesError (from master CI run 26290684290)
Fix
Change
dtolnay/rust-toolchain@stable→dtolnay/rust-toolchain@1.79.0with a comment explaining the pin. Unpin onceaw-server-rustupdates itstimecrate dependency.Test plan