-
Notifications
You must be signed in to change notification settings - Fork 3
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
workspace detection from catkin_tools #56
Comments
This would indeed be a great addition. I don't know why so many of these tools do it for |
First of all, this is something I want to do, and have it completed by next release of this plugin. This is why it is already triaged and has the 0.1.7 milestone.
The official ROS website only documents So to determine the "sub-feature list" of this feature I need the following info:
Of course, I might need more information in the future. |
Ah, that explains a lot. Very unfortunate. Catkin tools allows to create profiles with e.g. cmake, make or catkin make args, build, devel and source space and whitelisted / blacklisted packages. I have to say, though, that configuring from CLion is a very nice-to-have feature and in my opinion, the most important step for the next release would be basic support.
I don't think that anyone uses both of these build tools. It's normally one or the other. |
Do you have a technical reference (or an example directory I can look at) of the files |
Unfortunately, not. I don't really understand what user configurations you want to write in there? |
Perhaps he wants to generate clion build configurations automatically based off a workspace's catkin profile configurations? Each catlin profile can define make args, catlin specific make args, cmake args, devel vs install space setup, blacklist/whitelist etc |
Exactly, I want the plugin to present the configurations in a GUI, then those will be written into the profile file For example (I don't know how the directory is actually built)
The .yml file could be structured like this:
So in a UI CLion could display those two options, one as a list that can be edited and one as a text bar, and possibly add more things. When OK is clicked in CLion, it would edit the corresponding profile. It could also allow you to create new profiles from CLion if that's a thing. I am just very unfamiliar with how catkin tools works, which is why both user input and a technical input are important.
What do you consider as "base support"? All the plugin currently offers for catkin_make is automatic population of one plugin specific configuration |
I would consider base support that the workspace is recognized and packages from the workspace are found, though that doesn't really require support for catkin_tools workspaces.
You could do that but it's normally not the case that you change the profile often enough that it would justify the development efforts imho. I personally have changed it maybe four times in two years and that is probably more frequent than most people in my workgroup. |
Heres some documentation about it: https://catkin-tools.readthedocs.io/en/latest/mechanics.html I'd also say that personally I swap between profiles quite often. I configure profiles for a dev build that's more relaxed(generates debug symbols, doesnt treat warnings as errors, etc). And then I also have a profile that mimics CI for some of our projects (treats warnings as error, runs clang tidy, builds in release mode, etc). |
This was already implemented in previous versions and was a very big part of the development of this plugin. Once of the neat things about this is that you can put any path as the workspace directory in the settings and the plugin will find all packages in it (basically any file containing a package.xml that the user did not explicitly filter out) The extra "base" stuff I want to add is the automatic detection which will automatically set this plugin configuration
This is a great starting off point. However, it only describes the concept of how it is structured, but not precisely what it contains. I need a very technical documentation of the very text and files that directory contains, if such documentation exists. For example, I used the REP when working on the package.xml part of the plugin. I think an example |
So the structure of
The
and the
I assume Here's the second profile, I use to build packages for debian package builds:
|
From this conversation I gathered this feature list:
|
Signed-off-by: Noam Dori <TheNODO55@gmail.com>
Signed-off-by: Noam Dori <TheNODO55@gmail.com>
I. list can now display names and icons, which will be pulled from a service holding (temporary) info about existing profiles. The form will also pull from there. II. added/updated a bunch of icons that fit III. added an icon for catkin_make which is a grayscale catkin. IV. mock service was made, will be updated in the future. Signed-off-by: Noam Dori <TheNODO55@gmail.com>
also added an explanation for when no profile is selected Signed-off-by: Noam Dori <TheNODO55@gmail.com>
…ation from the profile DB (#56) also added documentation for the new classes, and linked the list name with the name field in each form Signed-off-by: Noam Dori <TheNODO55@gmail.com>
…#56) also added empty padding to colcon.svg so it is square Signed-off-by: Noam Dori <TheNODO55@gmail.com>
…le form (#56) Signed-off-by: Noam Dori <TheNODO55@gmail.com>
also added several QoL changes to automate things that happen after a click Signed-off-by: Noam Dori <TheNODO55@gmail.com>
…ectionedFormBuilder (#56) Signed-off-by: Noam Dori <TheNODO55@gmail.com>
also moved global UI components to global UI package Signed-off-by: Noam Dori <TheNODO55@gmail.com>
…s as well as added allow/deny lists with autocompletion (#56) Also upgraded DependencyTable to its autocompletion gets icons Signed-off-by: Noam Dori <TheNODO55@gmail.com>
also, package autocompletion in allow/deny lists no longer include rosdep keys, which are precompiled anyways Signed-off-by: Noam Dori <TheNODO55@gmail.com>
…a default profile (#56) Signed-off-by: Noam Dori <TheNODO55@gmail.com>
On the topic of how For now, I think implementing profiles via the IDE, like how catkin_make profiles are implemented, is the way to go. |
This is an extreme oversimplification of what colcon can do and does not do the buildtool justice. Signed-off-by: Noam Dori <TheNODO55@gmail.com>
…e of the corresponding forms is modified (#56) Signed-off-by: Noam Dori <TheNODO55@gmail.com>
…ked (#56) I. The profiles (once the IDE knows they exist) are persisted in their own file. This form allows future extension of all buildtools and new buildtools. II. profiles are saved in a raw "map" form. III. when "apply" is clicked, profiles are removed, edited, or added to the DB ad well as the persistence accordingly. IV. default profiles generated for catkin_make and colcon are loaded automatically into persistence V. ROSProfile's set-dir methods are now consistent with their getters Signed-off-by: Noam Dori <TheNODO55@gmail.com>
…the .catkin_tools folder (#56) Signed-off-by: Noam Dori <TheNODO55@gmail.com>
migrating a profile will delete persistence in the old buildtool. Signed-off-by: Noam Dori <TheNODO55@gmail.com>
Feature should be complete now. In the settings menu, there us a new tab under the feedback would be greatly appreciated before closing this issue |
Feature:
detect workspace root in a catkin workspace built with
catkin_tools
Background
#52 (comment)
Right now, the plugin uses a
.catkin_workspace
file generated bycatkin_make
to determine where the workspace root is. Most people usecatkin_tools
now and the tool doesnt generate a.catkin_workspace
file, so the automatic workspace detection doesnt work.Details
The plugin could pick up on a
catkin_tools
folder in the same place as where the.catkin_workspace
file is forcatkin_make
workspace. The plugin could use this instead of the.catkin_workspace
to get the workspace root path.The text was updated successfully, but these errors were encountered: