alamb opened a new issue, #9082: URL: https://github.com/apache/arrow-datafusion/issues/9082
### 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: * The latest version, `ahash`, requires 1.75 and we will hit problems sooner or later per @ozankabak * env_logger needs a newer version of Rust: https://github.com/apache/arrow-datafusion/pull/8944 * @Ted-Jiang also found an issue with Rust lower than 1.72: https://github.com/apache/arrow-datafusion/issues/8743 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 https://github.com/apache/arrow-datafusion/pull/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 least 3 months old" (or 6 months) So for example, a 6 month policy at the time of writing, 2024-01-31, would mean supporting: * 1.75: https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1750-2023-12-28 * 1.74: ... * ... * 1.72 (released 2023-08-24) https://github.com/rust-lang/rust/blob/master/RELEASES.md#version-1720-2023-08-24 ### Additional context I think our previous convention (due to testing constraints) was simply to support the most recent version of rust -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
