-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
prepare PR that will "dry run" the crater migration #85895
Comments
Some notes here on Zulip: https://zulip-archive.rust-lang.org/268952edition2021/01650Rust2021dryruncraterrun.html |
Mentoring notesI'm no expert on the crater code, but here are some notes extracted from the thread above (thanks @pietroalbini). The goalWe want to modify crater so that, for each 2018 crate, it runs
One thing I'm not entirely sure about: crater normally does comparisons between two toolchains. Presumably the baseline behavior here is just a regular build and not running cargo fix. I'm not sure how that logic is encoded. Modifying craterTo start, you would add a mode like When you do, the compiler will take you on a little tour of the crater code. The critical bit is here, where we create different kinds of tasks depending on the mode: We'll have to add a new kind of TaskStep for "cargo fix --edition" and propagate things around: At some point that will require writing a function like this that actually invokes Testing craterYou can run crater from the CLI, as described here: https://github.com/rust-lang/crater/blob/master/docs/cli-usage.md |
@ehuss pointed out on Zulip that another, perhaps better, approach would be to do a crater run with a modified cargo. This would make it easier to get a "stable" comparison. The idea would be to modify cargo so that e.g. |
Actually, now that I think about it the best way to implement this in Crater would be to add a new "toolchain flag" that runs You'd need to add a boolean flag here and implement display and parse for |
I have prepared a hacked cargo that should work: ehuss/cargo@e32d9d5 Another snag I ran into was that crater runs with a read-only filesystem. The source needs to be writeable to apply any fixes. The hack copies the source to Getting crater to support this use case would be nice, but I think will require quite a few changes (such as making the |
The crater run is happening here: #87190 (First the top-1000 crates. Later everything.) |
As part of the 2021 Edition release, we want to do a "dry run" crater run that attempts to do migrations and then builds and runs tests. This will help us check the lints.
We cannot actually run this setup until the following issues are closed, but we can still do the work to prepare the PR now:
and other items in the "Feature Complete Blockers" column from the Rust 2021 Project Board.
The text was updated successfully, but these errors were encountered: