# Nushell core team meeting 2025-01-22 ## Attendees - Jack - Piepmatz - Michael - Darren - Andy - Douglas - Ian - Rose - Stefan - Jakub - Aucacoyan - Devyn - Wind ## Agenda - [x] Quick check, any objections to [#14397](https://github.com/nushell/nushell/pull/14397)? - [x] Assignment statements or expressions - [x] [#14865](https://github.com/nushell/nushell/pull/14865) Add examples, categories, search_terms with test, bench, deprecated, platform attributes, etc. to custom commands [Discord Discussion](https://discord.com/channels/601130461678272522/1330328267118608479) - [x] [#14873](https://github.com/nushell/nushell/discussions/14873) Track where we are at with the voting on `How essential is remembering the current directory for each Windows drive letter?` - [ ] - [ ] ## Discussed Topics ### `filesize` formatting changes - greenlit, change the name of `decimal` to metric for the `kB`/`MB` series, keep binary for `KiB` ### Assignment expression vs statement. Current state - `let`/`const`/`mut` are statement only - (not allowed in pipeline elements) - `$mutable = ` reassignment is expressiony - somewhat more involved rules on precedence/associativity to the `|` pipe Proposal make all assignment expression like (so the operation returns the same value and you can chain assignments) - Pro: - repl brevity - more consistent rules between binding/reassignment - Caveats: - cloning of the value - (what is the rule in statement level on REPL) - confusability with `==` - potentially confusing order of operations - collection may not be obvious based on chosen syntax Somewhat orthogonal but additive: - Being able to pipe into a variable instead of leading with the lhs - `pipeline | let x` - This would mesh well with the expressiony logic - `stream | let x | do more stuff` - challenge around stream vs collecting (looking over at the `tee` code maybe to assign while streaming) #### Wishlist: feature flag - precedent: EVAL_IR - at the start of the engine state set based on external env/flag - also possibility of a global if at startup - Alternatively somethign config like that can be changed at runtime ### command level attributes/metadata - motivation: provide examples etc. - great for getting parity of std or other modules with the builtins - different syntax proposals: - flag on the def command - readability concern - existing impl in [#14865](https://github.com/nushell/nushell/pull/14865) - `@example (optional const expression)` etc. attributes - simpler to parse for external tools - could this generalize to even custom attributes - Sentiment leave `--env` and `--wrapped` untouched for now, general preference towards the attribute syntax for the rest