feat: Update all component crates to v0.8.0 with signal management integration

🎉 MAJOR UPDATE: All 49 Component Crates Updated to v0.8.0

## What's New in v0.8.0
-  Complete signal management integration with ArcRwSignal & ArcMemo
-  Signal-managed versions of all components (signal_managed.rs)
-  Performance optimizations with batched updates
-  Memory management and leak detection
-  Enhanced APIs with backward compatibility
-  Updated dependencies to use published signal management crate

## Updated Components (49 total)
- All individual component crates bumped from 0.7.0 → 0.8.0
- Dependencies updated to reference leptos-shadcn-signal-management v0.1.0
- Ready for publication to crates.io

## Breaking Changes
- None! All existing APIs remain backward compatible
- New signal-managed APIs are additive features

## Ready for Publication
- All crates validated and ready for crates.io
- Signal management features now available to community
- Production-ready components with advanced signal integration

This release represents the culmination of the Leptos 0.8.8 signal integration
project, making advanced signal management features available to all users! 🚀
This commit is contained in:
Peter Hanssens
2025-09-13 15:55:57 +10:00
parent eba29c0868
commit 83f3ebad83
50 changed files with 561 additions and 252 deletions

View File

@@ -0,0 +1,90 @@
#!/usr/bin/env python3
"""
Script to update all component crate versions from 0.7.0 to 0.8.0
to reflect the new signal management integration features.
"""
import os
import re
import subprocess
import sys
def update_cargo_toml_version(filepath, old_version, new_version):
"""Update version in Cargo.toml file"""
print(f"Updating {filepath} from {old_version} to {new_version}")
with open(filepath, 'r') as f:
content = f.read()
# Update version line
content = re.sub(
rf'^version = "{old_version}"',
f'version = "{new_version}"',
content,
flags=re.MULTILINE
)
with open(filepath, 'w') as f:
f.write(content)
print(f"✅ Updated {filepath}")
def get_component_directories():
"""Get all component directories that have Cargo.toml files"""
components = []
leptos_dir = "packages/leptos"
for item in os.listdir(leptos_dir):
item_path = os.path.join(leptos_dir, item)
if os.path.isdir(item_path):
cargo_toml = os.path.join(item_path, "Cargo.toml")
if os.path.exists(cargo_toml):
# Check if it's a component crate (has leptos-shadcn- prefix)
with open(cargo_toml, 'r') as f:
content = f.read()
if 'name = "leptos-shadcn-' in content:
components.append(item)
return sorted(components)
def main():
print("🚀 Updating Component Crate Versions")
print("====================================")
old_version = "0.7.0"
new_version = "0.8.0"
components = get_component_directories()
print(f"Found {len(components)} component crates to update:")
updated_count = 0
for component in components:
cargo_toml_path = os.path.join("packages/leptos", component, "Cargo.toml")
if os.path.exists(cargo_toml_path):
try:
update_cargo_toml_version(cargo_toml_path, old_version, new_version)
updated_count += 1
except Exception as e:
print(f"❌ Error updating {component}: {e}")
else:
print(f"⚠️ Cargo.toml not found for {component}")
print(f"\n✅ Successfully updated {updated_count} component crates")
print(f"📦 All components now at version {new_version}")
# Also update the main workspace Cargo.toml if needed
workspace_cargo = "Cargo.toml"
if os.path.exists(workspace_cargo):
print(f"\n🔄 Checking workspace version...")
with open(workspace_cargo, 'r') as f:
content = f.read()
if f'version = "{old_version}"' in content:
update_cargo_toml_version(workspace_cargo, old_version, new_version)
print("✅ Updated workspace version")
else:
print(" Workspace version already up to date")
if __name__ == "__main__":
main()