-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
v2.17.1 is a patch bump with a breaking change #2994
Comments
Thank you for raising this point. The versioning scheme we have in use is somewhat different from the standard semantic versioning, with API changes triggering minor bump instead of major. In other words, we ensure that versions with same For the 2.17.1 release we haven't updated the list of API changes just yet, but AFAIK, the following PRs constitute change from 2.17: For #2830, the changes are for now entirely "header only" and are not affected by the version number in In case of #2829 - the firmware enabling this feature is not yet available outside Intel, so only internal users can be affected by the API change. After several delays this feature is currently scheduled to be supported in next firmware / LRS release. In case of #2823 - we removed a function that always caused an exception. I don't think anyone will be affected by this change. So while technically, this should have been 2.18, I think the changes are minor enough to keep it practically interchangeable with 2.17.0. This way you don't have to rebuild your application after |
@dorodnic , I've either misunderstood something crucial, or we both are using the same terminology to reference wildly different things. Semver delineates interface changes along a "non-breaking" and "breaking" basis. The addition of a new function is an example of the former and must bump the I now understand that you have elected to treat the Suffice it to say that Debian packages don't work that way. By publishing Do you intend for |
It is not unreasonable to recall a newly published release and re-tag it under a different version, given good enough reasons. |
-- https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#development-files As version that is backward-incompatible with the previous, I can only speak for myself and my company: this breaking change broke our build. That the member function caused run-time exceptions is immaterial to the mandate that package upgrades should never break existing code. I'm having trouble finding wording within the Debian policy docs that spells this out --- perhaps, I think, because interface stability is implicitly assumed so widely. I'll keep looking. |
If the change broke your build we will do our best to rectify it. I need to do my homework and better understand why this happened. If you could share more information it would help a lot. This is especially strange since the function in question is not part of shared lib's exported API, it exists in header-only, and is being compiled by the application, not librealsense. My understanding until now was that publishing |
@dorodnic , as of this writing, here is the enumeration of your public headers:
If you see "private" headers in the aforementioned list, then I would ask that you review your packaging methodology. How do you package |
@dorodnic @RealSense-Customer-Engineering @ev-mp : for what it's worth, my very nice co-workers removed the call to the probably-should-have-been-private-but-was-totally-public function |
@realtime-neil ,
The policy describes how the changes in the shared lib ABI should be handled and provides an explicit definition of what constitute a change that requires
The key points are:
Back to the commit in question:
Given this breakdown we do not find this commit breaking the established Debian policy rules. |
Well done. Masterfully defended. Because the breaking change was the removal of a function with an inlined definition, you successfully isolated the breakage to the header that contained it. And, as you accurately point out, section 8.4 of the Debian policy is rather quiet on that point. If that function definition had been in the library, then I might have won this argument. As it is, the letter (if not the spirit) of the policy supports you and not me. |
This is a breaking change: aa65fdd#diff-73eaf3fd93adb8d4747d040e3a2ef2eaL66
Will you bump the major version number? What is the workaround if you don't bump the major version number?
Originally posted by @realtime-neil in aa65fdd#commitcomment-31821515
The text was updated successfully, but these errors were encountered: