Nushell core team meeting 2022-08-24

Attendees

  • Andres
  • Fernando
  • Darren
  • Stefan
  • Jakub
  • JT
  • Reilly

Topics

  • 3yr release party 8/23
  • Core Team Rules & Guidelines
  • Testing and code coverage?
    • Reilly: Filesystem error tests?
  • 0.68 release blog started here - please add to it https://github.com/nushell/nushell.github.io/pull/574
  • Module updates coming along
  • External completer seems to work
  • kira's exponential slow down in #dataframe channel
  • jt's weird idea
  • O'Reilly update (jt)
  • Splitting of nushell/nulang feedback (jt)
  • jt's still training so we can talk about them :)
  • benchmark on plugin protocols

Discussed

Nushell aniversary

Tweet received some attention (approx 50 likes)

Didn't have a blogpost ready to go

Retrospective on the development with the old nushell video from JT

Challenges porting old Nushell to latest

Andres has stable experience with three different versions for the Covid data project:

  • json ordering of columns
    • we need the right datastructure there (and tests)
  • different span tagging machinery
  • ruby version manager (rvm) is very bashy
    • would require effort to port
    • Michael Papis would be Andres point of contact

Core team guidelines

Our core team will grow in the future and we probably need some structure

  • expectation
  • rules to avoid problems

Development of the document:
https://hackmd.io/@nucore/r1LvzqQJj

Release process

  • Hard to fully automate yet as we encountered several issues (at least when it comes to down stream package managers)
  • Are there safe ways to do a dry run

PR merging process when in doubt

Testing and code coverage

Simplifying nuon parsing and new tests to cover the edge cases. Introduced a proptest (not yet merged).

  • merelymyself found a weird parser bug in the process

Quoting machinery is a difficult story at the moment

Can we have a trouble shooting recipe for the many questions we get at the moment

FS error handling is not tested well yet

Mocking everything is probably hard looking for solution:
Andres: Reilly wants something really ugly (getting pathologic settings on)
Hard to get in a constrained CI environment

Maybe cargo, coreutils or other shells could be inspiration

Would be nice for 1.0

Module updates

Progress report jakub:

modules can now be evaluated and used with export-env
loose ends are coming together

source-env should be able to land this week (race condition to PR: jt, jakub :P)

After the next release:
deprecation steps

external completer

If we don't succeed with our completion we invoke a block for external completion engines (e.g. carapace(rsteube) or personal script)

We currently work with what carapace needs (can expand in the future if required)

General note: Our completion logic is very complicated/hard to follow/brittle but seems to mostly work

Fig integration probably not yet on the horizon

(Dataframe?) slowdown

Discussion by kira in #dataframe channel

No profile available (maybe proprietary data)

Non linear slowdown after many row wise iterations with using an external

Trying to break it down into individual operations
Individual ops seem to perform consistent without noticable pathologies

No growth in spans

Maybe system resource limits (file handle/thread limits)

JT discussion of nu-lang/nushell splits

Generally should be the same language. (please don't surprise like replacing cd)

Scripting language idea
imagine being able to switch a script to enforce types as soon as you are happy (no-implicit-any from typescript)

Could we emit rust(or similar) to compile nushell/nu-lang as soon as all input types are specified. (would require explicit things for stuff like open )?

Potential detour before the nu-lang

Minimal nu like scripting language to see how the engine could develop (can we try this without the shell baggage)

Action Items

  • Update Code of Conduct (still has wycats, gedge, etc as contact points)
  • Make a escaping/string quoting comparison table to highlight the different shells (os specific differences and different expansion rules) - https://hackmd.io/@fdncred/BJqi8MrJj
Select a repo