Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: Update MSRV policy, shortening to max(4 months, 4 releases) #12402

Merged
merged 6 commits into from
Sep 11, 2024
Merged
6 changes: 2 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,7 @@ Optional features:

## Rust Version Compatibility Policy

DataFusion's Minimum Required Stable Rust Version (MSRV) policy is to support
each stable Rust version for 6 months after it is
Copy link
Member

Choose a reason for hiding this comment

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

The previous wording guaranteed support for any rust version for next 6 months.
Given current rust release cadence, shortening the guaranteed support is the main change of this PR. Can we have this reflected in the PR title?

Copy link
Contributor

Choose a reason for hiding this comment

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

Good call -- I changed the title to say

doc: Update MSRV policy, shortening to max(4 months, 4 releases)

[released](https://github.com/rust-lang/rust/blob/master/RELEASES.md). This
generally translates to support for the most recent 3 to 4 stable Rust versions.
DataFusion's Minimum Required Stable Rust Version (MSRV) policy is to support stable [4 latest
Rust versions](https://releases.rs) OR versions within last 4 months, whichever is longer.
Copy link
Member

Choose a reason for hiding this comment

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

Do 1.80.0 1.80.1 count as one release (1.80.x) or two?

Copy link
Contributor

Choose a reason for hiding this comment

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

As written I think they count for 1

How about this for a slightly different wording

DataFusion's Minimum Required Stable Rust Version (MSRV) policy is to support the last 4 minor Rust versions OR the stable minor Rust version as of 4 months , whichever is lower.

For example, given the releases 1.78.0, 1.79.0, 1.80.0, 1.80.1 and 1.81.0 DataFusion will support 1.78.0, which is 3 minor versions prior to the most minor recent, 1.81.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Here is a tricky part yes, if you check https://releases.rs for 1.77 you can see there are 2 hotfixes within a month.
But hotfixes are important and we probably should mention it in the policy. That we will support the latest hotfix(if any) of the major minumum supported rust version

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Since we specify only major version, it should pick the latest hotfix automatically, right? we just need to mention it on the separate note


We enforce this policy using a [MSRV CI Check](https://github.com/search?q=repo%3Aapache%2Fdatafusion+rust-version+language%3ATOML+path%3A%2F%5ECargo.toml%2F&type=code)