Closed emersonknapp closed 1 year 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.
@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.
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.
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.
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.
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 namedv
orverbose
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.