spectreconsole/spectre.console

-v flag conflict between additional commands and default command

BCoskun opened this issue · 2 comments

Information

  • V0.47 and 0.48 behavior change for -v flag.

Describe the bug
I was using -v short hand flag for sub command and it was working until V0.48 . With Version 0.48 parsing behavior changed and when we use -v for subcommand, it print application version directly.

To Reproduce
With Version 0.47 ConsoleApp.exe -v and ConsoleApp.exe subcommand -v has different behavior.
With Version 0.48 ConsoleApp.exe -v and ConsoleApp.exe subcommand -v has same behavior.

Expected behavior
The sub command -v should be parsed for the sub command context


Please upvote 👍 this issue if you are interested in it.

Can you provide an unit test for this?
This would help understanding the problem and having a definition of "done"

Similar bug in the past #1400
My issue probably caused this change 😅

I guess there is no absolute right answer, and if it is it is harder to do than it may first look like

I introduced the bug @JKamsker, unfortunately. I knew it was a breaking change, and flagged it as such, but I think the change in functionality is probably now best described as a regression. I'll add this to my stack to review/address.

#1400 (comment)

And

FYI. I've submitted the PR above to revert this to existing behaviour @JKamsker

#1400 (comment)

Background
Apologies for creating this problem. The above issue description is exactly correct, we changed this behaviour between 0.47 and 0.48.

It had worked as per the current 0.48 earlier than 0.47, then I did some refactoring, changed it to the behaviour in 0.47, flagged it as a breaking change (thinking it was fine to make breaking changes, if warranted, as we are still < version 1.0), which was accepted by the maintainer team and merged.

Then we found a number of unhappy users of spectre.console (because we broke their apps), and so on further consideration, we reverted the change. Unfortunately, I doubt we'd be looking to revert it once again.