-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Specify rust toolchain explicitly, document how to change it #14655
Conversation
## How to update the version of Rust used in CI tests | ||
|
||
- Make a PR to update the [rust-toolchain] file in the root of the repository: | ||
|
||
[rust-toolchain]: https://github.com/apache/datafusion/blob/main/rust-toolchain.toml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this apply to CI only, or is rust-toolchain read by cargo too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it applies by default if you just run cargo
locally if that is what you are asking
So unless someone overrides the setting by default local development environments would use the toolchain version specified by this file
I plan to merge this PR over the next day or two unless there are any additional comments |
Let's give it a try |
Thanks everyone for the reviews |
Now cargo will auto-update my local toolchain.
very cool! |
Which issue does this PR close?
Rationale for this change
Currently DataFusion's CI runs with whatever the most recent release is. This ensures DataFusion always works with the latest rust release but causes some non trival churn:
Magically broken Releases
Currently whenever a new rust version is released we often scramble to fix the CI (for new clippy lints for example).
Some recent examples
Old releases don't pass CI cleanly
As @findepi observes on #14479, always using the most recent Rust release means that older releases no longer cleanly pass CI tests
What changes are included in this PR?
We can solve this by specifying a specific version of Rust using
rust-toolchain.toml
https://rust-lang.github.io/rustup/overrides.html
We use this in influxdb_iox and it works well for avoiding surprise brekages
The downside is that to use a newer version of rust with DataFusion will require a PR to update the config file
Changes:
rust-toolchain.toml
fileAre these changes tested?
by CI
(testing)
Are there any user-facing changes?
Hopefully a more controlled experience