-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Labels
Description
Core Tenants
Note
We'll use t-shirt sizes (S, M, L) to gauge the amount of effort and impact.
A ? means an unknown amount of effort/impact.
Consistency
- Surface (Schema/Format) Standards
- Effort:
L, Impact:L - Design standards and rules around CLI command surface
- Refactor current CLI surface to meet those standards
- Potential for breaking changes but aliases will be used to minimize impact
- Implement deprecation mechanism
- Refactor documentation to present a versioned CLI surface
- Effort:
- Command Implementation (Shared Library)
- Effort:
M, Impact:M - Create public-facing (shippable) shared CLI library
- Enhanced System.CommandLine features
- All types require dotnet CLI specific implementations (eq.
System.CommandLine.Optionwould haveMicrosoft.DotNet.Cli.Option[exact names TBD]) - Custom help system
- Additional features not present within S.CL (eg. option sets, argument ordering, etc.)
- All types require dotnet CLI specific implementations (eq.
- Shared command-specific options/arguments (or anything else that is reusable within the dotnet CLI domain)
- Effort:
- Command Output (Output Stream Handling)
- Effort:
M, Impact:S/M - Review current command output and determine how to normalize
- This has potential for "breaking changes" if users relied on commands outputting in a certain way
- Refactor commands to use shared output schema (eg. allow for machine-readable formats, "--what-if" operational logic, etc.)
- Shared color handling
- Better use and implementation of resource strings
- Effort:
- Telemetry
- Effort:
S, Impact:M - Review current telemetry schema
- Update telemetry to better suit customer needs/usage
- (Potential) Use different telemetry provider (for performance reasons)
- Effort:
Performance
- Effort:
M, Impact:M/? - Investigate general operational performance (eg. command-independent perf)
- Investigate command-specific performance
- Investigate AOT designs (or other potential start-up perf improvements)
- Investigate OOP (out-of-proc) designs
- Investigate cross-plat performance
AI
- Effort:
?, Impact:? - Review commands for potential AI interaction (eg.
dotnet newwould allow creation based on AI interaction instead of traditional explicit templates) - Determine how authentication would work with AI commands
- Determine if any local LLMs could be useful/created for the dotnet CLI and related concepts (eg. MSBuild, NuGet, etc.)
New Features
- Effort:
?, Impact:? - Command input/prompting design (eg. interactive command usage)
- Shared configuration (eg. global.json replacement specific to dotnet CLI)
- Could be repo-specific, SDK-version specific, or global (?)
- SDK/runtime installation management
ShadowXTz, reflectronic, DamianEdwards, WeihanLi and nagilson