diff --git a/crates/bevy_asset/src/lib.rs b/crates/bevy_asset/src/lib.rs index 92ff7a9b22941..2a2566d2dd9ca 100644 --- a/crates/bevy_asset/src/lib.rs +++ b/crates/bevy_asset/src/lib.rs @@ -204,8 +204,6 @@ pub use reflect::*; pub use render_asset::*; pub use server::*; -/// Rusty Object Notation, a crate used to serialize and deserialize bevy assets. -pub use ron; pub use uuid; use crate::{ diff --git a/crates/bevy_scene/Cargo.toml b/crates/bevy_scene/Cargo.toml index 388aa8b3d838e..f61bfd2357093 100644 --- a/crates/bevy_scene/Cargo.toml +++ b/crates/bevy_scene/Cargo.toml @@ -11,6 +11,7 @@ keywords = ["bevy"] [features] default = ["serialize"] serialize = [ + "dep:ron", "dep:serde", "uuid/serde", "bevy_ecs/serialize", @@ -32,6 +33,7 @@ bevy_platform = { path = "../bevy_platform", version = "0.18.0-dev", default-fea ] } # other +ron = { version = "0.11", default-features = false, optional = true } serde = { version = "1.0", features = ["derive"], optional = true } uuid = { version = "1.13.1", features = ["v4"] } thiserror = { version = "2", default-features = false } diff --git a/crates/bevy_scene/src/dynamic_scene.rs b/crates/bevy_scene/src/dynamic_scene.rs index f9ef1616ee4e6..9ac4d7e3cef7c 100644 --- a/crates/bevy_scene/src/dynamic_scene.rs +++ b/crates/bevy_scene/src/dynamic_scene.rs @@ -13,11 +13,7 @@ use bevy_ecs::component::ComponentCloneBehavior; use bevy_ecs::relationship::RelationshipHookMode; #[cfg(feature = "serialize")] -use { - crate::{ron, serde::SceneSerializer}, - bevy_reflect::TypeRegistry, - serde::Serialize, -}; +use {crate::serde::SceneSerializer, bevy_reflect::TypeRegistry, serde::Serialize}; /// A collection of serializable resources and dynamic entities. /// diff --git a/crates/bevy_scene/src/lib.rs b/crates/bevy_scene/src/lib.rs index cd6be1f5d4597..b93515f5fe5d2 100644 --- a/crates/bevy_scene/src/lib.rs +++ b/crates/bevy_scene/src/lib.rs @@ -24,9 +24,6 @@ mod scene_spawner; #[cfg(feature = "serialize")] pub mod serde; -/// Rusty Object Notation, a crate used to serialize and deserialize bevy scenes. -pub use bevy_asset::ron; - pub use components::*; pub use dynamic_scene::*; pub use dynamic_scene_builder::*; diff --git a/crates/bevy_scene/src/scene_loader.rs b/crates/bevy_scene/src/scene_loader.rs index d74dff84f5a6d..16b6015023a85 100644 --- a/crates/bevy_scene/src/scene_loader.rs +++ b/crates/bevy_scene/src/scene_loader.rs @@ -1,4 +1,3 @@ -use crate::ron; use bevy_ecs::{ reflect::AppTypeRegistry, world::{FromWorld, World}, diff --git a/crates/bevy_scene/src/serde.rs b/crates/bevy_scene/src/serde.rs index 84badb5850bef..00a85ff13d292 100644 --- a/crates/bevy_scene/src/serde.rs +++ b/crates/bevy_scene/src/serde.rs @@ -52,7 +52,7 @@ pub const ENTITY_FIELD_COMPONENTS: &str = "components"; /// let scene_serializer = SceneSerializer::new(&scene, ®istry); /// /// // Serialize through any serde-compatible Serializer -/// let ron_string = bevy_scene::ron::ser::to_string(&scene_serializer); +/// let ron_string = ron::ser::to_string(&scene_serializer); /// ``` pub struct SceneSerializer<'a> { /// The scene to serialize. @@ -510,7 +510,6 @@ impl<'a, 'de> Visitor<'de> for SceneMapVisitor<'a> { #[cfg(test)] mod tests { use crate::{ - ron, serde::{SceneDeserializer, SceneSerializer}, DynamicScene, DynamicSceneBuilder, }; @@ -522,6 +521,7 @@ mod tests { world::FromWorld, }; use bevy_reflect::{Reflect, ReflectDeserialize, ReflectSerialize}; + use ron; use serde::{de::DeserializeSeed, Deserialize, Serialize}; use std::io::BufReader; diff --git a/release-content/migration-guides/remove_ron_reexport.md b/release-content/migration-guides/remove_ron_reexport.md new file mode 100644 index 0000000000000..bf10d66b536ba --- /dev/null +++ b/release-content/migration-guides/remove_ron_reexport.md @@ -0,0 +1,10 @@ +--- +title: Remove ron re-export from bevy_scene and bevy_asset +pull_requests: [21611] +--- + +The `ron` crate is no longer re-exported from `bevy_scene` or `bevy_asset`. This was done to reduce naming conflicts and improve API clarity. + +If you were importing `ron` through `bevy_scene` or `bevy_asset`, you should now add `ron` as a direct dependency to your project. + +This change only affects code that was explicitly importing the `ron` module. All internal scene serialization and deserialization functionality remains unchanged.