# Changelog ## Changes since commit 0a460ce (2024-09-20) ### 🚀 Major Feature: Complete Nushell Distribution System #### Full Distribution Infrastructure - **Complete Nushell binary distribution**: Added capability to build, package, and distribute Nushell itself alongside plugins - **Zero-prerequisite installation**: Users can install complete Nushell environment without having Rust, Cargo, or Nushell pre-installed - **Cross-platform bootstrap installers**: Universal POSIX shell installer (`install.sh`) and Windows PowerShell installer (`install.ps1`) - **Multi-platform packages**: Support for Linux x86_64/ARM64, macOS x86_64/ARM64, Windows x86_64 - **Self-contained distribution packages**: Complete packages including binaries, configuration, documentation, and installers #### New Build System - **`scripts/build_nushell.nu`**: Comprehensive script to build nushell with all workspace plugins - **`scripts/collect_full_binaries.nu`**: Advanced binary collection system for nushell + all plugins - **`scripts/create_distribution_packages.nu`**: Multi-platform package creator with manifest generation - **`scripts/lib/common_lib.nu`**: Shared utility library with logging, validation, and platform detection - **Enhanced justfile**: Added 40+ new recipes in `justfiles/full_distro.just` for complete distribution workflows #### Installation and Configuration System - **`scripts/install_full_nushell.nu`**: Advanced nu-based installer with plugin selection and configuration options - **`scripts/verify_installation.nu`**: Comprehensive installation verification with detailed reporting - **`scripts/templates/default_config.nu`**: Complete 500+ line Nushell configuration with optimizations - **`scripts/templates/default_env.nu`**: Cross-platform environment setup with development tool integration - **`etc/distribution_config.toml`**: Central distribution configuration management #### Bootstrap Installers (Zero Prerequisites) - **`installers/bootstrap/install.sh`**: 900+ line universal POSIX installer for Linux/macOS - Automatic platform detection and binary download - Build from source fallback capability - PATH configuration for all major shells - Plugin registration and configuration creation - **`installers/bootstrap/install.ps1`**: 800+ line Windows PowerShell installer with equivalent features - **Complete documentation**: Installation guides, troubleshooting, and security considerations #### Uninstall System - **`scripts/templates/uninstall.sh`** and **`uninstall.ps1`**: Clean removal scripts for all platforms - **Complete cleanup**: Removes binaries, configurations, PATH entries with optional backup - **Plugin unregistration**: Clean removal from nushell registry #### Key Distribution Workflows ```bash # Build complete distribution just build-full # Build nushell + all plugins # Create packages just pack-full # Current platform just pack-full-all # All platforms just pack-full-checksums # With SHA256 checksums # Installation and verification just verify-full # Verify installation just test-install-full # Test complete workflow just release-full-cross # Full cross-platform release ``` #### Installation Experience - **One-liner installation**: `curl -sSf https://your-url/install.sh | sh` - **Multiple installation modes**: User (~/.local/bin), system (/usr/local/bin), portable - **Automatic plugin registration**: All plugins registered and verified with `nu -c "plugin list"` - **Configuration management**: Sensible defaults with backup and update capabilities ### 🎯 Major Updates #### Documentation and Repository Structure - **Enhanced README.md**: Significantly expanded documentation with 682 new lines covering: - Comprehensive plugin collection overview - Detailed development workflows and automation - Version consistency system documentation - Advanced upstream tracking system guide - Complete command reference and usage examples #### Script and Automation Cleanup - **Removed legacy scripts**: Cleaned up old bash scripts (build-all.sh, collect-install.sh, make_plugin.sh) - **Streamlined automation**: Consolidated script system in favor of unified approach via justfile and nushell scripts ### 🔧 Plugin Updates and Dependency Management #### Nushell Core Updates - **Updated nushell submodule**: Comprehensive update to latest nushell version (0.107.1) - **Synchronized dependencies**: Updated all nu-* dependencies across all plugins for version consistency - **Updated Cargo.lock files**: Refreshed dependency lock files for all plugins #### Plugin-Specific Changes ##### nu_plugin_clipboard - Updated Cargo.toml with new dependency versions - Refreshed Cargo.lock with 253 dependency changes ##### nu_plugin_desktop_notifications - Updated Cargo.toml for nushell 0.107.1 compatibility - Refreshed Cargo.lock with 218 dependency updates ##### nu_plugin_hashes - **Enhanced functionality**: Updated hasher.rs implementation - **Build system improvements**: Modified build.rs configuration - Updated Cargo.toml with 24 configuration changes - Refreshed Cargo.lock with 283 dependency updates ##### nu_plugin_highlight - **Code improvements**: Enhanced highlight.rs and plugin.rs implementations - Updated for new nushell plugin API compatibility - Refreshed Cargo.lock with 476 dependency updates ##### nu_plugin_image - **Major code refactoring**: Comprehensive updates to image processing modules - **Removed deprecated code**: Deleted ansi_to_image.rs (replaced with modular approach) - **Enhanced modules**: - Updated escape_parser.rs, font_family.rs, internal_scale.rs - Improved palette.rs and printer.rs implementations - Enhanced nu_plugin.rs for both ansi_to_image and image_to_ansi - **Logging improvements**: Updated logger.rs and macros.rs - **Main entry point**: Updated main.rs with new plugin architecture - Refreshed Cargo.lock with 494 dependency updates ##### nu_plugin_kcl and nu_plugin_tera - Updated submodule references - Synchronized with latest upstream changes ##### nu_plugin_port_extension and nu_plugin_qr_maker - Updated Cargo.toml for version consistency - Refreshed Cargo.lock files #### API KCL Plugin - Updated Cargo.lock with 266 dependency changes ### 🏗️ Repository Infrastructure Updates #### Git Tracking Cleanup - **Removed nushell directory from tracking**: The nushell submodule directory is now properly ignored - **Updated .gitignore**: Added patterns for nushell directory, nushell-* files, and *.tar.gz archives ### 📊 Statistics Summary - **Total files changed**: 2,082 - **Lines added**: 2,373 - **Lines removed**: 339,936 - **Net change**: -337,563 lines (primarily from removing nushell directory from tracking) ### 🎯 Key Benefits 1. **Version Consistency**: All plugins now use synchronized nushell dependencies 2. **Enhanced Documentation**: Comprehensive guides for development and usage 3. **Improved Plugin APIs**: Updated to latest nushell plugin architecture 4. **Better Development Experience**: Streamlined automation and clearer workflows 5. **Modern Codebase**: Updated to latest Rust and nushell best practices ### 🔄 Migration Notes - Legacy bash scripts have been removed in favor of unified justfile and nushell script approach - All plugins updated to nushell 0.107.1 compatibility - Enhanced upstream tracking system now fully operational - Version consistency checking is now mandatory for all operations - **Important**: The nushell directory is no longer tracked by git - it should be managed as a local dependency This represents a major modernization and cleanup of the nushell plugins repository, with streamlined tracking and improved developer experience.