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

Fix SOVERSION to use only MAJOR to match ABI rules #1239

Closed
wants to merge 1 commit into from
Closed

Fix SOVERSION to use only MAJOR to match ABI rules #1239

wants to merge 1 commit into from

Conversation

j-rivero
Copy link
Contributor

The SOVERSION is currently coded to MAJOR.MINOR in Dart. If I'm not wrong, Dart follows semantic versioning so ABI is compatible in all minor versions of a major serie . If that is the case, I think that the current SOVERSION should be composed only by the major version.

@jslee02
Copy link
Member

jslee02 commented Feb 13, 2019

We intend to follow the semantic versioning, but I'm not sure if we strictly following it. I try to keep API compatibility over minors and patches in a major (with some accidental exceptions) but am not sure about ABI. Would this be the case?

@mxgrey
Copy link
Member

mxgrey commented Feb 14, 2019

The problem is that semantic versioning is a bit ambiguous when it comes to C++, because it's very possible to maintain API compatibility but break ABI compatibility.

DART's current policy is to maintain API compatibility between minor releases, and maintain ABI compatibility between patch releases, but we make no guarantee about ABI between minor releases.

I've opened an issue to propose that we maintain ABI compatibility between minor releases: #1026. However making that feasible would require a major overhaul to how DART is implemented, and it's not clear to me when or if we'd have time for that.

@mxgrey
Copy link
Member

mxgrey commented Feb 14, 2019

But while the current policy exists, we do need both major and minor versions as part of the SOVERSION.

@j-rivero
Copy link
Contributor Author

I was not aware of the lack of clarity in semantic versioning respect to the ABI. Thanks for explanation, I will rename the dart packages in Debian according to the policy (grep for package-name-doesnt-match-sonames in the Jenkins build log)

It would be good if we can keep packages with the same name in both upstream Debian and the PPA https://launchpad.net/~dartsim/+archive/ubuntu/ppa/+packages .

@j-rivero j-rivero closed this Feb 14, 2019
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

3 participants