Is your feature request related to a problem or challenge?
As crates that DataFusion depends on release new versions, sometimes they require newer versions of Rust than the minimum supported by DataFusion. This means we can't update to those newer libraries. Recent examples:
However, we have no "MSRV" policy that says when we should update the MSRV so it isn't clear when we should increase the version, in issues like #8997
We currently have a MSRV of 1.70 which seems to have been released about 6 months ago: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1700-2023-06-01 and we are starting to hit dependencies that require new versions
Background
DataFusion now has a minimum supported rust version that we test with a CI run: https://github.com/apache/arrow-datafusion/blob/15f59d9861082a4d5d39bddce63d81cc7b9fb299/.github/workflows/rust.yml#L496
And the minimum supported rust version is defined in Cargo.toml https://github.com/apache/arrow-datafusion/blob/15f59d9861082a4d5d39bddce63d81cc7b9fb299/Cargo.toml#L31
And we document what we test: https://github.com/apache/arrow-datafusion?tab=readme-ov-file#rust-version-compatibility
🎉
Describe the solution you'd like
I propose we adopt a policy of "last two stable version of Rust" which will result in DataFusion being close to but not quite bleeding edge and compatible with most of the rest of the crate ecosystem
This would result in DataFusion upgrading the MSRV roughly every 6 weeks, given the most recent release history of Rust
https://github.com/rust-lang/rust/blob/master/RELEASES.md
Describe alternatives you've considered
We could also adopt a policy like "Stable version of rust that is at most 3 months old" (or 6 months) (edited: previously this said "at least 3 months")
So for example, a 6 month policy at the time of writing, 2024-01-31, would mean supporting:
Additional context
I think our previous convention (due to testing constraints) was simply to support the most recent version of rust
Is your feature request related to a problem or challenge?
As crates that DataFusion depends on release new versions, sometimes they require newer versions of Rust than the minimum supported by DataFusion. This means we can't update to those newer libraries. Recent examples:
ahash, requires 1.75 and we will hit problems sooner or later per @ozankabakHowever, we have no "MSRV" policy that says when we should update the MSRV so it isn't clear when we should increase the version, in issues like #8997
We currently have a MSRV of 1.70 which seems to have been released about 6 months ago: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1700-2023-06-01 and we are starting to hit dependencies that require new versions
Background
DataFusion now has a minimum supported rust version that we test with a CI run: https://github.com/apache/arrow-datafusion/blob/15f59d9861082a4d5d39bddce63d81cc7b9fb299/.github/workflows/rust.yml#L496
And the minimum supported rust version is defined in Cargo.toml https://github.com/apache/arrow-datafusion/blob/15f59d9861082a4d5d39bddce63d81cc7b9fb299/Cargo.toml#L31
And we document what we test: https://github.com/apache/arrow-datafusion?tab=readme-ov-file#rust-version-compatibility
🎉
Describe the solution you'd like
I propose we adopt a policy of "last two stable version of Rust" which will result in DataFusion being close to but not quite bleeding edge and compatible with most of the rest of the crate ecosystem
This would result in DataFusion upgrading the MSRV roughly every 6 weeks, given the most recent release history of Rust
https://github.com/rust-lang/rust/blob/master/RELEASES.md
Describe alternatives you've considered
We could also adopt a policy like "Stable version of rust that is at most 3 months old" (or 6 months) (edited: previously this said "at least 3 months")
So for example, a 6 month policy at the time of writing, 2024-01-31, would mean supporting:
Additional context
I think our previous convention (due to testing constraints) was simply to support the most recent version of rust