Open alice-i-cecile opened 5 months ago
For instance, we have to clarify what is a dev tool and what is a candidate of ingressing this crate.
IMO, a simple way of saying if the thing is a dev tool or not is one question: Is this a feature that the user can already do themselves from their own code? If the answer is yes, so maybe this is indeed a tool. For example, in #11237, the user can already do this plugin if they want, but we are trying to do this tool native so the user don't need to do that, as a shortcut. There is a number of ways of doing the same thing, so the user can try to do this themselves if they wants something more from this tool. At the same time, not everything that is a tool necessarily needs to be in this crate, some tools might need Resources or Components that aren't public for the crate, or the tool isn't a debug only tool, or the tool deserves a crate for it for example.
I think every tool should be something that isn't required by the engine itself, something that most users wouldn't need to include in final builds. And most importantly it should be aimed at helping development, whether by speeding it up or allowing for faster prototyping.
Great question! My stance on "what is bevy_dev_tools":
The fact that users could use these tools in a final product doesn't negate the fact that they're primarily going to be used for development: there's nothing stopping you from enabling dev tools in your final build but only turning on the key features you need :)
Originally posted by @alice-i-cecile in https://github.com/bevyengine/bevy/issues/12354#issuecomment-1982307594