Skip to content
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

Binary release - at least of the descriptions #135

Open
wxmerkt opened this issue Oct 19, 2018 · 13 comments
Open

Binary release - at least of the descriptions #135

wxmerkt opened this issue Oct 19, 2018 · 13 comments

Comments

@wxmerkt
Copy link
Contributor

wxmerkt commented Oct 19, 2018

Hi all,
Thank you very much for the recent activity and updates! We are heavy users of this package on multiple platforms (2f, 3f, force torques) and often run into the same issue: We depend on the description packages for visualisation and development machines that do not require the full control stack (as robots do, or even the simulation tack) - as this is a mono-repo our users manually need to copy the subdirectories, catkin-ignore all robot-only packages, install tons of unneeded dependencies (SOEM, CANopen etc.) or use a fork. Thus, it would be great if - if not all - some packages, especially the descriptions, could be released into the binaries.

We are happy to volunteer in maintaining and helping with the release hereto, if so desired.

Looking forward to hearing your thoughts,
Wolfgang

@wxmerkt
Copy link
Contributor Author

wxmerkt commented Feb 3, 2019

Hi, I'd like to follow up on this item. We'd really like to see a binary release of the description and/or drivers to kinetic/melodic. Happy to volunteer to help out with this as well.

@wxmerkt
Copy link
Contributor Author

wxmerkt commented Feb 22, 2019

Hi @jproberge,
We'd love to get the Robotiq descriptions (and perhaps drivers) released for Kinetic/Melodic as we have to always download the repository and remove the drivers etc. on non-robot machines (or fork and split out the descriptions).
Is there anything speaking against it? I'd be happy to volunteer to help out with this as well.

Thanks,
Wolfgang

@jproberge
Copy link
Contributor

Hi @wxmerkt ,

I've been thinking about this for some time now and I indeed think we should definitely move on to make binary releases for our package stack. To be honest, I don't think it would be incredibly difficult to achieve that in the rather near future, at least for Kinetic and Melodic. Have you checked the Jenkins jobs? See here for yourself. There are a few warnings that make the kinetic build unstable, but these should be rather easy to fix. This could be a simple starting point.

I also share the idea that releasing descriptions and drivers separately would be great, I agree to start working on that as soon as possible. I think this step would benefit many people that sometimes have trouble installing the dependencies. Feel free to contribute as much as you want, I would review and accept any PR that would bring us closer to such releases.

All the best,
jproberge

@gavanderhoorn
Copy link
Member

@jproberge wrote:

I also share the idea that releasing descriptions and drivers separately would be great, I agree to start working on that as soon as possible.

note that Bloom does not support releasing a subset of pkgs from a repository, so if you want to do this, a new repository will have to be created.

This would seem to tie in with ros-industrial/ros_industrial_issues#49.

@wxmerkt
Copy link
Contributor Author

wxmerkt commented Feb 25, 2019

Thank you @jproberge! I will follow up in this either in the next few days or first week of March.

note that Bloom does not support releasing a subset of pkgs from a repository, so if you want to do this, a new repository will have to be created.

Can't we manually specify the list in the yaml?

@gavanderhoorn
Copy link
Member

gavanderhoorn commented Feb 25, 2019

note that Bloom does not support releasing a subset of pkgs from a repository, so if you want to do this, a new repository will have to be created.

Can't we manually specify the list in the yaml?

after Bloom has done it's job: yes, I believe so, but you would still be versioning and processing everything at the same time, as git does not support partial tagging.

I would also not recommend it tbh.

@christian-rauch
Copy link
Contributor

If a partial release is not possible at this time, could we at least split the descriptions (robotiq_2f_c2_gripper_visualization, robotiq_2f_140_gripper_visualization, robotiq_3f_gripper_visualization) into separate git repos and add them as submodules to this main repo?
I also would really like to use the descriptions (and maybe the message definitions) without having to download/compile the whole control+gazebo stack.

@gavanderhoorn
Copy link
Member

I also would really like to use the descriptions (and maybe the message definitions) without having to download/compile the whole control+gazebo stack.

not a real solution, but both catkin and catkin_tools support package white- and blacklists that make it relatively easy to compile subsets of packages in a workspace. You should be able to use that as a work-around for now.

@christian-rauch
Copy link
Contributor

@gavanderhoorn What do you mean with "not a real solution"? I think it should be possible to use the URDFs and meshes without the control and Gazebo stack.
If the descriptions are located in their own repo, you can either A) bloom release them independently from the drivers and simulation, or B) add them as submodules and later bloom release them as part of the robotiq meta package.
In any case, one will be able to just check out the description as part of a vcs tool repo file without the need to blacklist individual packages afterwards.

@gavanderhoorn
Copy link
Member

gavanderhoorn commented May 1, 2019

What I posted (ie: use a black or whitelist) was not meant as a real solution. It's almost a work-around.


Edit: however, users don't have to compile "everything" should not be a rationale for splitting repositories. For that black and/or whitelisting are actually OK techniques.

The real solution would be to just release the packages. Then users would not have to build them from source, and we don't have this problem.

@wxmerkt
Copy link
Contributor Author

wxmerkt commented May 1, 2019

Another work-around I frequently use: Clone the repository in a different location and symlink only the descriptions into the workspace.

I am all in favour of making a binary release and happy to volunteer to assist with it. @jproberge is there anything blocking a binary release right now?

@christian-rauch
Copy link
Contributor

@gavanderhoorn I agree that blacklisting packages is not an ideal solution. That is why I am proposing to move the descriptions into their own repos and either release them independently or as a submodule of the main repo.
The benefit of having modular repos is actually quite large. You can use the URDFs without having to wait for a release (e.g. on other Linux distributions or CPU architectures) and you can use them outside of the ROS ecosystem. Also, I do not see a disadvantage if the dedicated description repos are added as submodules.

@gavanderhoorn
Copy link
Member

gavanderhoorn commented May 1, 2019

@christian-rauch: perhaps you're misunderstanding me. I don't need to be convinced of the benefits of splitting off drivers from description repositories. I already linked ros-industrial/ros_industrial_issues#49 which deals with this exact topic.

However, I don't believe splitting because of "not having to build everything" should be the only rationale, as there is support in tools to manage that and in addition regular users should not have to built from sources anyway.

So let's conclude that it might make sense to split out the description or driver packages and leave the logistics and decision to @jproberge.

either release them independently or as a submodule of the main repo.

let's stay away from submodules.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants