Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Component: CLI Runtime #5252

Open
45 tasks
StachuDotNet opened this issue Jan 10, 2024 · 0 comments
Open
45 tasks

Component: CLI Runtime #5252

StachuDotNet opened this issue Jan 10, 2024 · 0 comments

Comments

@StachuDotNet
Copy link
Member

StachuDotNet commented Jan 10, 2024

This Issue exists to collect many items that relate to the CLI runtime, its distribution, and the over-all user experience.

If you'd like to work on one of these issues, please mention in Discord, or open a separate issue with some initial thoughts.

Near-term

  • better darklang help -- document current functionality better, and make outline for next steps
  • get single-command install working (as advertised on homepage)
  • darklang run-script file.dark (make this explicit, I think)
  • CLI Runtime: Improve handling of language server failures #5308
  • figure out code-signing (probably a cloud solution)
  • get working on Windows
    • test exes on a few Windows machines
    • set up 'install' and 'uninstall' processes
    • set up self-update
  • try to get the exes a bit smaller
    • tree-shaking?
    • fsproj changes?
    • changes to build script?
    • reduce nuget package usages?
    • use tools to inspect what's taking up 'space'?

Later / non-priorities

These aren't quite ready to be picked up, and would require more discussion

  • at some point, we'll likely need to maintain some long-running services on the host OS, to support immediate feedback, to run long-running language servers, to host HTTP handlers, etc.
  • generally adhere to "best practices" of running and 'installing' a local/CLI app
  • show darklang help somewhere on website - no reason we can't reuse the help fn's body for display on the website
  • update website with more detailed installation setup
  • darklang login
  • darklang tutorial
  • make it pretty
    • pretty errors
      • include color
    • pretty output
      • consider terminal dimensions
      • nice indentation and spacing
  • more filesystem functionality (Builtins/libraries)
  • more system/unix functionality (builtins/libraries)
  • figure out how to limit builtins/functionality to what's compatible with the running system
    • this is sort of a broader question about managing functionality+runtimes
  • raise security warnings when running packages outside your username
    • e.g. “this is a package you haven’t run before that accesses your filesystem and also stripe.com. Are you sure?
  • darklang run-from-stdin (does this make any sense?)
  • darklang serve -p 3004 (something like this to creates HTTP server running at localhost:3004.)
  • darklang run-language-server ?
  • revisit if our error-reporting is reasonable
    • errors in stderr, with additional info available by traceId
  • expand CLI script-running to support return types beyond integers
    • add support for converting Option and Result values automatically
    • add/use an explicit ExitCode type?
  • if a process exits early, there's no way to "clean up" whatever task was in-progress
  • (may be fixed - needs testing) process.run only has access to what's in the container
  • figure out how to best support users without fast consistent internet connection
    • when you have connection, self-update might take too long when you're just trying to run darklang help or something
    • when you don't, lots of things break (self-update, package-fetching, etc.)
  • do self-update in background somehow

Inspiration

@StachuDotNet StachuDotNet changed the title Component: CLI Component: CLI Runtime Jan 14, 2024
@StachuDotNet StachuDotNet added needs-review I plan on going through each of the issues and clarifying them -- this is to mark remaining issues and removed needs-review I plan on going through each of the issues and clarifying them -- this is to mark remaining issues labels Feb 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant