Skip to content

feat: Increase MSRV to 1.88 and update dependencies#626

Queued
Pr0methean wants to merge 12 commits intomasterfrom
unpin-time
Queued

feat: Increase MSRV to 1.88 and update dependencies#626
Pr0methean wants to merge 12 commits intomasterfrom
unpin-time

Conversation

@Pr0methean
Copy link
Member

@Pr0methean Pr0methean commented Feb 5, 2026

Fixes #621.

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @Pr0methean, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request updates the project's dependency management strategy by enabling Cargo's resolver = "3" and adjusting several dependency version constraints. These changes are designed to improve the flexibility and maintainability of the project's dependencies, allowing for more seamless updates to newer versions, including those that may introduce higher MSRV requirements, without immediate breaking changes.

Highlights

  • Dependency Resolver Update: Switched to Cargo's resolver = "3" to utilize the new Rust-version-aware dependency resolution algorithm, which can improve dependency graph resolution and MSRV compatibility.
  • Dependency Version Range Adjustments: Updated several dependency version specifications to allow for broader ranges (e.g., using caret ^ or range >=X,<Y operators). This change enables easier future updates, especially for dependencies that might introduce higher Minimum Supported Rust Version (MSRV) requirements.
Changelog
  • Cargo.toml
    • Added resolver = "3" to the package metadata.
    • Modified constant_time_eq dependency version from 0.3 to >=0.3,<0.5.
    • Modified nt-time dependency version from 0.10.6 to >=0.10.6,<0.14.
    • Modified getrandom dependency version from 0.3 to >=0.3, <0.5 across all target and dev-dependency sections.
    • Modified time dependency version from exact =0.3.45 to caret ^0.3.45 across all target and dev-dependency sections.
    • Modified clap dev-dependency version from exact =4.4.18 to caret ^4.4.18.
Activity
  • No specific activity (comments, reviews, or progress updates) has been recorded for this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@amazon-q-developer amazon-q-developer bot left a comment

Choose a reason for hiding this comment

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

Review Summary

This PR adds resolver = "3" and updates dependency versions to allow newer versions with higher MSRV. However, there are critical issues that block merging:

Critical Issues Found:

  1. Build Error: Cargo resolver "3" requires Rust edition 2024, but the package uses edition "2021". This will cause immediate build failure.

  2. Inconsistent time dependency version: The main [dependencies] section at line 44 still uses time = { version = "=0.3.45", ...} with an exact pin, while the target-specific and dev-dependencies were updated to ^0.3.45. This inconsistency means Cargo will enforce the exact version throughout, defeating the purpose of this PR. The main dependency declaration must also be updated to ^0.3.45.

Recommendation:

Please fix both critical issues before merging. The resolver should be set to "2" (compatible with edition 2021), or the edition should be upgraded to 2024. Additionally, ensure all time dependency declarations consistently use ^0.3.45.


You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request updates the Cargo.toml to use a newer dependency resolver and relaxes version constraints for several dependencies. However, it sets the resolver version to "3", which is invalid. The correct value for the Rust-version-aware resolver is "2". I've added a comment to correct this. The other dependency updates seem appropriate for the stated goal of enabling updates with higher MSRV.

@Pr0methean Pr0methean changed the title feat: Switch to Rust-version-aware dependency resolver, and enable dependency updates that have a higher MSRV feat: Increase MSRV to 1.85, and switch to Rust-version-aware dependency resolver to support higher-MSRV dependency versions Feb 5, 2026
@Pr0methean Pr0methean changed the title feat: Increase MSRV to 1.85, and switch to Rust-version-aware dependency resolver to support higher-MSRV dependency versions feat: Increase MSRV to 1.85, and ensure newer dependency versions are tested on newer rustc Feb 5, 2026
@Pr0methean Pr0methean changed the title feat: Increase MSRV to 1.85, and ensure newer dependency versions are tested on newer rustc feat: Increase MSRV to 1.88 and update dependencies Feb 5, 2026
@Pr0methean Pr0methean enabled auto-merge February 5, 2026 18:59
@Pr0methean Pr0methean added this to the 8.0.0 milestone Feb 5, 2026
@Pr0methean Pr0methean added this pull request to the merge queue Feb 5, 2026
Any commits made after this event will not be merged.
github-merge-queue bot pushed a commit that referenced this pull request Feb 5, 2026
* feat: Switch to Rust-version-aware dependency resolver, and enable dependency updates that have a higher MSRV

* Fix: unpin `time` in main dependency section

* Fix: bump MSRV to 1.85 to enable resolver 3

* Make `time` feature explicit

* Don't need time/wasm-bindgen on non-wasm targets

* Fix: need to use 1.85.0, not 1.85.1, for MSRV test

* Fix: use >= rather than ^ for time version

* Fix: replace other instances of ^0.3.45 with >=0.3.45 for time version

* Fix? use bare "0.3.45" for time version

* Fix: increase MSRV to 1.88 to work around cargo resolver limitations

* Fix? Remove duplicate dependency entry for `time`

* Fix: newer `nt_time` version doesn't `impl TryInto<time::OffsetDateTime> for FileTime`, so use UtcDateTime instead
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.

Build failure: Dependency conflict on time crate (between 0.3.45 and 0.3.46)

1 participant