owned this note changed a year ago
Published Linked with GitHub

Nushell core team meeting 2023-12-13

Attendees

  • Darren
  • Antoine
  • AucaCoyan
  • Michael
  • Stefan
  • bew
  • IanManske

Agenda

  • Release stability?
    • Do we need to have a hotfix for the redirection issues? 11295
      • WindSoilder's new PR fixes the problem 11317
    • Reedline Docs build problem 672
    • Perhaps 11302 should be in the hotfix too if we're doing one.
  • Should we include a *nix only ulimit command in nushell? 11246
  • overlay use semantics to match use (see notes)

Discussed Topics

Hotfix time

  • redirection became slightly broken/fixed by Windsoilder
  • we vote to ship a hotfix
  • possible from the main branch -> just land bugfixes until done
  • Stefan can take care of it tomorrow
  • reedline only broken in the docs.rs build / separate fix

ulimit

This is handled by builtins in other unix shells.
if we want to be used as a login-shell you can not rely on previously setting this in another shell.

Vote: let's land this as a platform specific command for now

Overlay semantics

Current state:

module spam {
    export def foo [] { print 'foo' }
}

use spam 
spam foo

use spam *
foo

overlay use spam --prefix
spam foo

overlay use spam
foo

Proposal (remove --prefix, make overlay use accept an import pattern, allow as for use):

module spam {
    export def foo [] { print 'foo' }
}

use spam 
spam foo

use spam *
foo

use spam foo as bar # works
use spam as eggs # works
use spam * as eggs # syntax error
use spam [ foo ] # syntax error

# works as a regular import pattern:
overlay use spam
spam foo

overlay use spam *
foo

overlay use spam foo
foo

overlay use spam [ foo ]
foo

overlay list
# shows `spam`

# `as` not allowed in lists, too confusing if commas are missing:
use spam [ foo as bar, baz as blah ]

# rename `spam` overlay with `as`
overlay use spam as eggs foo
overlay hide eggs

# renaming imported symbols not allowed (not sure if the overlay or the imported symbol is renamed):
overlay use spam foo as bar
overlay use spam as eggs foo as bar

# if we _really_ want to rename foo to bar and also the overlay
module eggs {
    export use foo as bar
}
overlay use eggs bar

(It might need some hacking around overlay use ... as ....)

use builtins through modules

@bew brought it up in the context of the os specific ulimit
(after discussion around this PR)

currently we ship modules in the stdlibrary but all builtin commands are in the scope

Suggestion have modules that we add some builtins to

Motivation: More explicit use windows in the script telling you that the script depends on windows specific stuff

Storm: meshes with cratification if we have modules for commands

Stefan: adding commands behind a module that has to be imported manualy would not break scripts that rely on an external of the same name

Darren: being able to get back a previously aliased built-in would be great (maybe use could be a workaround here)

Possible direction

move the few platform specific commands to modules, to proof out the technology
then we can proceed with organising moving stuff.
core commands that are keywords/keyword like would be except from that.

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