owned this note changed 2 years ago
Published Linked with GitHub

Nushell core team meeting 2023-09-06

Attendees

  • Darren
  • JT
  • Jakub
  • Reilly
  • Michael
  • Antoine
  • WindSoilder
  • Stefan

Agenda

Discussed Topics

explore

  • Reilly: modal nature, polishing necessary, lots of cool stuff in there (e.g. :try mode for interactive building of pipeline). We can focus on the pager for stable behavior first
  • maxim has pulled up a PR to refactor a bit and make the first steps in the right direction. https://github.com/nushell/nushell/pull/10247
  • Darren: if necessary split pager and interactive editor
  • Antoine has experimented in his plugin: less modal nature, different config options, currently not yet feature complete
  • Maintenance perspective: TUI has a lot of code, currently maxim is the foremost expert, antoine as been modifying in small places,

Continue to refactor + polish UI, if necessary split off other parts from pager/pure viewer

Problem with plugin: we can not pass a global config at the moment

operators

Sparked by a problem with const-eval in the case of incomplete input that gets parsed spuriously
* as a string repeat/concat operation

Also problem in reduce or other fold like operations
[3, "bob", 4] | reduce -f 1 {|x, y| $x * $y}

JT: fine in small example but causes bad surprises when growing (has false positive behavior)

explicit alternative would be a str repeat ( we already have repeat)

Maybe worth looking into more possible surprises lurking in our operators

Resolution: JT comments on issue

Value/Span refactor

WindSoilder saved the day and pulled us through the removal of matches on span inside values!

Future steps:

  • splitting Value into "unspanned"/"spanned"Value

Challenge:
error message quality (example from JT's case for nushell blogpost)
with the proposed refactor would point to the whole list instead of a particular value

  • this is what we want for large (or loaded) dataset
  • this would not be great for small literals in code
  • complexity in trying to do backtracking after the fact

Q: can we simplify the codebase before
Stefan: could we move value matches out of nu-cmd* and nu-command for better iteration

  • we have existing as_... for precise types
  • could we have similar ones creating specific enums for family of types?

Q: where do we draw the line for a spanned or unspanned value
Kubouch: source code literals vs command or file open output (could the commands have the different Value types associated to them?)

into value

we have detect columns, from ssv etc. to parse free form output especially from external commands
Frequent need to run into commands on the resulting columns
Could we have a into value that can do type inference explicitly

General interest in having schema or additional tools to parse outputs from external tools

parse is powerful for its simplicity

Documentation

currently the book is loose explanations for particular topics

=> for 1.0 develop an overarching narrative (including motivating examples, having explanations that help with onboarding/transitioning from bash)

Kubouch: zsh has a great onboarding experience which queries the user and gives prompts to configure the basics and informs at the same time
-> would also potentially alleviate our need for the monster config blob if we would have an onboarding wizard.

Issues

:bulb: the issues which needs-core-team-attention

:bulb: Note
to list all the PRs currently opened in nushell/nushell:

gh pr list --json url,number,author,title
| from json
| each {|i|
    $"- [($i.number)]\(($i.url)\) ($i.title) \(@($i.author.login)\)"
}
| reverse
| to text
Select a repo