From 1b3836ed4c6bbcdb122dd1d6195dbf16af889e48 Mon Sep 17 00:00:00 2001 From: Sienna Meridian Satterwhite Date: Fri, 6 Feb 2026 20:33:03 +0000 Subject: [PATCH] Prepare v0.1.1 release for crates.io - Rename `macros` crate to `libmarathon-macros` for better discoverability on crates.io - Update all imports from `macros::` to `libmarathon_macros::` - Add crates.io metadata (description, license, repository, homepage, etc.) - Bump version to 0.1.1 - Add version requirement for libmarathon-macros dependency Co-Authored-By: Claude Sonnet 4.5 --- Cargo.lock | 42 +++++++++---------- crates/app/Cargo.toml | 2 +- crates/app/src/cube.rs | 2 +- crates/libmarathon/Cargo.toml | 11 ++++- .../src/networking/sync_component.rs | 2 +- .../src/render/extract_component.rs | 2 +- .../src/render/extract_resource.rs | 2 +- crates/libmarathon/src/render/gpu_readback.rs | 2 +- crates/libmarathon/src/render/mod.rs | 2 +- .../src/render/render_graph/graph.rs | 2 +- .../src/render/render_graph/node.rs | 2 +- .../src/render/render_phase/mod.rs | 4 +- .../src/render/render_resource/bind_group.rs | 2 +- .../src/render/render_resource/specializer.rs | 2 +- .../src/render/texture/manual_texture_view.rs | 2 +- crates/libmarathon/src/render/view/mod.rs | 2 +- crates/libmarathon/src/sync.rs | 2 +- .../tests/sync_integration_headless.rs | 4 +- crates/macros/Cargo.toml | 8 +++- crates/macros/src/lib.rs | 2 +- crates/macros/tests/basic_macro_test.rs | 4 +- 21 files changed, 57 insertions(+), 46 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 975e336..de4ccce 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -276,7 +276,7 @@ dependencies = [ "iroh", "iroh-gossip", "libmarathon", - "macros", + "libmarathon-macros", "objc", "rand 0.8.5", "raw-window-handle", @@ -4535,7 +4535,7 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libmarathon" -version = "0.1.0" +version = "0.1.1" dependencies = [ "anyhow", "async-channel", @@ -4584,7 +4584,7 @@ dependencies = [ "iroh", "iroh-gossip", "itertools 0.14.0", - "macros", + "libmarathon-macros", "naga", "nonmax", "offset-allocator", @@ -4614,6 +4614,24 @@ dependencies = [ "winit", ] +[[package]] +name = "libmarathon-macros" +version = "0.1.1" +dependencies = [ + "anyhow", + "bevy", + "bevy_macro_utils", + "bytes", + "inventory", + "libmarathon", + "proc-macro2", + "quote", + "rkyv", + "serde", + "syn", + "tracing", +] + [[package]] name = "libredox" version = "0.1.10" @@ -4728,24 +4746,6 @@ dependencies = [ "libc", ] -[[package]] -name = "macros" -version = "0.1.0" -dependencies = [ - "anyhow", - "bevy", - "bevy_macro_utils", - "bytes", - "inventory", - "libmarathon", - "proc-macro2", - "quote", - "rkyv", - "serde", - "syn", - "tracing", -] - [[package]] name = "mainline" version = "6.0.1" diff --git a/crates/app/Cargo.toml b/crates/app/Cargo.toml index d19b763..436669d 100644 --- a/crates/app/Cargo.toml +++ b/crates/app/Cargo.toml @@ -11,7 +11,7 @@ headless = [] [dependencies] libmarathon = { path = "../libmarathon" } -macros = { path = "../macros" } +libmarathon-macros = { path = "../macros" } inventory.workspace = true rkyv.workspace = true bevy = { version = "0.17.2", default-features = false, features = [ diff --git a/crates/app/src/cube.rs b/crates/app/src/cube.rs index a1480d4..3c48a1a 100644 --- a/crates/app/src/cube.rs +++ b/crates/app/src/cube.rs @@ -8,7 +8,7 @@ use uuid::Uuid; /// /// This component contains all the data needed for rendering a cube. /// The `#[synced]` attribute automatically handles network synchronization. -#[macros::synced] +#[libmarathon_macros::synced] pub struct CubeMarker { /// RGB color values (0.0 to 1.0) pub color_r: f32, diff --git a/crates/libmarathon/Cargo.toml b/crates/libmarathon/Cargo.toml index 1fc0708..3641133 100644 --- a/crates/libmarathon/Cargo.toml +++ b/crates/libmarathon/Cargo.toml @@ -1,7 +1,14 @@ [package] name = "libmarathon" -version = "0.1.0" +version = "0.1.1" edition.workspace = true +description = "A peer-to-peer game engine development kit with CRDT-based state synchronization" +license = "MIT" +repository = "https://github.com/r3t-studios/marathon" +homepage = "https://github.com/r3t-studios/marathon" +readme = "../../README.md" +keywords = ["gamedev", "p2p", "crdt", "multiplayer", "bevy"] +categories = ["game-engines", "network-programming"] [dependencies] anyhow.workspace = true @@ -23,7 +30,7 @@ bevy_math = "0.17.2" bevy_mesh = "0.17.2" bevy_platform = { version = "0.17.2", default-features = false } bevy_reflect = "0.17.2" -macros = { path = "../macros" } +libmarathon-macros = { version = "0.1.1", path = "../macros" } bevy_shader = "0.17.2" bevy_tasks = "0.17.2" bevy_time = "0.17.2" diff --git a/crates/libmarathon/src/networking/sync_component.rs b/crates/libmarathon/src/networking/sync_component.rs index 3beb2e5..cdd0f63 100644 --- a/crates/libmarathon/src/networking/sync_component.rs +++ b/crates/libmarathon/src/networking/sync_component.rs @@ -109,7 +109,7 @@ pub trait SyncComponent: Component + Reflect + Sized { /// /// ```no_compile /// // Define a synced component with the #[synced] attribute -/// #[macros::synced] +/// #[libmarathon_macros::synced] /// pub struct CubeMarker { /// pub color_r: f32, /// pub size: f32, diff --git a/crates/libmarathon/src/render/extract_component.rs b/crates/libmarathon/src/render/extract_component.rs index 47f4bb1..9db975e 100644 --- a/crates/libmarathon/src/render/extract_component.rs +++ b/crates/libmarathon/src/render/extract_component.rs @@ -15,7 +15,7 @@ use bevy_ecs::{ }; use core::{marker::PhantomData, ops::Deref}; -pub use macros::ExtractComponent; +pub use libmarathon_macros::ExtractComponent; /// Stores the index of a uniform inside of [`ComponentUniforms`]. #[derive(Component)] diff --git a/crates/libmarathon/src/render/extract_resource.rs b/crates/libmarathon/src/render/extract_resource.rs index d1be4a9..9b10dd6 100644 --- a/crates/libmarathon/src/render/extract_resource.rs +++ b/crates/libmarathon/src/render/extract_resource.rs @@ -2,7 +2,7 @@ use core::marker::PhantomData; use bevy_app::{App, Plugin}; use bevy_ecs::prelude::*; -pub use macros::ExtractResource; +pub use libmarathon_macros::ExtractResource; use bevy_utils::once; use crate::render::{Extract, ExtractSchedule, RenderApp}; diff --git a/crates/libmarathon/src/render/gpu_readback.rs b/crates/libmarathon/src/render/gpu_readback.rs index 2c09086..012ad52 100644 --- a/crates/libmarathon/src/render/gpu_readback.rs +++ b/crates/libmarathon/src/render/gpu_readback.rs @@ -26,7 +26,7 @@ use bevy_ecs::{ use bevy_image::{Image, TextureFormatPixelInfo}; use bevy_platform::collections::HashMap; use bevy_reflect::Reflect; -use macros::ExtractComponent; +use libmarathon_macros::ExtractComponent; use encase::internal::ReadFrom; use encase::private::Reader; use encase::ShaderType; diff --git a/crates/libmarathon/src/render/mod.rs b/crates/libmarathon/src/render/mod.rs index 72125e8..4f446b9 100644 --- a/crates/libmarathon/src/render/mod.rs +++ b/crates/libmarathon/src/render/mod.rs @@ -29,7 +29,7 @@ pub use crate::define_atomic_id; // Re-export derive macros from macros -pub use macros::{AsBindGroup, RenderLabel, RenderSubGraph}; +pub use libmarathon_macros::{AsBindGroup, RenderLabel, RenderSubGraph}; #[cfg(target_pointer_width = "16")] compile_error!("bevy_render cannot compile for a 16-bit platform."); diff --git a/crates/libmarathon/src/render/render_graph/graph.rs b/crates/libmarathon/src/render/render_graph/graph.rs index 83e8288..7f8720e 100644 --- a/crates/libmarathon/src/render/render_graph/graph.rs +++ b/crates/libmarathon/src/render/render_graph/graph.rs @@ -11,7 +11,7 @@ use core::fmt::Debug; use super::{EdgeExistence, InternedRenderLabel, IntoRenderNodeArray}; -pub use macros::RenderSubGraph; +pub use libmarathon_macros::RenderSubGraph; define_label!( #[diagnostic::on_unimplemented( diff --git a/crates/libmarathon/src/render/render_graph/node.rs b/crates/libmarathon/src/render/render_graph/node.rs index df3ee5d..fc078e8 100644 --- a/crates/libmarathon/src/render/render_graph/node.rs +++ b/crates/libmarathon/src/render/render_graph/node.rs @@ -18,7 +18,7 @@ use downcast_rs::{impl_downcast, Downcast}; use thiserror::Error; use variadics_please::all_tuples_with_size; -pub use macros::RenderLabel; +pub use libmarathon_macros::RenderLabel; use super::{InternedRenderSubGraph, RenderSubGraph}; diff --git a/crates/libmarathon/src/render/render_phase/mod.rs b/crates/libmarathon/src/render/render_phase/mod.rs index 9a89fa9..77b53ab 100644 --- a/crates/libmarathon/src/render/render_phase/mod.rs +++ b/crates/libmarathon/src/render/render_phase/mod.rs @@ -68,7 +68,7 @@ use bevy_ecs::{ system::{lifetimeless::SRes, SystemParamItem}, }; use crate::render::renderer::RenderAdapterInfo; -pub use macros::ShaderLabel; +pub use libmarathon_macros::ShaderLabel; use core::{fmt::Debug, hash::Hash, iter, marker::PhantomData, ops::Range, slice::SliceIndex}; use smallvec::SmallVec; use tracing::warn; @@ -85,7 +85,7 @@ define_label!( /// A shorthand for `Interned`. pub type InternedShaderLabel = Interned; -pub use macros::DrawFunctionLabel; +pub use libmarathon_macros::DrawFunctionLabel; define_label!( #[diagnostic::on_unimplemented( diff --git a/crates/libmarathon/src/render/render_resource/bind_group.rs b/crates/libmarathon/src/render/render_resource/bind_group.rs index c7b6f7e..e1a372a 100644 --- a/crates/libmarathon/src/render/render_resource/bind_group.rs +++ b/crates/libmarathon/src/render/render_resource/bind_group.rs @@ -7,7 +7,7 @@ use crate::render::{ }; use bevy_derive::{Deref, DerefMut}; use bevy_ecs::system::{SystemParam, SystemParamItem}; -pub use macros::AsBindGroup; +pub use libmarathon_macros::AsBindGroup; use core::ops::Deref; use encase::ShaderType; use thiserror::Error; diff --git a/crates/libmarathon/src/render/render_resource/specializer.rs b/crates/libmarathon/src/render/render_resource/specializer.rs index 31edf62..c816f45 100644 --- a/crates/libmarathon/src/render/render_resource/specializer.rs +++ b/crates/libmarathon/src/render/render_resource/specializer.rs @@ -14,7 +14,7 @@ use core::{hash::Hash, marker::PhantomData}; use tracing::error; use variadics_please::all_tuples; -pub use macros::{Specializer, SpecializerKey}; +pub use libmarathon_macros::{Specializer, SpecializerKey}; /// Defines a type that is able to be "specialized" and cached by creating and transforming /// its descriptor type. This is implemented for [`RenderPipeline`] and [`ComputePipeline`], and diff --git a/crates/libmarathon/src/render/texture/manual_texture_view.rs b/crates/libmarathon/src/render/texture/manual_texture_view.rs index 898d041..27b020c 100644 --- a/crates/libmarathon/src/render/texture/manual_texture_view.rs +++ b/crates/libmarathon/src/render/texture/manual_texture_view.rs @@ -3,7 +3,7 @@ use bevy_ecs::{prelude::Component, resource::Resource}; use bevy_image::BevyDefault; use bevy_math::UVec2; use bevy_platform::collections::HashMap; -use macros::ExtractResource; +use libmarathon_macros::ExtractResource; use wgpu::TextureFormat; use crate::render::render_resource::TextureView; diff --git a/crates/libmarathon/src/render/view/mod.rs b/crates/libmarathon/src/render/view/mod.rs index d116455..c5c41ab 100644 --- a/crates/libmarathon/src/render/view/mod.rs +++ b/crates/libmarathon/src/render/view/mod.rs @@ -33,7 +33,7 @@ use bevy_image::{BevyDefault as _, ToExtents}; use bevy_math::{mat3, vec2, vec3, Mat3, Mat4, UVec4, Vec2, Vec3, Vec4, Vec4Swizzles}; use bevy_platform::collections::{hash_map::Entry, HashMap}; use bevy_reflect::{std_traits::ReflectDefault, Reflect}; -use macros::ExtractComponent; +use libmarathon_macros::ExtractComponent; use bevy_shader::load_shader_library; use bevy_transform::components::GlobalTransform; use core::{ diff --git a/crates/libmarathon/src/sync.rs b/crates/libmarathon/src/sync.rs index 98accd2..a4ede84 100644 --- a/crates/libmarathon/src/sync.rs +++ b/crates/libmarathon/src/sync.rs @@ -18,7 +18,7 @@ use serde::{ Serialize, }; // TODO: Re-export the Synced derive macro (not part of bevy_render_macros) -// pub use macros::Synced; +// pub use libmarathon_macros::Synced; pub type NodeId = uuid::Uuid; diff --git a/crates/libmarathon/tests/sync_integration_headless.rs b/crates/libmarathon/tests/sync_integration_headless.rs index bb52ecd..c75eef5 100644 --- a/crates/libmarathon/tests/sync_integration_headless.rs +++ b/crates/libmarathon/tests/sync_integration_headless.rs @@ -70,7 +70,7 @@ use uuid::Uuid; // ============================================================================ /// Simple position component for testing sync -#[macros::synced] +#[libmarathon_macros::synced] #[derive(Reflect, PartialEq)] #[reflect(Component)] struct TestPosition { @@ -79,7 +79,7 @@ struct TestPosition { } /// Simple health component for testing sync -#[macros::synced] +#[libmarathon_macros::synced] #[derive(Reflect, PartialEq)] #[reflect(Component)] struct TestHealth { diff --git a/crates/macros/Cargo.toml b/crates/macros/Cargo.toml index 88bfd7a..95749d2 100644 --- a/crates/macros/Cargo.toml +++ b/crates/macros/Cargo.toml @@ -1,7 +1,11 @@ [package] -name = "macros" -version = "0.1.0" +name = "libmarathon-macros" +version = "0.1.1" edition.workspace = true +description = "Procedural macros for the Marathon game engine" +license = "MIT" +repository = "https://github.com/r3t-studios/marathon" +homepage = "https://github.com/r3t-studios/marathon" [lib] proc-macro = true diff --git a/crates/macros/src/lib.rs b/crates/macros/src/lib.rs index 88859c1..fadb8e6 100644 --- a/crates/macros/src/lib.rs +++ b/crates/macros/src/lib.rs @@ -160,7 +160,7 @@ pub fn derive_draw_function_label(input: TokenStream) -> TokenStream { /// # Example /// /// ```no_compile -/// use macros::synced; +/// use libmarathon_macros::synced; /// /// #[synced] /// pub struct CubeMarker { diff --git a/crates/macros/tests/basic_macro_test.rs b/crates/macros/tests/basic_macro_test.rs index b8ca633..e3e3eef 100644 --- a/crates/macros/tests/basic_macro_test.rs +++ b/crates/macros/tests/basic_macro_test.rs @@ -2,7 +2,7 @@ use bevy::prelude::*; // Test 1: Basic struct with synced attribute compiles -#[macros::synced] +#[libmarathon_macros::synced] struct Health { current: f32, } @@ -58,7 +58,7 @@ fn test_health_is_clone_and_copy() { } // Test 2: Struct with multiple fields -#[macros::synced] +#[libmarathon_macros::synced] struct Position { x: f32, y: f32,