# Nushell core team meeting 2024-01-03 ## Attendees - Ian - Jakub - Stefan ## Agenda - [x] case-insensitive env vars on Windows - [#11268](https://github.com/nushell/nushell/pull/11268): Path vs PATH - [#11432](https://github.com/nushell/nushell/pull/11432): all env vars - [x] `--` in signatures ([#11435](https://github.com/nushell/nushell/pull/11435)) - [x] add support for repeated flags in signatures, e.g., `...--flag: int` ([#11431](https://github.com/nushell/nushell/pull/11431)) - [x] Nupm: avoid `use ../../foo/bar.nu` - Something analogous to Rust's `crate`? - [x] Nushell-backed repository to host important integrations (community-contributed, like nu_scripts), such as: - [ ] packaging, e.g., nix flakes [#8155](https://github.com/nushell/nushell/pull/8155), [#10945](https://github.com/nushell/nushell/pull/10945) - [ ] editors, e.g., tree sitter neovim integration [tree-sitter-nu:#57](https://github.com/nushell/tree-sitter-nu/pull/57) - or is [awesome-nu](https://github.com/nushell/awesome-nu) and [showcase](https://github.com/nushell/showcase) enough? ## Discussed Topics ### case-insensitve env vars on Windows No objections about having case-insensitive env vars matching on Windows. We'd rather have a general solution working for all env vars instead of just Path/PATH ### `--` ```nushell def --wrapped `cargo run` [--flag, ...rest] { ... } cargo run --flag -- --flag # throws an error cargo run --flag '--flag' ``` Needs to be squared with spread operator ```nushell cargo run --flag 'abc' ...[a b c] -- --flag # rest collects to ['abc' a b c --flag] ? cargo run --flag 'a' ...[b c] # rest collects to [a b c] cargo run --flag ...[--flag] # workaround instead of -- cargo run --flag ...[a b c] # or only this allowed? ``` `--` is quite common, many people expect it to work, we can try it. ### `...--flag` For internals you should already be able to use lists. For externals/wrapping: Can be worked around with `--`. This gives `--` a + point. ### General observation Different level of flag/argument syntax for internal/external commands We internally have more explicit ways to express passing lists or records. External commands have developed more wild-west of parsing syntax. - repeated flags - relevant https://github.com/nushell/nushell/pull/11431 - `-vv` repeat as increased strength - different value separation logic - spaced/directly after shortflag/with `=` - shortflag chain/longflag with single `-` - `--` as a separator we have to be judicious what we include for our argument parsing ### Paths in imports (Discuss the existing problem with `nupm` with amtoine, when he is around) We shouldn't allow absolute paths imports (`use /usr/bin/foo.nu`). ### Curating "official" nushell, scripts integrations - nix flake(s) - someone moved something to their own repo (apparently doesn't need to be in the main repo, we previously rejected several PRs) - plugins and integrations on `awesome-nu` - packaging maintainers outside nushell org - when is it helpful to take over the responsibility - testing/active support as an inclusion criterion? - (tier support) What should go here, to nu_scripts, to awesome-nu, etc.? We should make it clearer what goes there, maybe make a list of candidates. One criterion could be that each integration would have some tests running in the CI that would need to keep green. ## 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 > ```