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

Add more light options to SetLightProperties (kinetic) #881

Conversation

christian-rauch
Copy link
Contributor

This is a backport of #874 to the kinetic-devel branch.

This PR adds cast_shadows, specular, direction and pose to the SetLightProperties service.

@christian-rauch
Copy link
Contributor Author

@j-rivero Can you have a look at this?

@christian-rauch
Copy link
Contributor Author

@j-rivero Can you comment on this PR? Any objections to get this merged?

Copy link
Contributor

@chapulina chapulina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really like this PR in principle, my only concern is backwards-compatibility.

Admittedly, I don't know much about compatibility of ROS messages. Do you know if a service client using the old message would be able to make a successful request to this service once it expects the new message?

@@ -1,8 +1,12 @@
string light_name # name of Gazebo Light
bool cast_shadows
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you document the new fields?

@christian-rauch
Copy link
Contributor Author

@chapulina This feature is actually already part of the current noetic branch (#874). This specific PR is just a backport to kinetic and I would therefore refrain from changing anything that is not required to make it work on kinetic to make sure that both branches use the same features.

Admittedly, I don't know much about compatibility of ROS messages. Do you know if a service client using the old message would be able to make a successful request to this service once it expects the new message?

It is source compatible. That is, you can recompile your C++ code or run a python node without the need to change the code. But it is not binary compatible. That means you cannot exchange messages with nodes that use different message definitions.
Maybe this was the reason you agreed to have it in noetic but not in kinetic? If you do not want to break the binary compatibility, I will just close this PR and leave the feature on the noetic branch.

@chapulina
Copy link
Contributor

This feature is actually already part of the current noetic branch

Ah thanks, I knew I had seen this before 😄

Maybe this was the reason you agreed to have it in noetic but not in kinetic? If you do not want to break the binary compatibility, I will just close this PR and leave the feature on the noetic branch.

Yes, that's my main concern. Changing message definitions within a distribution can break existing systems. I think it would be better to leave this in Noetic-only, sorry 😕

@christian-rauch
Copy link
Contributor Author

I think it would be better to leave this in Noetic-only, sorry

Ok. I will then go ahead and close this to keep the breaking change just in kinetic->noetic.

However, it would now make sense to make noetic-devel the default branch so that the feature is actually distributed to users that check out the repo manually.

@christian-rauch christian-rauch deleted the light_pose_kinetic branch July 10, 2020 09:41
@chapulina
Copy link
Contributor

it would now make sense to make noetic-devel the default branch so that the feature is actually distributed to users that check out the repo manually.

That's an interesting idea. Maybe @j-rivero can comment on this. My impression is that this repository's default branch has always been the oldest supported version, so if we change this now it may break their expectations.

@christian-rauch
Copy link
Contributor Author

My impression is that this repository's default branch has always been the oldest supported version

Well, at least I only check out the git repo if I need the latest version with a feature that hasn't made it to a bloom released version yet. Otherwise, it is much more convenient to just install the binary packages via apt.

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

Successfully merging this pull request may close these issues.

None yet

2 participants