owned this note changed 2 years ago
Published Linked with GitHub

Attendees

  • AucaCoyan
  • Amtoine
  • Michael
  • JT
  • Stefan
  • WindSoilder
  • Andres

Agenda

Discussed Topics

XDG or directory

Defer to Darren?
PR author pinged us
Area where we are hesitant to make breaking changes as it affects basically all users immediately

Website build problem

CI runs fail currently only affects draft blog post. Maybe is this a problem with the file containing possibly a templating string that breaks VuePress
I (@amtoine) did a javascript injection attack

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

=> opened https://github.com/nushell/nu_scripts/issues/556

input/output types

we now have a lot more input/output checking. Replaced broken mechanism with a much more sensitive solution. JTs executive summary:
walk the pipeline, read the output, check if there is at least one intersection with the next element, does it for each of the output types.

Also now custom input/output types
still some likely syntax errors (e.g. -> type coming from rust) either support syntax or provide errors.

Several issues: https://github.com/nushell/nushell/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Atype-system

Known issues:
handling return
vectorizes_over_list: remove for now and make it explicit
example test that broke: we need to clean up after the effort

AucaCoyan: what is the behavior if something return's or passes $nothing -> should be incompatible if not expecting nothing.

Q: is there malicious input that breaks the eager selection of types.
- we only pick the first, no backtracking

Sentiment of going into the next release:
Amtoine: great direction, maybe we can fix the bugs later

Problem with rest parameter: https://github.com/nushell/nushell/issues/9720

  • Append is not creating a list but a liststream

Can we describe how our typechecking is MVP

Fun and the 1.0 release

  • Relevance of fun for free/fast hacking
  • Chat Darren + JT: How can we get more fun?
  • Incentivization and recognition for bug fixes/polish work
    • the long tail currently doesn't feel fun
  • Shoutouts to people
    • in the release notes we previously primarily shouted out features. And this doesn't perfectly align with the 1.0 stability goals. We need to incentivice bug fixing
  • We should reward fixing hard bugs
    • even if they might got it not quite right at first
  • We don't talk about easter eggs ;)
    • seasonal messages
    • NES in Nushell
    • april fools => bash-like prompt / output

Function bodies capturing

function body can't use variable which out of scope #9724

JT: assumption commands shouldn't close over outers scope. modules need to behave hygienic enough

Jakub has been working to get const far enough so it could be "cloned" in

Improve the error message to say: "Custom commands do not have visibility to variables outside its scope" suggest solution

Darren: Is there different behavior in the REPL?

SURPRISE SURPRISE it works in the repl
do also a different beast

We should have consistent rules here
Discussions with Jakub on the module/overlay side would be relevant to fill our gaps here

~> mut b = 3; def c [] { $b }; c; b = 5; c                                                                              kkkkk Error: nu::parser::expected_keyword

  × Capture of mutable variable.
   ╭─[entry #2:1:1]
 1 │ mut b = 3; def c [] { $b }; c; b = 5; c
   ·                       ─┬
   ·                        ╰── capture of mutable variable
   ╰────

~>

 

~> def c [] { $b }; let b = 3; c                                     Error: nu::parser::variable_not_found

  × Variable not found.
   ╭─[entry #1:1:1]
 1 │ def c [] { $b }; let b = 3; c
   ·            ─┬
   ·             ╰── variable not found.
   ╰────

~> do { let b = 3; def c [] { $b }; c }                              Error: nu::shell::variable_not_found

  × Variable not found
   ╭─[entry #1:1:1]
 1 │ do { let b = 3; def c [] { $b }; c }
   ·    ────────────────┬────────────────
   ·                    ╰── variable not found
   ╰────

Brings light into some dark corners of our parser and scoping

PRs and Issues

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
the issues which needs-core-team-attention

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
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