179 lines
5.6 KiB
Markdown
179 lines
5.6 KiB
Markdown
|
|
# Nushell 0.109.0 Update Summary
|
||
|
|
|
||
|
|
**Updated**: 2025-11-30
|
||
|
|
**From**: 0.108.0
|
||
|
|
**To**: 0.109.0
|
||
|
|
|
||
|
|
## Update Status: ✅ COMPLETE
|
||
|
|
|
||
|
|
All 13 plugins have been successfully updated to Nushell 0.109.0.
|
||
|
|
|
||
|
|
## What Changed
|
||
|
|
|
||
|
|
### Nushell Core Upgrade
|
||
|
|
- **Nushell Version**: 0.108.0 → 0.109.0
|
||
|
|
- **Build Date**: 2025-11-30
|
||
|
|
- **All Plugins**: Updated `nu-plugin` dependency to 0.109.0
|
||
|
|
|
||
|
|
### Automatic Updates (Smart Version Management)
|
||
|
|
|
||
|
|
The update process now intelligently handles plugin versioning:
|
||
|
|
|
||
|
|
#### Dependencies Updated (All Plugins)
|
||
|
|
All 13 plugins have their `nu-plugin` dependency updated to 0.109.0:
|
||
|
|
- nu_plugin_auth
|
||
|
|
- nu_plugin_clipboard
|
||
|
|
- nu_plugin_desktop_notifications
|
||
|
|
- nu_plugin_fluent
|
||
|
|
- nu_plugin_hashes
|
||
|
|
- nu_plugin_highlight
|
||
|
|
- nu_plugin_image
|
||
|
|
- nu_plugin_kcl
|
||
|
|
- nu_plugin_kms
|
||
|
|
- nu_plugin_orchestrator
|
||
|
|
- nu_plugin_port_extension
|
||
|
|
- nu_plugin_qr_maker
|
||
|
|
- nu_plugin_tera
|
||
|
|
|
||
|
|
#### Package Versions (Selective Update)
|
||
|
|
|
||
|
|
**Updated** (had 0.108.0 package version):
|
||
|
|
- `nu_plugin_clipboard`: 0.108.0 → 0.109.0
|
||
|
|
|
||
|
|
**Preserved** (have independent versions):
|
||
|
|
- `nu_plugin_auth`: 0.1.0 (unchanged)
|
||
|
|
- `nu_plugin_desktop_notifications`: 1.2.12 (unchanged)
|
||
|
|
- `nu_plugin_fluent`: 0.1.0 (unchanged)
|
||
|
|
- `nu_plugin_hashes`: 0.1.8 (unchanged)
|
||
|
|
- `nu_plugin_highlight`: 1.4.7+0.105.2 (unchanged)
|
||
|
|
- `nu_plugin_image`: 0.105.1 (unchanged)
|
||
|
|
- `nu_plugin_kcl`: 0.1.0 (unchanged)
|
||
|
|
- `nu_plugin_kms`: 0.1.0 (unchanged)
|
||
|
|
- `nu_plugin_orchestrator`: 0.1.0 (unchanged)
|
||
|
|
- `nu_plugin_port_extension`: 0.109.0 (unchanged)
|
||
|
|
- `nu_plugin_qr_maker`: 1.1.0 (unchanged)
|
||
|
|
- `nu_plugin_tera`: 0.1.0 (unchanged)
|
||
|
|
|
||
|
|
## Key Features of This Update
|
||
|
|
|
||
|
|
### 1. Smart Version Detection
|
||
|
|
The `update_all_plugins.nu` script now intelligently:
|
||
|
|
- **Always updates** the `nu-plugin` dependency for all plugins (0.108.0 → 0.109.0)
|
||
|
|
- **Selectively updates** package versions only if they match the previous Nushell version (0.108.0)
|
||
|
|
- **Preserves** plugin-specific versioning schemes (e.g., 0.1.0, 1.1.0, 1.2.12)
|
||
|
|
|
||
|
|
### 2. Correct String Interpolation
|
||
|
|
- Fixed Nushell string interpolation per Rule 18 guidelines
|
||
|
|
- Properly escaped literal parentheses in `$"..."` strings: `\(DRY RUN\)`
|
||
|
|
|
||
|
|
### 3. Template Generation Fix
|
||
|
|
- Scripts now correctly generate `register-plugins.nu` instead of `install.nu`
|
||
|
|
- Updated all template generation scripts:
|
||
|
|
- `scripts/collect_full_binaries.nu`
|
||
|
|
- `scripts/complete_update.nu`
|
||
|
|
- `scripts/create_full_distribution.nu`
|
||
|
|
|
||
|
|
### 4. Bootstrap Installer Enhancement
|
||
|
|
- `install.sh` now auto-detects local binaries in distribution packages
|
||
|
|
- Supports both `./bin/nu` and `./nu` paths
|
||
|
|
- Automatically uses local binaries when available
|
||
|
|
|
||
|
|
## Automation Scripts Modified
|
||
|
|
|
||
|
|
### scripts/update_all_plugins.nu
|
||
|
|
- **Lines 72**: Fixed string interpolation `\(DRY RUN\)`
|
||
|
|
- **Lines 187-215**: Added smart version detection logic
|
||
|
|
- Calculates previous version (0.108.0 from 0.109.0)
|
||
|
|
- Only updates package version if current version matches previous version
|
||
|
|
- Preserves independent plugin versions
|
||
|
|
|
||
|
|
### scripts/collect_full_binaries.nu
|
||
|
|
- **Line 722-724**: Changed template generation to use `register-plugins.nu` instead of `install.nu`
|
||
|
|
|
||
|
|
### scripts/complete_update.nu
|
||
|
|
- **Line 414**: Updated documentation reference to `register-plugins.nu`
|
||
|
|
|
||
|
|
### scripts/create_full_distribution.nu
|
||
|
|
- **Line 461**: Updated next steps documentation to `register-plugins.nu`
|
||
|
|
|
||
|
|
### installers/bootstrap/install.sh
|
||
|
|
- **Lines 1059-1069**: Added auto-detection of local binaries
|
||
|
|
- Checks for `./bin/nu` and `./nu` paths
|
||
|
|
- Automatically uses local installation when found
|
||
|
|
|
||
|
|
## Distribution Changes
|
||
|
|
|
||
|
|
All distribution packages now include:
|
||
|
|
- ✅ Nushell 0.109.0 binary
|
||
|
|
- ✅ All 13 plugins compiled with 0.109.0
|
||
|
|
- ✅ `register-plugins.nu` script (not `install.nu`)
|
||
|
|
- ✅ `install.sh` with local binary auto-detection
|
||
|
|
- ✅ Proper plugin registration without installation of binaries
|
||
|
|
|
||
|
|
## Files Modified
|
||
|
|
|
||
|
|
### Core Documentation
|
||
|
|
- `CLAUDE.md`: Updated version to 0.109.0
|
||
|
|
|
||
|
|
### Automation Scripts
|
||
|
|
- `scripts/update_all_plugins.nu` - Smart version management
|
||
|
|
- `scripts/collect_full_binaries.nu` - Template generation fix
|
||
|
|
- `scripts/complete_update.nu` - Documentation update
|
||
|
|
- `scripts/create_full_distribution.nu` - Documentation update
|
||
|
|
|
||
|
|
### Plugin Cargo.toml Files
|
||
|
|
- `nu_plugin_clipboard/Cargo.toml` - Package version 0.108.0 → 0.109.0
|
||
|
|
|
||
|
|
### Bootstrap Installer
|
||
|
|
- `installers/bootstrap/install.sh` - Local binary auto-detection
|
||
|
|
|
||
|
|
## How to Use the Updated System
|
||
|
|
|
||
|
|
### Update to Next Version
|
||
|
|
```bash
|
||
|
|
# Complete update to new version
|
||
|
|
./scripts/complete_update.nu 0.110.0
|
||
|
|
|
||
|
|
# Or step by step
|
||
|
|
./scripts/update_nushell_version.nu 0.110.0
|
||
|
|
./scripts/update_all_plugins.nu 0.110.0
|
||
|
|
./scripts/create_full_distribution.nu
|
||
|
|
```
|
||
|
|
|
||
|
|
### Just Recipes
|
||
|
|
```bash
|
||
|
|
# Quick validation
|
||
|
|
just validate-nushell
|
||
|
|
|
||
|
|
# Full development workflow
|
||
|
|
just dev-flow
|
||
|
|
|
||
|
|
# Release workflow
|
||
|
|
just release-flow
|
||
|
|
```
|
||
|
|
|
||
|
|
## Verification
|
||
|
|
|
||
|
|
All 13 plugins successfully:
|
||
|
|
- ✅ Compile with Nushell 0.109.0
|
||
|
|
- ✅ Have correct `nu-plugin` dependency version
|
||
|
|
- ✅ Have correct `nu-protocol` dependency version
|
||
|
|
- ✅ Register properly with Nushell
|
||
|
|
- ✅ Can be listed with `nu -c 'plugin list'`
|
||
|
|
|
||
|
|
## Next Steps
|
||
|
|
|
||
|
|
For the next version update (0.110.0):
|
||
|
|
1. Run `just validate-nushell` to ensure version consistency
|
||
|
|
2. Execute `./scripts/complete_update.nu 0.110.0` for full automation
|
||
|
|
3. Run `just build-full` to compile everything
|
||
|
|
4. Run `just test` to validate all plugins
|
||
|
|
5. Create distribution with `just pack-full`
|
||
|
|
|
||
|
|
## Notes
|
||
|
|
|
||
|
|
- Plugin versions are now independently managed while maintaining dependency synchronization
|
||
|
|
- The smart version detection prevents version confusion between plugin versions and Nushell versions
|
||
|
|
- Auto-detection of local binaries makes distribution packages more portable
|
||
|
|
- `register-plugins.nu` correctly registers plugins without installing binaries (distinction from `install.sh`)
|