-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
[Merged by Bors] - add rust-version for MSRV and CI job to check #6852
Closed
Closed
Changes from 2 commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Shouldn't this be specified on all of the crates, not just the top level
bevy
? Ideally with workspace inheritance.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'm not sure. For the moment, the only crates that make sense to use individually would be
bevy_ecs
andbevy_reflect
. There is no "need" to have them all on the same msrv, so that could mean multiplying the time in CI...In my opinion the role of this field is mostly to provide a better error message for Bevy users.
If done with workspace inheritance, I would prefer to do most of the
Cargo.toml
fields at the same time, there are already at least one PR up for that #6089There 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 still makes sense from a plugin developer perspective, where we encourage depending on individual crates over the top level
bevy
to minimize compile times.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.
We don't?
That break pretty much all discoverability of plugins through dependency like https://lib.rs/crates/bevy/rev
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.
Just checked the plugin guidelines and I guess we never did add those findings to it. Issues like #5528 are going to get worse as the engine and ecosystem grows. IMO, discoverability is a weak argument for serializing dependency compilation on a single choke point, especially when alternatives for discoverability exist.
This isn't the place for this conversation though.
If these are the crates that are most avidly consuming new Rust language features, the rest of the engine is underpinned by both right now. If we bump the MSRV of either of them, the rest of the engine transitively takes on that MSRV as well, and with
bevy_reflect
being a dependency ofbevy_ecs
, the two are likely to be kept in sync. Likewise, if we want a MSRV onbevy_ecs
, it should be on the crate itself, not the top level crate. I'm well aware of multiple groups picking and choosing parts of Bevy for their own purposes without pulling the whole engine in, and only putting it onbevy
does not solve this issue for them.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.
Those would look like advanced users, at that point I would hope they are pinning versions of everything or vendoring, and have a good scenario for updates anyway.
I think the most interesting type of users for this check is new users of Bevy / Rust.
Putting it on all crates will be handled by workspace inheritance with #6089. I'll update this PR to use it if it's merged first, but I don't think this PR is the place to add it.
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.
Agreed with Francois here: we're targeting beginners with this change, who are overwhelmingly just going to use bevy itself.