RFC: MSRV Policy

Open
#1,455 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Stale
Tech stack
rust

Research direction

Read the MSRV discussion and inspect Cargo.toml, including the current dependency and version metadata. Gather the requested user feedback and compare the policy options; done means reaching agreement on whether to promise an MSRV, how it is maintained, and which version increment applies when it changes.

Written by the indexing model from the issue text.

Description

A recent change to url has caused openblas-src's MSRV to bump to 1.67 (when using most recent dependencies). While this doesn't affect ndarray directly, it does affect the clarity and interoperability of ndarray with a major BLAS provider and raises an important question: should ndarray have an MSRV policy and, if yes, what should that policy be?

This question breaks down into three parts:

  • Should ndarray promise a certain MSRV? (This means listing a rust-version in the Cargo.toml and pinning any necessary dependencies in patch versions to ensure that rust-version is maintained)
  • If ndarray does promise an MSRV, what should be the policy for which MSRV is guaranteed? For example, two years (the approximate MSRV right now) vs two versions.
  • When ndarray bumps its MSRV, is that a patch update, or a minor version update?

I would like to solicit feedback on this topic from users of ndarray. If you use ndarray, what is your usual Rust configuration? Are you running on the most recent version, or something older?

MSRV and its association with versioning is a much, much larger conversation. If possible, I would like to keep any conversation to just what ndarray's policy should be; not what the wider ecosystem does.

My personal preference is that ndarray does promise a recent MSRV, and that updates to that MSRV occur only in minor version updates.

Dominant language
Rust
Stars
4.3k
Forks
391
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rust-ndarray/ndarray

All issues in rust-ndarray/ndarray

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.