Files
leptos-shadcn-ui/scripts/fix_signal_management_dependencies.py
Peter Hanssens 83f3ebad83 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! 🚀
2025-09-13 15:55:57 +10:00

74 lines
2.5 KiB
Python
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
Script to fix signal management dependencies in all component crates
by replacing path dependencies with version dependencies for publishing.
"""
import os
import re
def fix_cargo_toml_dependencies(filepath):
"""Fix signal management dependency in Cargo.toml file"""
print(f"Fixing dependencies in {filepath}")
with open(filepath, 'r') as f:
content = f.read()
# Replace path dependency with version dependency
old_dependency = 'leptos-shadcn-signal-management = { path = "../../signal-management" }'
new_dependency = 'leptos-shadcn-signal-management = "0.1.0"'
if old_dependency in content:
content = content.replace(old_dependency, new_dependency)
print(f"✅ Updated signal management dependency in {filepath}")
else:
print(f" No signal management dependency found in {filepath}")
with open(filepath, 'w') as f:
f.write(content)
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("🔧 Fixing Signal Management Dependencies")
print("=======================================")
components = get_component_directories()
print(f"Found {len(components)} component crates to fix")
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:
fix_cargo_toml_dependencies(cargo_toml_path)
updated_count += 1
except Exception as e:
print(f"❌ Error fixing {component}: {e}")
else:
print(f"⚠️ Cargo.toml not found for {component}")
print(f"\n✅ Successfully fixed dependencies in {updated_count} component crates")
print("📦 All components now reference the published signal management crate")
if __name__ == "__main__":
main()