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

157 lines
7.6 KiB
Markdown

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