{"action":"created","issue":{"url":"https://api.github.com/repos/Z3Prover/z3/issues/739","repository_url":"https://api.github.com/repos/Z3Prover/z3","labels_url":"https://api.github.com/repos/Z3Prover/z3/issues/739/labels{/name}","comments_url":"https://api.github.com/repos/Z3Prover/z3/issues/739/comments","events_url":"https://api.github.com/repos/Z3Prover/z3/issues/739/events","html_url":"https://github.com/Z3Prover/z3/pull/739","id":177040314,"number":739,"title":"Set soname version correctly in cmake build","user":{"login":"rhelmot","id":2498805,"avatar_url":"https://avatars.githubusercontent.com/u/2498805?v=3","gravatar_id":"","url":"https://api.github.com/users/rhelmot","html_url":"https://github.com/rhelmot","followers_url":"https://api.github.com/users/rhelmot/followers","following_url":"https://api.github.com/users/rhelmot/following{/other_user}","gists_url":"https://api.github.com/users/rhelmot/gists{/gist_id}","starred_url":"https://api.github.com/users/rhelmot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rhelmot/subscriptions","organizations_url":"https://api.github.com/users/rhelmot/orgs","repos_url":"https://api.github.com/users/rhelmot/repos","events_url":"https://api.github.com/users/rhelmot/events{/privacy}","received_events_url":"https://api.github.com/users/rhelmot/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Z3Prover/z3/labels/cla-already-signed","name":"cla-already-signed","color":"009800"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-09-14T22:35:43Z","updated_at":"2016-10-04T15:03:11Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Z3Prover/z3/pulls/739","html_url":"https://github.com/Z3Prover/z3/pull/739","diff_url":"https://github.com/Z3Prover/z3/pull/739.diff","patch_url":"https://github.com/Z3Prover/z3/pull/739.patch"},"body":"Resolves a FIXME in the cmake build. See diff.\r\n\r\nPreviously, the DT_SONAME of libz3.so was libz3.so.4.4.2.1, which was kind of horrifying to me? This means that if any package maintainer distributes a binary that depends on the z3 shared library, they are forced to redo their distribution any time z3 publishes a _tweak_ update.\r\n\r\nNote that this is only if the z3 distributor uses the cmake build, and it looks like the libz3.so in the ubuntu xenial archives was not built this way. This... confuses me, since the python build system produces a libz3.so that doesn't have a DT_SONAME and it's not clear if there's supposed to be a flag to enable this behavior, so I have no idea how the ubuntu distribution was built? The ubuntu distribution currently has a soname of libz3.so.4, which is what this pull request changes the soname to.\r\n\r\nAll this, of course, operates under the assumption that z3 only breaks its APIs on major version increments. If this is not the case we can change the soname to major.minor."},"comment":{"url":"https://api.github.com/repos/Z3Prover/z3/issues/comments/251415100","html_url":"https://github.com/Z3Prover/z3/pull/739#issuecomment-251415100","issue_url":"https://api.github.com/repos/Z3Prover/z3/issues/739","id":251415100,"user":{"login":"wintersteiger","id":10155819,"avatar_url":"https://avatars.githubusercontent.com/u/10155819?v=3","gravatar_id":"","url":"https://api.github.com/users/wintersteiger","html_url":"https://github.com/wintersteiger","followers_url":"https://api.github.com/users/wintersteiger/followers","following_url":"https://api.github.com/users/wintersteiger/following{/other_user}","gists_url":"https://api.github.com/users/wintersteiger/gists{/gist_id}","starred_url":"https://api.github.com/users/wintersteiger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wintersteiger/subscriptions","organizations_url":"https://api.github.com/users/wintersteiger/orgs","repos_url":"https://api.github.com/users/wintersteiger/repos","events_url":"https://api.github.com/users/wintersteiger/events{/privacy}","received_events_url":"https://api.github.com/users/wintersteiger/received_events","type":"User","site_admin":false},"created_at":"2016-10-04T15:03:11Z","updated_at":"2016-10-04T15:03:11Z","body":"So far we never had an explicit policy for API changes, but I suspect that in the past they aligned fairly often with changes in build number (as in major.minor.build.revision). So, by that history, I'd say the next release will get 4.4.3.0. But, since we added new features (e.g., get-implications and optimization features), we have reason enough to call it 4.5.0.0 too.\r\n\r\nI agree that we should have some sort of policy for this, so that things like the breaking change to get_error_msg(_ex) won't make it into a release at all."}}
{"actor":{"display_login":"wintersteiger"}}