287 lines
10 KiB
Plaintext
Raw Permalink Normal View History

feat: major repository modernization and tracking cleanup ## Summary Comprehensive repository cleanup focusing on plugin dependency management, documentation improvements, and git tracking optimization. ## Key Changes ### 🔧 Core Infrastructure - Synchronized all nu-* dependencies across plugins for version consistency - Enhanced upstream tracking and automation systems - Removed nushell directory from git tracking for cleaner repository management ### 📚 Documentation - Significantly expanded README.md with comprehensive development guides - Added detailed workflow documentation and command references - Improved plugin collection overview and usage examples ### 🧹 Repository Cleanup - Removed legacy bash scripts (build-all.sh, collect-install.sh, make_plugin.sh) - Streamlined automation through unified justfile and nushell script approach - Updated .gitignore with nushell directory and archive patterns - Removed nushell directory from git tracking to prevent unwanted changes ### 🔌 Plugin Updates - **nu_plugin_image**: Major refactoring with modular architecture improvements - **nu_plugin_hashes**: Enhanced functionality and build system improvements - **nu_plugin_highlight**: Updated for new plugin API compatibility - **nu_plugin_clipboard**: Dependency synchronization - **nu_plugin_desktop_notifications**: Version alignment - **nu_plugin_port_extension & nu_plugin_qr_maker**: Consistency updates - **nu_plugin_kcl & nu_plugin_tera**: Submodule synchronization ### 🏗️ Git Tracking Optimization - Removed nushell directory from version control for cleaner repository management - Added comprehensive .gitignore patterns for build artifacts and archives ## Statistics - 2,082 files changed - 2,373 insertions, 339,936 deletions - Net reduction of 337,563 lines (primarily from removing nushell directory tracking) ## Benefits - Complete version consistency across all plugins - Cleaner repository with optimized git tracking - Improved developer experience with streamlined workflows - Enhanced documentation and automation - Reduced repository size and complexity 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-20 19:02:28 +01:00
# Upstream Module - Repository Tracking and Synchronization
# Commands for managing upstream repositories and automated tracking
# 🔍 UPSTREAM CHECK COMMANDS
# Check upstream changes for all plugins
[no-cd]
upstream-check:
@echo "🔍 Checking upstream changes..."
@{{justfile_directory()}}/scripts/run.sh check_upstream_changes.nu
# Check upstream for specific plugin
[no-cd]
upstream-check-plugin PLUGIN:
@echo "🔍 Checking upstream for {{PLUGIN}}..."
@{{justfile_directory()}}/scripts/run.sh check_upstream_changes.nu --plugin {{PLUGIN}}
# Check upstream with verbose output
[no-cd]
upstream-check-verbose:
@echo "🔍 Checking upstream changes (verbose)..."
@{{justfile_directory()}}/scripts/run.sh check_upstream_changes.nu --verbose
# Check only plugins with pending status
[no-cd]
upstream-check-pending:
@echo "🔍 Checking only pending plugins..."
@{{justfile_directory()}}/scripts/run.sh check_upstream_changes.nu --pending-only
# 👀 UPSTREAM PREVIEW COMMANDS
# Preview merge changes for a plugin
[no-cd]
upstream-preview PLUGIN:
@echo "👀 Preview merge for {{PLUGIN}}..."
@{{justfile_directory()}}/scripts/run.sh safe_merge_upstream.nu --preview {{PLUGIN}}
# Preview all pending merges
[no-cd]
upstream-preview-all:
@echo "👀 Preview all pending merges..."
@{{justfile_directory()}}/scripts/run.sh safe_merge_upstream.nu --preview --all
# Show diff for plugin
[no-cd]
upstream-diff PLUGIN:
@echo "📋 Showing diff for {{PLUGIN}}..."
@{{justfile_directory()}}/scripts/run.sh safe_merge_upstream.nu --diff {{PLUGIN}}
# 🔀 UPSTREAM MERGE COMMANDS
# Safely merge upstream changes for a plugin
[no-cd]
upstream-merge PLUGIN:
@echo "🔀 Merging upstream changes for {{PLUGIN}}..."
@{{justfile_directory()}}/scripts/run.sh safe_merge_upstream.nu {{PLUGIN}}
# Merge all pending upstream changes
[no-cd]
upstream-merge-all:
@echo "🔀 Merging all pending upstream changes..."
@{{justfile_directory()}}/scripts/run.sh safe_merge_upstream.nu --all
# Force merge upstream for a plugin (even if status is OK)
[no-cd]
upstream-merge-force PLUGIN:
@echo "💪 Force merging {{PLUGIN}}..."
@{{justfile_directory()}}/scripts/run.sh safe_merge_upstream.nu --force {{PLUGIN}}
# Merge with auto-approval of dependency-only changes
[no-cd]
upstream-merge-auto PLUGIN:
@echo "🤖 Auto-merging {{PLUGIN}}..."
@{{justfile_directory()}}/scripts/run.sh safe_merge_upstream.nu --auto-approve {{PLUGIN}}
# Merge all with auto-approval
[no-cd]
upstream-merge-auto-all:
@echo "🤖 Auto-merging all pending changes..."
@{{justfile_directory()}}/scripts/run.sh safe_merge_upstream.nu --auto-approve --all
# 🔙 UPSTREAM ROLLBACK COMMANDS
# Rollback last merge for plugin
[no-cd]
upstream-rollback PLUGIN:
@echo "🔙 Rolling back {{PLUGIN}}..."
@{{justfile_directory()}}/scripts/run.sh safe_merge_upstream.nu --rollback {{PLUGIN}}
# Show rollback options for plugin
[no-cd]
upstream-rollback-info PLUGIN:
@echo " Rollback info for {{PLUGIN}}..."
@{{justfile_directory()}}/scripts/run.sh safe_merge_upstream.nu --rollback-info {{PLUGIN}}
# 📊 UPSTREAM STATUS COMMANDS
# Show upstream status for all plugins
[no-cd]
upstream-status:
@echo "📊 Upstream Status"
@{{justfile_directory()}}/scripts/run.sh plugin_status.nu
# Show detailed upstream status
[no-cd]
upstream-status-detailed:
@echo "📊 Detailed Upstream Status"
@{{justfile_directory()}}/scripts/run.sh plugin_status.nu --all
# Show plugins requiring attention
[no-cd]
upstream-attention:
@echo "🚨 Plugins Requiring Attention"
@{{justfile_directory()}}/scripts/run.sh plugin_status.nu attention
# Show upstream summary
[no-cd]
upstream-summary:
@echo "📊 Upstream Summary"
@{{justfile_directory()}}/scripts/run.sh plugin_status.nu summary
# Update plugin status manually
upstream-status-update PLUGIN STATUS:
@echo "🔄 Updating {{PLUGIN}} status to {{STATUS}}..."
@{{justfile_directory()}}/scripts/run.sh plugin_status.nu update {{PLUGIN}} {{STATUS}}
# Mark local development plugins as OK
[no-cd]
upstream-mark-locals-ok:
@echo "✅ Marking local development plugins as OK..."
@{{justfile_directory()}}/scripts/run.sh plugin_status.nu update nu_plugin_image ok
@{{justfile_directory()}}/scripts/run.sh plugin_status.nu update nu_plugin_hashes ok
@{{justfile_directory()}}/scripts/run.sh plugin_status.nu update nu_plugin_desktop_notifications ok
@echo "✅ All local plugins marked as OK"
# 🔧 UPSTREAM CONFIGURATION
# Show plugin registry information
[no-cd]
upstream-registry:
@echo "📋 Plugin Registry Information:"
@if [ -f etc/plugin_registry.toml ]; then \
echo "Registry file: etc/plugin_registry.toml"; \
echo ""; \
echo "Plugins with upstream:"; \
grep -A2 "upstream_url.*=" etc/plugin_registry.toml | grep -v "^--" || true; \
else \
echo "Registry file not found!"; \
fi
# Add plugin to upstream exclusion list
[no-cd]
upstream-exclude PLUGIN:
@echo "🚫 Adding {{PLUGIN}} to exclusion list..."
@EXCLUDE_FILE="etc/upstream_exclude.toml"; \
if grep -q "^plugins = \[" "$$EXCLUDE_FILE" 2>/dev/null; then \
sed -i.bak "/^plugins = \[/s/\]/\"{{PLUGIN}}\", \]/" "$$EXCLUDE_FILE"; \
echo "✅ Added {{PLUGIN}} to exclusions"; \
else \
echo "⚠️ Please manually add {{PLUGIN}} to $$EXCLUDE_FILE"; \
fi
# Remove plugin from upstream exclusion list
[no-cd]
upstream-include PLUGIN:
@echo "✅ Removing {{PLUGIN}} from exclusion list..."
@EXCLUDE_FILE="etc/upstream_exclude.toml"; \
sed -i.bak "s/\"{{PLUGIN}}\",*[[:space:]]*//" "$$EXCLUDE_FILE"; \
echo "✅ Removed {{PLUGIN}} from exclusions"
# Show excluded plugins
[no-cd]
upstream-excluded:
@echo "📋 Currently excluded plugins:"
@EXCLUDE_FILE="etc/upstream_exclude.toml"; \
if [ -f "$$EXCLUDE_FILE" ]; then \
grep -A10 "\[exclude\]" "$$EXCLUDE_FILE" | grep -E "^[[:space:]]*\"" | sed 's/[",]//g' | sed 's/^[[:space:]]*/ - /' || echo "No exclusions found"; \
else \
echo "No exclusions file found"; \
fi
# 🔄 UPSTREAM MAINTENANCE
# Fetch all upstream repositories
[no-cd]
upstream-fetch-all:
@echo "🔄 Fetching all upstream repositories..."
@for plugin in nu_plugin_*; do \
if [ -d "$$plugin/.git" ]; then \
echo "Fetching $$plugin..."; \
cd "$$plugin" && git fetch --all && cd ..; \
fi; \
done
# Show outdated upstream references
[no-cd]
upstream-outdated:
@echo "📅 Checking for outdated upstream references..."
@{{justfile_directory()}}/scripts/run.sh check_upstream_changes.nu --show-outdated
# Cleanup upstream tracking data
[no-cd]
upstream-cleanup:
@echo "🧹 Cleaning up upstream tracking data..."
@find . -name ".upstream_*" -type f -delete
@echo "✅ Cleanup completed"
# 🚨 UPSTREAM CONFLICT RESOLUTION
# Show conflicts for plugin
[no-cd]
upstream-conflicts PLUGIN:
@echo "🚨 Showing conflicts for {{PLUGIN}}..."
@cd {{PLUGIN}} && git status --porcelain | grep "^UU" || echo "No conflicts found"
# Reset plugin to clean state
[no-cd]
upstream-reset PLUGIN:
@echo "🔄 Resetting {{PLUGIN}} to clean state..."
@cd {{PLUGIN}} && git reset --hard HEAD && git clean -fd
# Create backup branch before merge
[no-cd]
upstream-backup PLUGIN:
@echo "💾 Creating backup branch for {{PLUGIN}}..."
@cd {{PLUGIN}} && git branch "backup-$(date +%Y%m%d-%H%M%S)" && echo "✅ Backup branch created"
# 📊 UPSTREAM INFORMATION
# Show upstream help
[no-cd]
upstream-help:
@echo "🔄 Upstream Module Help"
@echo "======================"
@echo ""
@echo "CHECK COMMANDS:"
@echo " upstream-check - Check all upstream changes"
@echo " upstream-check-plugin PLUGIN - Check specific plugin"
@echo " upstream-check-verbose - Check with verbose output"
@echo " upstream-check-pending - Check only pending plugins"
@echo ""
@echo "PREVIEW COMMANDS:"
@echo " upstream-preview PLUGIN - Preview merge changes"
@echo " upstream-preview-all - Preview all pending merges"
@echo " upstream-diff PLUGIN - Show diff for plugin"
@echo ""
@echo "MERGE COMMANDS:"
@echo " upstream-merge PLUGIN - Merge upstream changes"
@echo " upstream-merge-all - Merge all pending changes"
@echo " upstream-merge-force PLUGIN - Force merge"
@echo " upstream-merge-auto PLUGIN - Auto-merge dependencies"
@echo " upstream-merge-auto-all - Auto-merge all dependencies"
@echo ""
@echo "ROLLBACK COMMANDS:"
@echo " upstream-rollback PLUGIN - Rollback last merge"
@echo " upstream-rollback-info PLUGIN - Show rollback info"
@echo ""
@echo "STATUS COMMANDS:"
@echo " upstream-status - Show status for all plugins"
@echo " upstream-status-detailed - Show detailed status"
@echo " upstream-attention - Show plugins needing attention"
@echo " upstream-summary - Show summary"
@echo " upstream-status-update PLUGIN STATUS - Update status"
@echo " upstream-mark-locals-ok - Mark local plugins as OK"
@echo ""
@echo "CONFIGURATION:"
@echo " upstream-registry - Show registry information"
@echo " upstream-exclude PLUGIN - Add to exclusion list"
@echo " upstream-include PLUGIN - Remove from exclusion list"
@echo " upstream-excluded - Show excluded plugins"
@echo ""
@echo "MAINTENANCE:"
@echo " upstream-fetch-all - Fetch all repositories"
@echo " upstream-outdated - Show outdated references"
@echo " upstream-cleanup - Clean tracking data"
@echo ""
@echo "CONFLICT RESOLUTION:"
@echo " upstream-conflicts PLUGIN - Show conflicts"
@echo " upstream-reset PLUGIN - Reset to clean state"
@echo " upstream-backup PLUGIN - Create backup branch"
@echo ""
@echo "EXAMPLES:"
@echo " just upstream-check-plugin nu_plugin_clipboard"
@echo " just upstream-preview nu_plugin_highlight"
@echo " just upstream-merge-auto-all"
@echo " just upstream-exclude nu_plugin_custom"