# Nushell core team meeting 2023-12-13 ## Attendees - Darren - Antoine - AucaCoyan - Michael - Stefan - bew - IanManske ## Agenda - [x] Release stability? - [x] Do we need to have a hotfix for the redirection issues? [11295](https://github.com/nushell/nushell/issues/11295) - [x] WindSoilder's new PR fixes the problem [11317](https://github.com/nushell/nushell/pull/11317) - [x] Reedline Docs build problem [672](https://github.com/nushell/reedline/pull/672) - [x] Perhaps [11302](https://github.com/nushell/nushell/pull/11302) should be in the hotfix too if we're doing one. - [x] Should we include a *nix only `ulimit` command in nushell? [11246](https://github.com/nushell/nushell/pull/11246) - [x] `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: ```nushell 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`): ```nushell 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](https://github.com/nushell/nushell/pull/11246)) 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 > :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 > ```