dotnet / command-line-api

Command line parsing, invocation, and rendering of terminal output.
https://github.com/dotnet/command-line-api/wiki
MIT License
3.34k stars 375 forks source link

Redesign to remove `PipelineResult.NotRun` #2443

Open KathleenDollard opened 2 weeks ago

KathleenDollard commented 2 weeks ago

@keboo correctly questioned the behavior or the NotRun method of PipelineResult which did nothing.

In the current design, this method could be removed (it is currently called from CliSubstem) or could reset the default values. Doing nothing is wrong.

However, it appears to point to a deeper issue. Multiple subsystems will be called, and we should track these in a thoughtful way.

Initial thoughts:

If we have exactly one terminating subsystem, we may want the current design plus a list of subsystems that run. If we allow multiple terminating subsystems, then we probably want a list of all subsystems.