-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ability to pass additional configuration file to colcon via commandline? #52
Comments
Defaults are only to override the command line defaults. Have you tried passing a custom meta file using |
Yes I tried. But my understanding is that metas files need entries for packages and cannot take global settings for a verb and apply then to all packages. here is the file that I use:
|
Ok, I understand now that you want to customize the non-package specific arguments.
I am still not sure about what exactly you expect here. In the posted snippet you set a few arguments for some verbs. How would you like these to "extend" the default configuration? E.g. the default for Or is the request specific to list values? Do you want your two CMake arguments be used by default (the "default" default has no CMake args) if the user doesn't pass anything custom. If the user passes custom CMake args you want your configured ones to still be used and concatenated with the user provided arguments? |
Yeas, ideally I'd like
Yes that's what I'd like. To use the defaults.yaml for things I always use (symlink-install, |
I don't see a good way to achieve this.
Allowing multiple default files should be easily doable in |
Just as a side note: default files passed through command line arguments would not be able to alter command line arguments defaults anymore - since they are only available after parsing the command line arguments. So this idea would probably need to be realized differently. |
+1 I would also like to see switchable, global package configuration on top of the existing package level configuration. The meta file system is great for configuring packages in the current project, but doesn't support global options. Meanwhile the
The either of first two options would create the desired effect, but I would ultimately prefer a profile system. |
@KazNX you might want to check the new package colcon-mixin and its data repository which gets us one step closer to a "profile like" system. The main advantage of the |
@mikaelarguedas Regarding the original question: with the new mixins this seems to be almost doable. Currently all |
@dirk-thomas From a cursory review, it looks like the mixin extension could achieve the desired effect. However, I'm not sure it's clear enough that "--mixin" = profile control and it's not a "set and forget" mechanic. On the latter point, getting the command line wrong may result in build failures as in some cases mixing debug/release builds can fail. |
There certainly needs to be a way - the same as it exists for profiles in e.g.
The same argument can be made for:
So I don't see were mixins are any different. |
With a combination of defaults and mixins I can now keep my original workflow (as long as it doesn't rely on env var expansion). Thanks @dirk-thomas ! Feel free to close this issue (don't want to cut short the ongoing discussion) |
To summarize the ticket:
colcon/colcon-mixin#7 implements the previously suggested option I will go ahead and close this ticket assuming that this new option satisfies the use case. Please feel free to continue commenting. |
Is there a ticket open for implementing a profile-like system that's defined and automatically used per-workspace? |
No, not at the moment. |
I'd like to be able to pass global configuration files to colcon when invoking it.
Currently the only way to do it is to set the environment variable ation
COLCON_DEFAULTS_FILE
at invocation time. But this override the defaults and doesn't extend them.Is there a way to extend the default configuration with another configuration file?
The text was updated successfully, but these errors were encountered: