# Nushell core team meeting 2022-08-31 ## Attendees - Fernando - Darren - JT - Jakub - Reilly - Michael - Andres ## Topics - any objections to [removing capnp](https://github.com/nushell/nushell/pull/6421)? :'( - Release next Tuesday 9/6 - general thoughts on `$` removal [#6434](https://github.com/nushell/nushell/pull/6434) - general thoughts on parens around signatures [#6444](https://github.com/nushell/nushell/pull/6444) - general thoughts on `source` to `source-env` [#6277](https://github.com/nushell/nushell/pull/6277) - are there more breaking changes we can bundle? - Exploring integration with [kafka](https://github.com/influxdata/rskafka) - in a similar spirit as [Iox](https://github.com/influxdata/influxdb_iox) - ability to view kafka topics - also publish and subscribe to events - will enable others the ability to then populate a dataframe with the subscriber events and publish out events from dataframe data as well. - Circular dependencies? # Discussed - `$` removal - JT posted a video. Good initial response cell path are a little brittle but JT has a "fix" but it breaks a bunch of tests. - Andres suggest maybe maintain $ for special cases maybe like $nu. - Jakub suggest maybe use only $FOO for env vars, no $env.FOO anymore. - There's a revert $ removal PR if we need to. If there's a use case that we've missed and is "big" we might revert. - Keep the $ optional for the next release or two and then remove it if everything goes well - def brackets to parens - Still have to have space after `def name() {}` vs `def name () {}` - remove capnp - Fernando mentioned it's a pain but it's nice to have an example. We're ok to remove it. - source/source-env - Jakub finished it in JT's PR. Land it if it's ready. Both source and source-env are available. Source will be deprecated and eventually be removed. - use for custom commands and and aliases, there is no plan to support variables in use or source-env. Really no globals that get slurped into the current namespace but you can have variables inside your def like normal. - Fernando maybe change string interpolation from parens to braces? - kind of decided to leave it to parens. - existing PRs that will be breaking changes? not that we see. - kafka - Michael, good to have enterprise level tools like iox, kafka, etc. Darren grafana is cool. - cirular dependencies - jakub - use spam and in spam you do use the other and they try to source each other and end up in a stack overflow - JT doing show-n-tell of syntax issues/brainstorming. ``` def foo(x: int) { x + 100 } # is it ok to do foo(1000) ``` ``` # commands command foo [x: int] { x + 100 } ``` several examples - bad notes here, jt's notes below ## Raw examples from discussion: ``` # def foo [x: int] { # $x + 100 # } def foo(x: int) { x + 100 } # 1) easy to be ambiguous var name and bare word # 2) is this confusing? # today: foo 1000 # proposed: foo(1000) cat foo.txt cat bar(10) # what if that's okay? # Part 1: seem like a function, work like a function # Jakub said it's weird to have two ways, so what if: ## functions def foo(x: int) { x + 100 } ## commands command foo [x: int] { x + 100 } # Part 2: bare words vs strings `cd foo` SyntaxShape: BareString (FilePath is one of these) `cd foo` SyntaxShape: String "foo" `cd "foo"` ["a", "b", "c"] [12kv, b, c] # today: str join 1 2 # with optional paren: str join(1, 2) str::join(1, 2) str::join(1, 2) | where bar > 10 | sort # TODO: # No space # Yes: def foo (x: int) { } # support: def foo(x: int) { } # Optional parens for calls # 1 no, 4 yes, 2 maybes foo(100) def foo(x: int, --bar: int) {} foo(--bar=100, 100) foo --bar=100 100 # FilePaths are bare but strings are not # 3 yes, 1 abstrain ["a", "b", "c"] <-- new list of strings cd foo ```