separate support of rust 1.75 to avoid build issues#2392
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2392 +/- ##
==========================================
- Coverage 72.60% 72.52% -0.08%
==========================================
Files 390 390
Lines 63261 63267 +6
==========================================
- Hits 45928 45885 -43
- Misses 17333 17382 +49 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Pull request overview
This PR separates Rust 1.75 support into an isolated CI crate to avoid dependency version conflicts between Rust 1.75 and 1.93. The core issue is that static_init 1.0.3 works with Rust 1.75 but not 1.93, while version 1.0.4 works with 1.93 but not 1.75.
Changes:
- Isolates Rust 1.75 testing to a new excluded workspace crate (ci/zenoh-1-75) that uses pinned dependencies
- Updates the default Rust toolchain from 1.85.0 to 1.93.0
- Removes zenoh-pinned-deps-1-75 from workspace members to prevent it from influencing dependency resolution
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| rust-toolchain.toml | Updates default toolchain to Rust 1.93.0 |
| commons/zenoh-util/src/log.rs | Disables thread IDs/names in test logging due to memory leak (has typo) |
| ci/zenoh-1-75/src/lib.rs | New empty library for Rust 1.75 CI testing |
| ci/zenoh-1-75/Cargo.toml | New crate manifest that depends on zenoh with pinned deps |
| ci/valgrind-check/Cargo.toml | Removes zenoh-pinned-deps-1-75 dependency |
| Cargo.toml | Removes zenoh-pinned-deps-1-75 from workspace, excludes ci/zenoh-1-75, unpins buddy_system_allocator |
| Cargo.lock | Updates dependencies to newer versions now that pins are removed |
| .github/workflows/ci.yml | Simplifies Rust 1.75 testing, removes workarounds for nightly builds |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <[email protected]>
diogomatsubara
left a comment
There was a problem hiding this comment.
LGTM, I made one small non-blocking comment about the authorship of the newly added Cargo.toml files for zenoh-1-75
ci/zenoh-1-75/Cargo.toml
Outdated
| # ZettaScale Zenoh Team, <[email protected]> | ||
| # | ||
| [package] | ||
| authors = ["Davide Della Giustina <[email protected]>"] |
There was a problem hiding this comment.
Who's this person? We probably should update this to add the generic zenoh team as the author or at least add yourself as the author to the list.
There was a problem hiding this comment.
No idea, something from some @OlivierHecart 's old template maybe. Replaced to Olivier's name
|
I left #2390 open for now but it'll likely be superseded by the work done in this PR. Once all the PRs land, we can close 2390 and let the automation do its thing. |
Description
The
zenohlibrary have minimal supporting rust version 1.75 and should also work with the most recent Rust version.The problem is that cargo's version resolution don't take packages MSRV into account. The rule is "Cargo uses the convention that only changes in the left-most non-zero component are considered incompatible" https://doc.rust-lang.org/cargo/reference/semver.html. This means that if we depend on
static_init1.0.3, the dependency resolves to latest one 1.0.4. This causes build failure wiht rust 1.75 because forstatic_init1.0.4 MSRV=1.82To support build with rust 1.75 the crate
zenoh-pinned-deps-1-75was added. It locks crates to last 1.75 compatible verisions, e.g "=1.0.3" forstatic_init.Since rust 1.93 this is became harder to support. The
static_init1.0.3 can't be compiled with rust 1.93. This means that thezenoh-pinned-deps-1-75should be used for 1.75 build only.What does this PR do?
zenoh-pinned-deps-1-75from workspace to avoid it's influence to version selectionWhy is this change needed?
Related Issues
Description of zenoh-pinned-deps-1-75 #2082
Related PRs and repositories
Plugins:
Backends (plugins for storage manager plugin in the main zenoh repo):
🏷️ Label-Based Checklist
Based on the labels applied to this PR, please complete these additional requirements:
Labels:
enhancement✨ Enhancement Requirements
Since this PR enhances existing functionality:
Remember: Enhancements should not introduce new APIs or breaking changes.
Instructions:
- [ ]to- [x])This checklist updates automatically when labels change, but preserves your checked boxes.