# Nushell core team meeting 2023-09-06 ## Attendees - Darren - JT - Jakub - Reilly - Michael - Antoine - WindSoilder - Stefan ## Agenda - [x] what about the `explore` command? - hide it behind *extra* in [#9975](https://github.com/nushell/nushell/pull/9975) - @amtoine's plugin: [nu_plugin_explore](https://github.com/amtoine/nu_plugin_explore) - the [*`explore` comments and suggestions* issue](https://github.com/nushell/nushell/issues/8582) - [x] [confusing/dangerous operations](https://github.com/nushell/nushell/issues/10233) - [x] Next steps for span refactor - [x] `into value` proposal - [x] Documentation: Big push/Small bites ## 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](https://github.com/nushell/nushell/labels/needs-core-team-attention) > :bulb: **Note** > to list all the PRs currently [opened in `nushell/nushell`](https://github.com/nushell/nushell/pulls): > ```nu > gh pr list --json url,number,author,title > | from json > | each {|i| > $"- [($i.number)]\(($i.url)\) ($i.title) \(@($i.author.login)\)" > } > | reverse > | to text > ```