mirror of
https://github.com/cloud-shuttle/leptos-shadcn-ui.git
synced 2025-12-23 06:10:01 +00:00
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:
90
scripts/update_component_versions.py
Executable file
90
scripts/update_component_versions.py
Executable 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()
|
||||
Reference in New Issue
Block a user