Skip to content

Comments

separate support of rust 1.75 to avoid build issues#2392

Merged
milyin merged 25 commits intomainfrom
ci/zenoh_1_75
Feb 20, 2026
Merged

separate support of rust 1.75 to avoid build issues#2392
milyin merged 25 commits intomainfrom
ci/zenoh_1_75

Conversation

@milyin
Copy link
Contributor

@milyin milyin commented Jan 26, 2026

Description

The zenoh library 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_init 1.0.3, the dependency resolves to latest one 1.0.4. This causes build failure wiht rust 1.75 because for static_init 1.0.4 MSRV=1.82

To support build with rust 1.75 the crate zenoh-pinned-deps-1-75 was added. It locks crates to last 1.75 compatible verisions, e.g "=1.0.3" for static_init.

Since rust 1.93 this is became harder to support. The static_init 1.0.3 can't be compiled with rust 1.93. This means that the zenoh-pinned-deps-1-75 should be used for 1.75 build only.

What does this PR do?

  • removes zenoh-pinned-deps-1-75 from workspace to avoid it's influence to version selection
  • adds test for build with latest rust

Why is this change needed?

  • since rust 1.93 zenoh workspace build fails because of locks for 1.75

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:

  • Enhancement scope documented - Clear description of what is being improved
  • Minimum necessary code - Implementation is as simple as possible, doesn't overcomplicate the system
  • Backwards compatible - Existing code/APIs still work unchanged
  • No new APIs added - Only improving existing functionality
  • Tests updated - Existing tests pass, new test cases added if needed
  • Performance improvement measured - If applicable, before/after metrics provided
  • Documentation updated - Existing docs updated to reflect improvements
  • User impact documented - How users benefit from this enhancement

Remember: Enhancements should not introduce new APIs or breaking changes.

Instructions:

  1. Check off items as you complete them (change - [ ] to - [x])
  2. The PR checklist CI will verify these are completed

This checklist updates automatically when labels change, but preserves your checked boxes.

@milyin milyin added the enhancement Existing things could work better label Jan 26, 2026
@codecov
Copy link

codecov bot commented Jan 26, 2026

Codecov Report

❌ Patch coverage is 0% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.52%. Comparing base (ee17f85) to head (7f0548e).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
commons/zenoh-util/src/log.rs 0.00% 2 Missing ⚠️
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.
📢 Have feedback on the report? Share it here.

@milyin milyin marked this pull request as draft January 27, 2026 23:35
@milyin milyin marked this pull request as ready for review January 30, 2026 11:44
@milyin milyin marked this pull request as draft January 30, 2026 11:45
@milyin milyin requested a review from Copilot February 5, 2026 16:51
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.

Copy link
Contributor

@diogomatsubara diogomatsubara left a comment

Choose a reason for hiding this comment

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

LGTM, I made one small non-blocking comment about the authorship of the newly added Cargo.toml files for zenoh-1-75

# ZettaScale Zenoh Team, <[email protected]>
#
[package]
authors = ["Davide Della Giustina <[email protected]>"]
Copy link
Contributor

Choose a reason for hiding this comment

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

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.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

No idea, something from some @OlivierHecart 's old template maybe. Replaced to Olivier's name

This was referenced Feb 20, 2026
@diogomatsubara
Copy link
Contributor

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.

@milyin milyin marked this pull request as ready for review February 20, 2026 14:37
@milyin milyin merged commit 8f689ec into main Feb 20, 2026
49 of 50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement Existing things could work better

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants