nushell-plugins/updates/108/NUSHELL_0.108.0_SUMMARY.md
Jesús Pérez be62c8701a feat: Add ARGUMENTS documentation and interactive update mode
- Add `show-arguments` recipe documenting all version update commands
- Add `complete-update-interactive` recipe for manual confirmations
- Maintain `complete-update` as automatic mode (no prompts)
- Update `update-help` to reference new recipes and modes
- Document 7-step workflow and step-by-step differences

Changes:
- complete-update: Automatic mode (recommended for CI/CD)
- complete-update-interactive: Interactive mode (with confirmations)
- show-arguments: Complete documentation of all commands and modes
- Both modes share same 7-step workflow with different behavior in Step 4
2025-10-19 00:05:16 +01:00

7.7 KiB

Nushell 0.108.0 Documentation Summary

This directory contains comprehensive documentation for Nushell 0.108.0 breaking changes, new features, and migration guides.

Files in This Documentation Set

1. NUSHELL_0.108.0_CHANGES.md

Comprehensive markdown documentation covering all changes in Nushell 0.108.0.

Contents:

  • Complete breaking changes with migration guides
  • All new features and enhancements
  • Experimental features (pipefail, enforce-runtime-annotations, reorder-cell-paths)
  • Plugin API changes and CustomValue improvements
  • Command changes (renamed, removed, added, modified)
  • Behavior changes and bug fixes
  • Build system changes
  • Best practices and recommendations

Use this file for:

  • Human-readable reference documentation
  • Migration planning
  • Understanding impact of changes
  • Learning new features

2. nushell_0.108.0_changes.nu

Structured Nushell data file with all changes in programmatic format.

Contents:

  • Complete structured record with all version 0.108.0 data
  • Helper functions to access specific data:
    • get-changes - Get complete dataset
    • get-breaking-changes - Get all breaking changes
    • get-high-impact-changes - Filter high impact changes only
    • get-new-features - Get new features list
    • get-experimental-features - Get experimental features
    • get-plugin-api-changes - Get plugin API changes
    • get-command-changes - Get command changes
    • get-recommendations - Get best practices
    • search-changes [keyword] - Search all changes by keyword
    • generate-migration-report - Generate formatted migration report

Use this file for:

  • Automated analysis of changes
  • Programmatic migration tools
  • Custom reporting
  • Integration with CI/CD pipelines

Example usage:

# Load the module
use nushell_0.108.0_changes.nu *

# Get all breaking changes
get-breaking-changes

# Get only high impact changes
get-high-impact-changes

# Search for specific changes
search-changes "into value"

# Generate migration report
generate-migration-report

# Access specific data
let changes = get-changes
$changes.version
$changes.experimental_features

Quick Reference

Breaking Changes Summary

  1. into valuedetect type (HIGH IMPACT)

    • Type detection command renamed
    • into value now converts custom plugin values
    • Migration: Use update cells {detect type} for table cells
  2. Stream Error Collection (HIGH IMPACT)

    • Collecting streams with errors now raises errors
    • Migration: Wrap in try-catch blocks
  3. format bits Endian (MEDIUM IMPACT)

    • New --endian flag required
    • Migration: Specify endian explicitly
  4. Polars Changes (MEDIUM IMPACT)

    • polars fetch removed
    • polars pivot requires --stable flag
  5. Windows Paths (LOW IMPACT, Windows only)

    • UNC paths no longer get trailing backslash
    • Device paths now work with open/save/source
  6. Network Feature Flag (LOW IMPACT, custom builds only)

    • Must use --features network for custom builds
  7. Power Operator (LOW IMPACT)

    • Now right-associative (mathematically correct)

New Features Summary

  1. MCP Server for AI Agents (Optional, compile with --features mcp)
  2. Smarter Completions (Inline completion lists)
  3. Enhanced CustomValue Support (Plugin API improvements)
  4. which Enhancement (Lists all commands when called without args)
  5. HTTP Metadata (Response data as metadata)
  6. Date/Time Specifiers (%J and %Q for compact formats)
  7. metadata set --merge (Attach arbitrary metadata)
  8. each --flatten (Better streaming)

Experimental Features

  1. pipefail (Opt-in) - Bash-like pipeline error handling
  2. enforce-runtime-annotations (Opt-in) - Runtime type checking
  3. reorder-cell-paths (Now opt-out/default) - Performance optimization

Command Changes at a Glance

Renamed:

  • into valuedetect type (type detection)
  • N/A → into value (custom value conversion)

Removed:

  • polars fetch

Added:

  • detect type
  • into value (new purpose)

Modified:

  • format bits - Added --endian flag
  • polars pivot - Added --stable flag
  • which - Lists all commands without args
  • http * - Metadata attachment
  • format date / into datetime - New specifiers
  • metadata set - Added --merge
  • each - Added --flatten
  • compact - Improved --empty
  • open / save / source - Windows device path support

Migration Priority

Immediate Actions Required (HIGH)

  1. Replace all into value with appropriate command:
    • For tables: update cells {detect type}
    • For other types: detect type
    • For plugin values: Keep as into value
  2. Add try-catch around stream collections
  3. Update polars commands if using polars plugin

Should Address (MEDIUM)

  1. Add --endian flag to format bits calls
  2. Update custom builds to include --features network
  3. Review chained power operations
  4. Test on Windows if applicable

Nice to Have (LOW)

  1. Adopt inline completion syntax
  2. Use new date/time format specifiers
  3. Enable experimental features for testing
  4. Update plugin implementations for CustomValue

Testing Your Migration

# 1. Search your codebase for problematic patterns
use nushell_0.108.0_changes.nu *

# Search for 'into value' usage
rg "into value" . --type nu

# Search for 'polars fetch'
rg "polars fetch" . --type nu

# Search for 'format bits' without endian flag
rg "format bits" . --type nu | where ($it !~ "--endian")

# 2. Run tests with experimental features
nu --experimental-options='pipefail,enforce-runtime-annotations' your_tests.nu

# 3. Generate migration report
generate-migration-report | save migration_report.txt

Best Practices for 0.108.0

  1. Error Handling: Always use try-catch for stream collection
  2. Type Safety: Enable enforce-runtime-annotations in production
  3. Completions: Use inline syntax for static completions
  4. Endian: Be explicit with --endian flag
  5. Testing: Test with experimental features enabled
  6. Documentation: Document required version and features
  7. Future-Proofing: Write code compatible with experimental features

Resources

Contributors

Special thanks to all 24 contributors who made this release possible:

@132ikl, @andoalon, @app/dependabot, @ayax79, @Bahex, @blindFS, @cablehead, @cptpiepmatz, @fdncred, @fixerer, @Jan9103, @maxim-uvarov, @mkatychev, @nome, @sgvictorino, @Sheape, @sholderbach, @simonborje, @Tyarel8, @weirdan, @WindSoilder, @xolra0d, @Xylobyte, @ysthakur

Documentation Maintenance

Created: 2025-10-18 Nushell Version: 0.108.0 Previous Version: 0.107.x Maintained By: Nushell Plugins Repository Team


Quick Start Migration Guide

For most users, these are the critical changes:

  1. Find and replace:

    # Search for 'into value'
    rg "into value" . --type nu
    
    # Replace based on context:
    # - Tables: | update cells {detect type}
    # - Other: | detect type
    # - Plugins: | into value (no change)
    
  2. Add error handling:

    # Before:
    let data = $stream | collect
    
    # After:
    let data = try { $stream | collect } catch { [] }
    
  3. Fix polars commands (if using):

    # Remove: polars fetch (no replacement)
    # Update: polars pivot → polars pivot --stable
    
  4. Test your code:

    nu your_script.nu
    

That's it! For most users, these four steps will handle the migration to 0.108.0.