colcon / colcon-mixin

Extension for colcon to read CLI mixins from files
http://colcon.readthedocs.io
Apache License 2.0
2 stars 7 forks source link

Add -m short name for mixin. #32

Closed emersonknapp closed 1 year ago

emersonknapp commented 2 years ago

Some of the most common operations in colcon are extremely verbose compared to other commandline tools. The use case I'd most like to support here is to print build/test output to console. The instinct for this is -v, or --verbose - but instead the user has to know to type --event-handlers console_direct+, which is not only 32 characters but also mixes hyphens and underscores. We can probably all agree this is not maximally ergonomic.

colcon VERB --mixin allows for fixing this to an extent by allowing for defining a mixin named v or verbose to provide the event handlers. However this still ends up as --mixin v, which is an improvement, but at 9 characters still isn't ideal compared to -v.

If --mixin can be abbreviated as -m, then the -m v option would allow the user to accomplish the goal in 4 characters.

This is the best I can think of beyond adding a -v/--verbose extension to colcon directly. Let me know if you think that would be a better move. I think the upside of abbreviating mixin is that other short options can be easily added in the user's own mixin repository, without having to build a full extension package.

cottsay commented 2 years ago

Personally, I'm lukewarm on this because --mixin is a colcon global parameter and not a verb-specific parameter, so the "collision domain" for parameter specification includes pretty much everything.

With the the exception of -h for help, none of the other colcon global parameters seem to accept short forms like this.

The --mixin-files parameter is unfortunate, because otherwise you could drop characters from the end of --mixin as long as it was still unique. So you would have been able to use --mi v, but alas.

I'm hoping that others can share some thoughts.

emersonknapp commented 2 years ago

@cottsay who else is there that could actually weigh in on this? Seems like we're dead in the water if there are no decision makers in the room.

I still frequently hear complaints from new ROS 2 users about trying to learn how to use colcon right (or just complaining about the carpal tunnel). At the end of the day, I think there is a pretty small subset of commands that new users actually use. Maybe a wrapper tool (call it catcon? colkin?) that provides those as short options could do the job, but I also feel like an explosion of wrapper tools doesn't feel great for a simple onboarding flow.

ijnek commented 2 years ago

I only learnt the existence of colcon mixin today, so I can't comment on the implementation, but I really like the idea of adding a short flag as suggested here. The way the .mixin files are written, the verb it applies to is specified, so I expected to be able to use it (for example the debug flag), such as colcon build debug or colcon build --debug, without needing to have a --mixin flag. The reason people would want to use mixins would be to alleviate the pain of typing out flags, so if it's possible to remove the need for the --mixin flag, that'll be even better.

nuclearsandwich commented 1 year ago

who else is there that could actually weigh in on this? Seems like we're dead in the water if there are no decision makers in the room.

I wrote up my preference against adding short flags for colcon options in https://github.com/colcon/colcon-package-selection/pull/48#issuecomment-1239820133 along with my rationale.

emersonknapp commented 1 year ago

I don't think this is getting resolved, so I'm going to close until/if such a future date as we have a design decision that supports it.