Skip to content

Lower MSRV from 1.88 to 1.85#91

Merged
ralfbiedert merged 2 commits into
ralfbiedert:masterfrom
glamberson:msrv-1.85
Jan 21, 2026
Merged

Lower MSRV from 1.88 to 1.85#91
ralfbiedert merged 2 commits into
ralfbiedert:masterfrom
glamberson:msrv-1.85

Conversation

@glamberson

Copy link
Copy Markdown
Contributor

Summary

This PR lowers the workspace rust-version from 1.88 to 1.85.

Rationale

  • Edition 2024 was stabilized in Rust 1.85 (Feb 20, 2025)
  • No features from Rust 1.86/1.87/1.88 appear to be used in this crate
  • The main 1.88 additions (naked functions, boolean config literals, cargo cache GC) aren't used here
  • Let chains work in edition 2024 on Rust 1.85

Impact

This unblocks usage in Linux distributions currently shipping Rust 1.85.x:

  • Fedora 42 (Rust 1.85.1)
  • Debian 13 Trixie (Rust 1.85)
  • openSUSE Tumbleweed/Leap

Testing

CI should pass on Rust 1.85 since no 1.86+ features are used.

Request

If this change is acceptable, could a new version (0.9.2) be published to crates.io? This would unblock downstream distribution packaging that's currently blocked on the MSRV.

Fixes #90

glamberson and others added 2 commits January 15, 2026 05:42
Edition 2024 was stabilized in Rust 1.85, and no features from
Rust 1.86/1.87/1.88 appear to be used in this crate.

This enables packaging in Linux distributions currently shipping
Rust 1.85.x (Fedora 42, Debian 13, openSUSE).

Fixes ralfbiedert#90
The existing code used features that were stabilized after 1.85:

- `is_multiple_of()` (stable since 1.87): replaced with `% 8 == 0`
- `as_chunks()` / `as_chunks_mut()` (stable since 1.88): replaced with
  `chunks_exact()` / `chunks_exact_mut()` and slice-to-array conversion

The repo's declared MSRV was inconsistent with the actual code. These
changes make the codebase properly compatible with Rust 1.85 as intended.
@glamberson

Copy link
Copy Markdown
Contributor Author

CI was failing because the existing codebase used features not available in Rust 1.85:

  • is_multiple_of() in decoder.rs (stable since 1.87)
  • as_chunks() / as_chunks_mut() in yuv2rgb.rs (stable since 1.88)

I've pushed a fix that replaces these with MSRV 1.85 compatible alternatives:

  • dim.0.is_multiple_of(8)dim.0 % 8 == 0
  • as_chunks::<N>()chunks_exact(N) with slice-to-array conversion via try_into().unwrap()

The repo's declared MSRV was already inconsistent with the actual code requirements - this PR now properly addresses that inconsistency.

@ralfbiedert

Copy link
Copy Markdown
Owner

While I'm ok being slightly conservative w.r.t. MSRV, and we can merge this PR, I'm not sure distributions shipping a year-old Rust compiler should be the primary motivation for what language features to use. It appears supporting Debian would lock us in with this Rust compiler for 1-2 more years?

@ralfbiedert ralfbiedert added enhancement New feature or request needs-discussion Something unclear or with conflicting opinions. labels Jan 21, 2026
@ralfbiedert ralfbiedert merged commit e274ea1 into ralfbiedert:master Jan 21, 2026
14 checks passed
@ralfbiedert

Copy link
Copy Markdown
Owner

0.9.2 is out.

@glamberson

Copy link
Copy Markdown
Contributor Author

Yes, thanks. This is a good tradeoff considering what it means for adoption IMO. Thanks.

@glamberson glamberson deleted the msrv-1.85 branch January 21, 2026 12:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request needs-discussion Something unclear or with conflicting opinions.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Lower MSRV from 1.88 to 1.85 to enable distro packaging

3 participants