owned this note changed a year ago
Published Linked with GitHub

Nushell core team meeting 2023-10-04

Attendees

  • Darren
  • JT
  • Antoine
  • Jakub
  • Michael
  • Stefan
  • WindSoilder

Agenda

  • Should there be a separate type for a table compatible with any narrower table or could table without columns suffice? #10594
  • (@amtoine) do we agree on renaming all dates to datetimes? (#10332)
  • (@storm) make some of the nushell crate apis similar to the reedline api which rocks (is really good)
  • New parser updates/aspirations Parser walkthrough
  • How to do tests?
  • do we add rustls behind a feature? (#9798)

Discussed Topics

unspecified table or record return type

Question posed by #10594, should there be a separate AnyTable/AnyRecord return type that will be accepted by any constraining specific table e.g. table<foo:int>.

JT: in practice it would make sense to just accept table<> as the any type
Stefan: simpler to teach
Darren: are there possible scenarios?
Revisit if it turns out there is a problem

date/datetime

  • into datetime, datetime now
    • should we leave just the date ... commands?
    • only rename the type related things?
  • JT: bifocal glasses metaphor from the PowerShell dev history book
    • consistency is not the endgoal: ergonomics

API docs

  • docs.rs
  • reedline has #[warn(missing_docs)] enabled
  • READMEs per crate.
    • also relevant subdirectories
    • the latter harder to keep up to date

New nu parser

  • Walkthrough during the state of https://github.com/jntrnr/new-nu-parser
  • Michael:? Role of the lex
  • Darren: Lossless parsing (inspiration rust-analyzer)
    • preserving comments
      • nufmt discussion
    • attributes
  • Jakub: def --env flag is floating at the moment. would this fit
    • could be done even in the keywordy
  • Darren:? is this parser more introspectable/tracing
    • tracing should be possible as part of development
    • user should not care too much about particular details of parse time
    • engine probably more impactful
  • Kubouch: how should we go about the integration into the existing nushell.
    • ast/syntaxshape
    • span refactor vol2 engine boogaloo (from span -> spanid -> nodeid)

Goals:

  • readability/maintainability
  • optimizability through flat ast repr
  • get more folks comfortable with the parser!

Test runner for nu code

  • Kubouch: nupm tests
    • check for module, read scope commands
    • downside: can't be inline in the same module
    • need to spawn nu for each test and still parse the whole module under test (and its deps)
  • current test runner for the stdlib: lookup of annotation through manual reparsing of source
    • #[test]
  • Keyword/Annotation syntax?
    • not the hard part to punch out syntax/parsing
    • but hard to nail down the whole test framework that makes sense for nushell (constraints of nushell)
      • setup
      • teardown
      • also benchmarks
  • eVaL for reflection
  • nu comptime reflection to emit a limited set of "macros"
  • or just write some test facilities in nu rust
    • deep introspection
    • resetting of the engine possible (butterfly meme: is this eval)
  • general desire for annotations/attributes/conditionals

Rustls

  • OpenSSL proven, problems known
  • rustls unknown
    • CVE management harder compared to dynamically linked to system OpenSSL
    • early adopter tax for compatiblility on platforms/configs
  • Additional feature to maintain, make a call about for 1.0

Conclusion:
Don't take it now as we try to be conservative. Recommend that they can maintain a fork/patch we will share if folks are interested in running it for their system.

Storm will follow up with this person and let them know that the core team has agreed to link to the doc explaining how folks who want to link in rustls can do so. Also, for folks who are interested in rustls they can talk to other folks in discord about how to build rustls on their own.

Issues

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
the issues which needs-core-team-attention

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Note
to list all the PRs currently opened in nushell/nushell:

gh pr list --json url,number,author,title
| from json
| each {|i|
    $"- [($i.number)]\(($i.url)\) ($i.title) \(@($i.author.login)\)"
}
| reverse
| to text
Select a repo