# 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
> ```