Skip to content

build: Enable MSRV-aware resolver v3#5426

Merged
max-sixty merged 1 commit intoPRQL:mainfrom
max-sixty:msrv-resolve
Sep 25, 2025
Merged

build: Enable MSRV-aware resolver v3#5426
max-sixty merged 1 commit intoPRQL:mainfrom
max-sixty:msrv-resolve

Conversation

@max-sixty
Copy link
Copy Markdown
Member

Summary

  • Enable Cargo's MSRV-aware resolver (v3) to automatically manage dependency versions compatible with our MSRV of 1.75.0
  • This prevents dependency updates from breaking our MSRV compatibility

Changes

  • Updated Cargo.toml to use resolver = "3" instead of resolver = "2"

Benefits

  • Automatic MSRV enforcement: Dependencies are now automatically constrained to versions compatible with Rust 1.75.0
  • No manual pinning needed: The resolver handles version selection based on our declared rust-version
  • Future-proof: As dependencies release new versions, the resolver will automatically select the latest compatible version

Requirements

  • Requires Cargo 1.84.0+ to understand the resolver v3 configuration
  • Our development toolchain (1.89.0) fully supports this feature
  • The library code itself maintains MSRV of 1.75.0

Test plan

  • Build succeeds with resolver v3
  • cargo update respects MSRV constraints (shows "Locking 279 packages to latest Rust 1.75.0 compatible versions")
  • Tests pass with updated dependencies

🤖 Generated with Claude Code

Switch from Cargo resolver v2 to v3 to enable automatic MSRV-aware
dependency resolution. This ensures dependencies respect our MSRV
of 1.75.0 without manual version pinning.

The resolver v3 requires Cargo 1.84.0+ to parse the configuration,
but our development toolchain (1.89.0) supports it. Dependencies
will now be automatically constrained to versions compatible with
Rust 1.75.0.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@eitsupi eitsupi enabled auto-merge (squash) September 25, 2025 04:21
@eitsupi eitsupi disabled auto-merge September 25, 2025 04:21
@max-sixty max-sixty merged commit 117f9db into PRQL:main Sep 25, 2025
41 checks passed
@max-sixty max-sixty deleted the msrv-resolve branch September 25, 2025 04:37
max-sixty added a commit to max-sixty/prql that referenced this pull request Sep 25, 2025
This reverts commit 117f9db.

We intend to re-revert this shortly after investigating why CI didn't catch the issues with resolver v3.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
max-sixty added a commit to max-sixty/prql that referenced this pull request Sep 25, 2025
The recent resolver v3 upgrade (PRQL#5426) broke MSRV compatibility but wasn't caught by CI because Cargo.toml changes don't trigger the test-msrv job. Resolver v3 requires Rust 1.81+ to parse, but our MSRV is 1.75.

This adds Cargo.toml to the nightly filter list so that fundamental build configuration changes will trigger MSRV testing.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
max-sixty added a commit to max-sixty/prql that referenced this pull request Sep 25, 2025
This enables Cargo's MSRV-aware resolver (v3) while maintaining our ability to test with Rust 1.75.

## Changes
- Enable resolver v3 for MSRV-aware dependency resolution
- Add sed patch in MSRV test job to temporarily downgrade to resolver v2 during testing

## Context
Resolver v3 requires Rust 1.84+ to parse the configuration, but our library MSRV is 1.75.
This creates a split MSRV situation:
- Library MSRV: 1.75 (the code itself works with this version)
- Development/build toolchain: 1.84+ (required for resolver v3)

The CI workaround allows us to verify the library MSRV while benefiting from resolver v3's
automatic dependency version management for development.

Supersedes PRQL#5426, PRQL#5428, PRQL#5430

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
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.

1 participant