nushell-plugins/CHANGELOG.md
Jesús Pérez 41455c5b3e
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
feat: Add complete Nushell full distribution system
## 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
2025-09-24 18:52:07 +01:00

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 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

# 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.