Nushell core team meeting 2024-08-07

Attendees

  • Devyn
  • Andy
  • Michael
  • Stefan
  • Darren
  • Jack
  • Antoine
  • Rose

Agenda

  • Material for demo
  • Whether to or not to merge polars sink and polars to- into one polars save command
  • Do we want to ship the assignment change in one release? (backtick string behavior, impact on existing scripts)

Discussed Topics

Stefan's demo

  • Send him some quick oneliners that are really impressive for a demo
  • Ask Sophia?
  • Look at Reilly's demo
  • The wayback machine 1st reedline video

Polars

  • polars sink is a new command that uses the streaming stuff to stream directly to disk from a lazyframe
  • actually maybe we want polars save instead? unify the polars to- whatever with sink?
    • automatically handle lazyframes
    • don't need to stay true to the polars API
  • options for different data formats?
    • key/value or use actual nushell options?
    • the actual nushell options are self-documenting so that's nice
  • doing stuff more lazily when possible
  • Would like to have more nushell-like apis for some things

Plugins as modules

  • Would be nice to be able to rename plugins entirely e.g. plugin use polars as pl
  • having them be modules would work
  • Modules currently interact weirdly with the help system, gwenya has done some work on this but there's probably more to be done

assignment with backticks

  • This could be a major gotcha
  • ​​$foo = `bar`
    
    now behaving quite differently
  • We might not want backticks to work this way
  • Maybe force people to use the carets to run an external command with spaces special character
  • how relevant is the backtick string
    • acts like a bare word
    • execute in command position otherwise acts like a string
    • Does not apply \ escaping (so escape hatch for windows paths vs. "" strings)
    • could this be just a regular string type without escaping '' and for execution you require ^ (our internal command handle the spaces for subcommands anyways so no need for quoting there.)
    • have completion add the ^ when necessary, in command position
    • globs: this works right now:
      ​​​​​​ls `*.txt`
      
  • maybe backtick quotes doing (glob) expansion (while permitting whitespace) is still good

effect of the assignment change

$env.EDITOR = vim

would now execute instead of assign (:wq)

Unlikely to be totally destructive but annoying to mitigate if in configs or scripts

If we want to do a warning phase it would only catch the most actively updating users.

Solution: just require a caret for external in assignment RHS for a few releases, so the impact is mitigated and at some point we can sunset the caret requirement.

Select a repo