
Some checks failed
Build and Test / Validate Setup (push) Has been cancelled
Build and Test / Build (darwin-amd64) (push) Has been cancelled
Build and Test / Build (darwin-arm64) (push) Has been cancelled
Build and Test / Build (linux-amd64) (push) Has been cancelled
Build and Test / Build (windows-amd64) (push) Has been cancelled
Build and Test / Build (linux-arm64) (push) Has been cancelled
Build and Test / Security Audit (push) Has been cancelled
Build and Test / Package Results (push) Has been cancelled
Build and Test / Quality Gate (push) Has been cancelled
## Major Features Added - **Complete distribution infrastructure**: Build, package, and distribute Nushell binary alongside plugins - **Zero-prerequisite installation**: Bootstrap installers work on fresh systems without Rust/Cargo/Nushell - **Cross-platform support**: Linux, macOS, Windows (x86_64, ARM64) - **Self-contained packages**: Everything needed for complete Nushell environment ## New Components ### Build System - `scripts/build_nushell.nu` - Build nushell with all workspace plugins - `scripts/collect_full_binaries.nu` - Collect nu binary + all plugins - `justfiles/full_distro.just` - 40+ new recipes for distribution workflows ### Bootstrap Installers (Zero Prerequisites) - `installers/bootstrap/install.sh` - Universal POSIX installer (900+ lines) - `installers/bootstrap/install.ps1` - Windows PowerShell installer (800+ lines) - Complete platform detection, PATH setup, plugin registration ### Distribution System - `scripts/create_distribution_packages.nu` - Multi-platform package creator - `scripts/install_full_nushell.nu` - Advanced nu-based installer - `scripts/verify_installation.nu` - Installation verification suite - `scripts/lib/common_lib.nu` - Shared utilities and logging ### Configuration Management - `scripts/templates/default_config.nu` - Complete nushell configuration (500+ lines) - `scripts/templates/default_env.nu` - Cross-platform environment setup - `etc/distribution_config.toml` - Central distribution settings - `scripts/templates/uninstall.sh` & `uninstall.ps1` - Clean removal ## Key Workflows ```bash just build-full # Build nushell + all plugins just pack-full-all # Create packages for all platforms just verify-full # Verify installation just release-full-cross # Complete cross-platform release ``` ## Installation Experience - One-liner: `curl -sSf https://your-url/install.sh | sh` - Multiple modes: user, system, portable installation - Automatic plugin registration with verification - Professional uninstall capability ## Benefits - ✅ Solves bootstrap problem - no prerequisites needed - ✅ Production-ready distribution system - ✅ Complete cross-platform support - ✅ Professional installation experience - ✅ Integrates seamlessly with existing plugin workflows - ✅ Enterprise-grade verification and logging
7.6 KiB
7.6 KiB
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 pluginsscripts/collect_full_binaries.nu
: Advanced binary collection system for nushell + all pluginsscripts/create_distribution_packages.nu
: Multi-platform package creator with manifest generationscripts/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 optionsscripts/verify_installation.nu
: Comprehensive installation verification with detailed reportingscripts/templates/default_config.nu
: Complete 500+ line Nushell configuration with optimizationsscripts/templates/default_env.nu
: Cross-platform environment setup with development tool integrationetc/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
anduninstall.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
# 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
- Version Consistency: All plugins now use synchronized nushell dependencies
- Enhanced Documentation: Comprehensive guides for development and usage
- Improved Plugin APIs: Updated to latest nushell plugin architecture
- Better Development Experience: Streamlined automation and clearer workflows
- 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.