
# Objective - We use [`ci_testing`](https://dev-docs.bevyengine.org/bevy/dev_tools/ci_testing/index.html) to specify per-example configuration on when to take a screenshot, when to exit, etc. - In the future more features may be added, such as #13512. To support this growth, `ci_testing` should be easier to read and maintain. ## Solution - Convert `ci_testing.rs` into the folder `ci_testing`, splitting the configuration and systems into `ci_testing/config.rs` and `ci_testing/systems.rs`. - Convert `setup_app` into the plugin `CiTestingPlugin`. This new plugin is added to both `DefaultPlugins` and `MinimalPlugins`. - Remove `DevToolsPlugin` from `MinimalPlugins`, since it was only used for CI testing. - Clean up some code, add many comments, and add a few unit tests. ## Testing The most important part is that this still passes all of the CI validation checks (merge queue), since that is when it will be used the most. I don't think I changed any behavior, so it should operate the same. You can also test it locally using: ```shell # Run the breakout example, enabling `bevy_ci_testing` and loading the configuration used in CI. CI_TESTING_CONFIG=".github/example-run/breakout.ron" cargo r --example breakout -F bevy_ci_testing ``` --- ## Changelog - Added `CiTestingPlugin`, which is split off from `DevToolsPlugin`. - Removed `DevToolsPlugin` from `MinimalPlugins`. ## Migration Guide Hi maintainers! I believe `DevToolsPlugin` was added within the same release as this PR, so I don't think a migration guide is needed. `DevToolsPlugin` is no longer included in `MinimalPlugins`, so you will need to remove it manually. ```rust // Before App::new() .add_plugins(MinimalPlugins) .run(); // After App::new() .add_plugins(MinimalPlugins) .add_plugins(DevToolsPlugin) .run(); ``` --------- Co-authored-by: Alice Cecile <alice.i.cecile@gmail.com> Co-authored-by: François Mockers <francois.mockers@vleue.com>
53 lines
1.7 KiB
Rust
53 lines
1.7 KiB
Rust
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
|
|
#![forbid(unsafe_code)]
|
|
#![doc(
|
|
html_logo_url = "https://bevyengine.org/assets/icon.png",
|
|
html_favicon_url = "https://bevyengine.org/assets/icon.png"
|
|
)]
|
|
|
|
//! This crate provides additional utilities for the [Bevy game engine](https://bevyengine.org),
|
|
//! focused on improving developer experience.
|
|
|
|
use bevy_app::prelude::*;
|
|
|
|
#[cfg(feature = "bevy_ci_testing")]
|
|
pub mod ci_testing;
|
|
|
|
pub mod fps_overlay;
|
|
|
|
#[cfg(feature = "bevy_ui_debug")]
|
|
pub mod ui_debug_overlay;
|
|
|
|
/// Enables developer tools in an [`App`]. This plugin is added automatically with `bevy_dev_tools`
|
|
/// feature.
|
|
///
|
|
/// Warning: It is not recommended to enable this in final shipped games or applications.
|
|
/// Dev tools provide a high level of access to the internals of your application,
|
|
/// and may interfere with ordinary use and gameplay.
|
|
///
|
|
/// To enable developer tools, you can either:
|
|
///
|
|
/// - Create a custom crate feature (e.g "`dev_mode`"), which enables the `bevy_dev_tools` feature
|
|
/// along with any other development tools you might be using:
|
|
///
|
|
/// ```toml
|
|
/// [feature]
|
|
/// dev_mode = ["bevy/bevy_dev_tools", "other_dev_tools"]
|
|
/// ```
|
|
///
|
|
/// - Use `--feature bevy/bevy_dev_tools` flag when using the `cargo run` command:
|
|
///
|
|
/// `cargo run --features bevy/bevy_dev_tools`
|
|
///
|
|
/// - Add the `bevy_dev_tools` feature to the bevy dependency in your `Cargo.toml` file:
|
|
///
|
|
/// `features = ["bevy_dev_tools"]`
|
|
///
|
|
/// Note: The third method is not recommended, as it requires you to remove the feature before
|
|
/// creating a build for release to the public.
|
|
pub struct DevToolsPlugin;
|
|
|
|
impl Plugin for DevToolsPlugin {
|
|
fn build(&self, _app: &mut App) {}
|
|
}
|