Nushell core team meeting 2025-02-19

Attendees

  • Rose
  • Douglas
  • Andy
  • Piet - Piepmatz (sounds like Pete)
  • Jack
  • Devyn
  • Ian
  • Jakub
  • Michael
  • Auca Coyan
  • Stefan
  • Antoine
  • Renan - Cosineblast
  • Darren

Agenda

  • CI on beta toolchain
  • (low priority) What exactly is a table?
  • table command rename
  • (low priority) Should all std example results be testable?
  • Error signal-noise-ratio - add to agenda for next week if Darren is not on call
    • IO error subvariants
    • Backtrace

Discussed Topics

Jobs PR (https://github.com/nushell/nushell/pull/14883)

We're not certain why we're explicitly dropping child process stdin in ForegroundChild::wait
from devyn in Discord:

Probably this is necessary to make sure the child won't be waiting on stdin that it will never get. If stdin was already taken by a pipe operation then dropping it does nothing (it's already gone) but otherwise it would live as long as the other streams (stdout, err)

CI on the beta channel

  • Rust project is looking for folks running CI on beta
  • Piepmatz's proposal run for the pushes on main to see any regression
    • Concern one: CI budget
      • Should be fine without caching (so not to evict the main CI cache?)
      • IF the run time hurts we can reintroduce caching
    • Concern two: lint noise
      • lints are ahead of our 2-release behind policy. may be unfixable or require #[expect(lint)]
      • just run cargo build or cargo test

What is a table?

  • List of records?
  • Should each column have values of the same type?
  • Are holes allowed?
  • Column order in each record shouldn't matter.
    • { a: 1, b: 2 } == { b: 2, a: 1 } => [{ a: 1, b: 2 }] == [{ b: 2, a: 1 }]
  • TODO (Douglas accepting): Better document existing definition of strict table in Book and/or Language Guide
  • Table should be a subtype of list of records

table command

Proposal: Most of us agree with renaming it to render, but give it extra deprecation period due to frequent usage in config, hooks etc.

  • Mechanism for raising soft deprecations for $env.config.table needed
    • Also span bug for the hard errors
  • Also a few loose non-grouped config points that possibly should be grouped under useful categories
  • Check on startup for $env.config.table (after adding $env.config.render) and also table being used in display_output hook
    • Also possible to implement using OnceCell or similar
  • table configs not in $env.config.table
    • footer_mode
    • ls.clickable_links
    • ls.use_ls_colors
    • float_precision
Select a repo