Nushell core team meeting 2022-09-14

Attendees

  • Stefan
  • Jakub
  • Reilly
  • JT
  • Darren
  • Michael
  • Andres
  • Fernando

Agenda

Discussed Topics

Pillars of nushell

Might wait to give Fernando and Justin (hustcer) a chance

source-env removal in favor of use

Dynamic paths were impossible to implement with the current design

Now with use also handle the export-env block. Ensures environment for the module that gets imported in a more static sense.
Should enable loading all the regular tools that were build.
Maybe have a flag on use to restrict or only load the environment part.

Power to the export-env block

Quoting rules

We get several issues and confusions due to how string interpolation and quoting works, surprising behavior when interacting with external commands:
https://github.com/nushell/nushell/labels/quoting%2Fexpansion

documentation for the quoting and variable expansion in the current state: https://hackmd.io/@fdncred/BJqi8MrJj

  • Good starting point to identify rough edges and get to the state we feel comfortable

Q: What is the platform native behavior (cmd.exe, PS, sh, bash, zsh) -> goal unified experience but support all typical problems

Idea: Would be great to have a representation with a large as possible interpolated string to hand out as the external commands (not applying too much of our special parsing logic as soon as we realize we are running an external. BUT Win compatibility)
How to deal with the external signature definition for completions/checks

Reedline resize drama Act 12983473294

  • Tiling window managers and some terminals trigger resize on (effectively) startup. window starts with wrong prompt positions and assumptions (need to press enter might bork more)
  • Trouble keeping track of the correct cursor and prompt origin position while we don't really know how the wrapping takes place
  • Can we throttle resizes? (Alacritty spams bs on the screen)

Housekeeping

  • document the role of our nu-* component crates -> deduplicate certain efforts
  • Dan Davison (dd7 on discord) has been setting an example for thoughtful contributions!

Design thought experiments with JT

JT: assume potential starting points to arrive at nushell
https://hackmd.io/@CBGomR3NSmOytbkRXXkBmA/rJhvsHhli/edit

  • SQL feels very familiar, verbs are common (command ordering is maybe to restrictive)

Pipe connectable might help to break up wordy SQL sentences

Michael: influx db folks realized that deviating is a problem if people expect SQL for db focussed work (Esperanto allegory)

  • Bash++ to satisfy expectations for the shell nerds jumping in

  • Datafusion as a way to merge (tabular) data of different sources.

Additional examples in the discusison:

-> play with small examples

e.g. datafusion table of tables

post meeting bombshell ;) : Fernando already started playing with a nushell like language with a polars type system

https://hackmd.io/MHNijucHRC2Q_ysvQn5KEg

Select a repo