-
Notifications
You must be signed in to change notification settings - Fork 154
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
Breaking changes within rosdistro #191
Comments
This will be solved by #190, right? |
The version should be stable. It is just not called 1.0.0. Where are the breaking changes? What exactly is breaking the API? |
Depends on how this is released ;)
Both released for
|
Yes, sure, the md5 sum, rebuilding the software should solve that issue. But it isn't really a version thing. Its just how the messages are generated and the md5 sum is generated. We have to add things to the messages / actions, otherwise we get stuck while developing MBF further. But, the compiler should not fail, so the API is stable. The ABI in this case maybe not. |
We just today encountered again a breaking change from What are your plan regarding these breaking changes within ROS distro's? If this is not going to be changed, we might have to work with forks of |
Don't worry. Since the master's code (and the changed messages) already existed when we found out that the message changes were the problem for maintaining binary compatibility, we couldn't take it out, since other software already depends on it. Message changes will be made only if we change the minor version. |
And we will announce any changes in the messages if we bump to a new minor version. Are you fine with that? |
In my opinion, message changes break the interface since the |
I agree with @reinzor here, messages should not change within a ROS release. If you consider MBF work in progress you should state so in the package description so people would not use it for production systems. But given that not only Magazino is in fact using it in production I would vote against doing that. The other option is to maintain two branches/releases and do breaking changes only in the unstable/rolling release one. |
This package has been released for noetic and noetic is the last ROS1 release. This means there will never be any ROS1 updates possible for mbf_msgs. Just something to consider. |
Yes, I don't think this is good. Because, maybe you guys need to enhance the action interface at some point, too. Also the API compatibility has been defined to be stable between two minor versions. #130 (comment) |
That is the downside of open-source releases. You always lag behind if you want the stable version. But I think this is the only way to keep your users because they don't want to be annoyed with breaking changes. If you want to be up to date with the latest version, you can choose to run from source.
We can still develop to not block new great future developments and improvements. But, if these developments are breaking the ABI, we have to wait for a new ROS release. So people that want these features can just pin the repo at some point. This is how it is done for gazebo, nav stack, rviz, common messages etc. |
There is now new ROS1 release. This would result in no message changes for five years in ROS1. |
I understand your motives but this will force people that want a stable version to run from source instead of release. IMO it should be the other way around. Anyway, we will set-up a source build then :). |
Okay, but I think I'm outvoted and we are not going to change the messages, services, and actions anymore. As discussed with @corot, we hack in additional action servers and new messages /actions e.g. |
My 2 cents: Hacking new message files into the repo to avoid clashes with stable release packages is, indeed, a hack. This adds a new layer for versioning new features on the file level. And it's a hurdle for developing/refactoring the bleeding edge version IMO. I agree with @jspricke that there should be a distinction between release (stable API) and development code (new features etc.) via branching in this case. If we want to have stability in a ROS distro release, ideally only important bug patches should be released for that distro and people who need newest features immediately should use a source build from master. This wouldn't help with the "5 years without new package" problem though, but I guess that's a general problem of ROS 1 now... 😕 |
See #216 |
AFAIK no breaking changes should be introduced with releases to the same rosdistro. I noticed that this happens quite often in the
mbf_msgs
for example. When do you plan to create a stable1.0.0
that adhere non-breaking changes within rosdistro's? Follow up of #130The text was updated successfully, but these errors were encountered: