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

Conversation

comphead
Copy link
Contributor

@comphead comphead commented Sep 9, 2024

Which issue does this PR close?

Followup on #12398 (comment)
Closes #.

Rationale for this change

Current MSRV policy statement is somewhat confusing on matching between MSRV supported time period and latest Rust versions. The PR is to avoid ambiguity

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

@github-actions github-actions bot added the documentation Improvements or additions to documentation label Sep 9, 2024
Copy link
Contributor

@alamb alamb left a comment

Choose a reason for hiding this comment

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

Makes sense to me, thank you @comphead

I think we should leave this PR open for a few days to give the rest of the community time to comment

@comphead comphead mentioned this pull request Sep 9, 2024
@@ -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)

README.md Outdated
[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

@alamb alamb changed the title doc: Update MSRV policy to not depend on Rust compiler cadences doc: Update MSRV policy, shortening to max(4 months, 4 releases) Sep 10, 2024
@comphead
Copy link
Contributor Author

Updated the policy, including hotfixes for MSRV, please take a second look

Copy link
Contributor

@alamb alamb left a comment

Choose a reason for hiding this comment

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

Looks great to me


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`.

If a hotfix is released for the minimum supported Rust version (MSRV), the MSRV will be the minor version with all hotfixes, even if it surpasses the four-month window.
Copy link
Contributor

Choose a reason for hiding this comment

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

👍

@comphead comphead merged commit b9dabdb into apache:main Sep 11, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants