{"action":"opened","number":1487,"pull_request":{"url":"https://api.github.com/repos/zeromq/libzmq/pulls/1487","id":40724306,"html_url":"https://github.com/zeromq/libzmq/pull/1487","diff_url":"https://github.com/zeromq/libzmq/pull/1487.diff","patch_url":"https://github.com/zeromq/libzmq/pull/1487.patch","issue_url":"https://api.github.com/repos/zeromq/libzmq/issues/1487","number":1487,"state":"open","locked":false,"title":"don't break STREAM socket ABI from 4.1.x to 4.2.0","user":{"login":"pijyoi","id":2657027,"avatar_url":"https://avatars.githubusercontent.com/u/2657027?v=3","gravatar_id":"","url":"https://api.github.com/users/pijyoi","html_url":"https://github.com/pijyoi","followers_url":"https://api.github.com/users/pijyoi/followers","following_url":"https://api.github.com/users/pijyoi/following{/other_user}","gists_url":"https://api.github.com/users/pijyoi/gists{/gist_id}","starred_url":"https://api.github.com/users/pijyoi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pijyoi/subscriptions","organizations_url":"https://api.github.com/users/pijyoi/orgs","repos_url":"https://api.github.com/users/pijyoi/repos","events_url":"https://api.github.com/users/pijyoi/events{/privacy}","received_events_url":"https://api.github.com/users/pijyoi/received_events","type":"User","site_admin":false},"body":"The current state of STREAM sockets connect/disconnect notifications behavior is as follows.\r\n\r\nnotification | 4.0.x | 4.1.x | 4.2.0 (master)\r\n-------------- | ------| -------| ------\r\nconnect | no | yes | sockopt (default no)\r\ndisconnect | no | yes | yes\r\n\r\nNotice that the ABI was broken from 4.0.x to 4.1.x and yet once more from 4.1.x to 4.2.0.\r\nThis PR changes the behavior to the following such that no ABI breakage occurs from 4.1.x to 4.2.0. (since 4.2.0 has not been released yet)\r\n\r\nnotification | 4.0.x | 4.1.x | 4.2.0 (master)\r\n-------------- | ------| -------| ------\r\nconnect | no | yes | sockopt (default yes)\r\ndisconnect | no | yes | sockopt (default yes)\r\n\r\nUse case for connect/disconnect notifications:\r\n1) connect notifications are needed for the server socket when the protocol is such that the server socket is the one that sends the first message upon the connection of a client (added in #832)\r\n2) disconnect notifications are needed so that the application is able to discard any connection state when its peer has disconnected. (added in #825)\r\n\r\nSee also discussion in #1316\r\n","created_at":"2015-07-23T22:10:53Z","updated_at":"2015-07-23T22:10:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/zeromq/libzmq/pulls/1487/commits","review_comments_url":"https://api.github.com/repos/zeromq/libzmq/pulls/1487/comments","review_comment_url":"https://api.github.com/repos/zeromq/libzmq/pulls/comments{/number}","comments_url":"https://api.github.com/repos/zeromq/libzmq/issues/1487/comments","statuses_url":"https://api.github.com/repos/zeromq/libzmq/statuses/fd51b0e508172ec8b99b0785c4d7ab13e9b5f220","head":{"label":"pijyoi:stream_notify","ref":"stream_notify","sha":"fd51b0e508172ec8b99b0785c4d7ab13e9b5f220","user":{"login":"pijyoi","id":2657027,"avatar_url":"https://avatars.githubusercontent.com/u/2657027?v=3","gravatar_id":"","url":"https://api.github.com/users/pijyoi","html_url":"https://github.com/pijyoi","followers_url":"https://api.github.com/users/pijyoi/followers","following_url":"https://api.github.com/users/pijyoi/following{/other_user}","gists_url":"https://api.github.com/users/pijyoi/gists{/gist_id}","starred_url":"https://api.github.com/users/pijyoi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pijyoi/subscriptions","organizations_url":"https://api.github.com/users/pijyoi/orgs","repos_url":"https://api.github.com/users/pijyoi/repos","events_url":"https://api.github.com/users/pijyoi/events{/privacy}","received_events_url":"https://api.github.com/users/pijyoi/received_events","type":"User","site_admin":false},"repo":{"id":7050613,"name":"libzmq","full_name":"pijyoi/libzmq","owner":{"login":"pijyoi","id":2657027,"avatar_url":"https://avatars.githubusercontent.com/u/2657027?v=3","gravatar_id":"","url":"https://api.github.com/users/pijyoi","html_url":"https://github.com/pijyoi","followers_url":"https://api.github.com/users/pijyoi/followers","following_url":"https://api.github.com/users/pijyoi/following{/other_user}","gists_url":"https://api.github.com/users/pijyoi/gists{/gist_id}","starred_url":"https://api.github.com/users/pijyoi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pijyoi/subscriptions","organizations_url":"https://api.github.com/users/pijyoi/orgs","repos_url":"https://api.github.com/users/pijyoi/repos","events_url":"https://api.github.com/users/pijyoi/events{/privacy}","received_events_url":"https://api.github.com/users/pijyoi/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/pijyoi/libzmq","description":"ØMQ libzmq core library -- development trunk","fork":true,"url":"https://api.github.com/repos/pijyoi/libzmq","forks_url":"https://api.github.com/repos/pijyoi/libzmq/forks","keys_url":"https://api.github.com/repos/pijyoi/libzmq/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pijyoi/libzmq/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pijyoi/libzmq/teams","hooks_url":"https://api.github.com/repos/pijyoi/libzmq/hooks","issue_events_url":"https://api.github.com/repos/pijyoi/libzmq/issues/events{/number}","events_url":"https://api.github.com/repos/pijyoi/libzmq/events","assignees_url":"https://api.github.com/repos/pijyoi/libzmq/assignees{/user}","branches_url":"https://api.github.com/repos/pijyoi/libzmq/branches{/branch}","tags_url":"https://api.github.com/repos/pijyoi/libzmq/tags","blobs_url":"https://api.github.com/repos/pijyoi/libzmq/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pijyoi/libzmq/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pijyoi/libzmq/git/refs{/sha}","trees_url":"https://api.github.com/repos/pijyoi/libzmq/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pijyoi/libzmq/statuses/{sha}","languages_url":"https://api.github.com/repos/pijyoi/libzmq/languages","stargazers_url":"https://api.github.com/repos/pijyoi/libzmq/stargazers","contributors_url":"https://api.github.com/repos/pijyoi/libzmq/contributors","subscribers_url":"https://api.github.com/repos/pijyoi/libzmq/subscribers","subscription_url":"https://api.github.com/repos/pijyoi/libzmq/subscription","commits_url":"https://api.github.com/repos/pijyoi/libzmq/commits{/sha}","git_commits_url":"https://api.github.com/repos/pijyoi/libzmq/git/commits{/sha}","comments_url":"https://api.github.com/repos/pijyoi/libzmq/comments{/number}","issue_comment_url":"https://api.github.com/repos/pijyoi/libzmq/issues/comments{/number}","contents_url":"https://api.github.com/repos/pijyoi/libzmq/contents/{+path}","compare_url":"https://api.github.com/repos/pijyoi/libzmq/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pijyoi/libzmq/merges","archive_url":"https://api.github.com/repos/pijyoi/libzmq/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pijyoi/libzmq/downloads","issues_url":"https://api.github.com/repos/pijyoi/libzmq/issues{/number}","pulls_url":"https://api.github.com/repos/pijyoi/libzmq/pulls{/number}","milestones_url":"https://api.github.com/repos/pijyoi/libzmq/milestones{/number}","notifications_url":"https://api.github.com/repos/pijyoi/libzmq/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pijyoi/libzmq/labels{/name}","releases_url":"https://api.github.com/repos/pijyoi/libzmq/releases{/id}","created_at":"2012-12-07T09:14:13Z","updated_at":"2015-01-13T12:47:34Z","pushed_at":"2015-07-23T21:44:48Z","git_url":"git://github.com/pijyoi/libzmq.git","ssh_url":"git@github.com:pijyoi/libzmq.git","clone_url":"https://github.com/pijyoi/libzmq.git","svn_url":"https://github.com/pijyoi/libzmq","homepage":"www.zeromq.org","size":14189,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"zeromq:master","ref":"master","sha":"588e0d2d8604ab7e7b0ee29421213f4115e75be8","user":{"login":"zeromq","id":109777,"avatar_url":"https://avatars.githubusercontent.com/u/109777?v=3","gravatar_id":"","url":"https://api.github.com/users/zeromq","html_url":"https://github.com/zeromq","followers_url":"https://api.github.com/users/zeromq/followers","following_url":"https://api.github.com/users/zeromq/following{/other_user}","gists_url":"https://api.github.com/users/zeromq/gists{/gist_id}","starred_url":"https://api.github.com/users/zeromq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zeromq/subscriptions","organizations_url":"https://api.github.com/users/zeromq/orgs","repos_url":"https://api.github.com/users/zeromq/repos","events_url":"https://api.github.com/users/zeromq/events{/privacy}","received_events_url":"https://api.github.com/users/zeromq/received_events","type":"Organization","site_admin":false},"repo":{"id":263379,"name":"libzmq","full_name":"zeromq/libzmq","owner":{"login":"zeromq","id":109777,"avatar_url":"https://avatars.githubusercontent.com/u/109777?v=3","gravatar_id":"","url":"https://api.github.com/users/zeromq","html_url":"https://github.com/zeromq","followers_url":"https://api.github.com/users/zeromq/followers","following_url":"https://api.github.com/users/zeromq/following{/other_user}","gists_url":"https://api.github.com/users/zeromq/gists{/gist_id}","starred_url":"https://api.github.com/users/zeromq/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zeromq/subscriptions","organizations_url":"https://api.github.com/users/zeromq/orgs","repos_url":"https://api.github.com/users/zeromq/repos","events_url":"https://api.github.com/users/zeromq/events{/privacy}","received_events_url":"https://api.github.com/users/zeromq/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/zeromq/libzmq","description":"ZeroMQ core engine in C++","fork":false,"url":"https://api.github.com/repos/zeromq/libzmq","forks_url":"https://api.github.com/repos/zeromq/libzmq/forks","keys_url":"https://api.github.com/repos/zeromq/libzmq/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zeromq/libzmq/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zeromq/libzmq/teams","hooks_url":"https://api.github.com/repos/zeromq/libzmq/hooks","issue_events_url":"https://api.github.com/repos/zeromq/libzmq/issues/events{/number}","events_url":"https://api.github.com/repos/zeromq/libzmq/events","assignees_url":"https://api.github.com/repos/zeromq/libzmq/assignees{/user}","branches_url":"https://api.github.com/repos/zeromq/libzmq/branches{/branch}","tags_url":"https://api.github.com/repos/zeromq/libzmq/tags","blobs_url":"https://api.github.com/repos/zeromq/libzmq/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zeromq/libzmq/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zeromq/libzmq/git/refs{/sha}","trees_url":"https://api.github.com/repos/zeromq/libzmq/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zeromq/libzmq/statuses/{sha}","languages_url":"https://api.github.com/repos/zeromq/libzmq/languages","stargazers_url":"https://api.github.com/repos/zeromq/libzmq/stargazers","contributors_url":"https://api.github.com/repos/zeromq/libzmq/contributors","subscribers_url":"https://api.github.com/repos/zeromq/libzmq/subscribers","subscription_url":"https://api.github.com/repos/zeromq/libzmq/subscription","commits_url":"https://api.github.com/repos/zeromq/libzmq/commits{/sha}","git_commits_url":"https://api.github.com/repos/zeromq/libzmq/git/commits{/sha}","comments_url":"https://api.github.com/repos/zeromq/libzmq/comments{/number}","issue_comment_url":"https://api.github.com/repos/zeromq/libzmq/issues/comments{/number}","contents_url":"https://api.github.com/repos/zeromq/libzmq/contents/{+path}","compare_url":"https://api.github.com/repos/zeromq/libzmq/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zeromq/libzmq/merges","archive_url":"https://api.github.com/repos/zeromq/libzmq/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zeromq/libzmq/downloads","issues_url":"https://api.github.com/repos/zeromq/libzmq/issues{/number}","pulls_url":"https://api.github.com/repos/zeromq/libzmq/pulls{/number}","milestones_url":"https://api.github.com/repos/zeromq/libzmq/milestones{/number}","notifications_url":"https://api.github.com/repos/zeromq/libzmq/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zeromq/libzmq/labels{/name}","releases_url":"https://api.github.com/repos/zeromq/libzmq/releases{/id}","created_at":"2009-07-29T09:56:41Z","updated_at":"2015-07-23T09:09:54Z","pushed_at":"2015-07-23T11:07:02Z","git_url":"git://github.com/zeromq/libzmq.git","ssh_url":"git@github.com:zeromq/libzmq.git","clone_url":"https://github.com/zeromq/libzmq.git","svn_url":"https://github.com/zeromq/libzmq","homepage":"http://www.zeromq.org","size":21188,"stargazers_count":1935,"watchers_count":1935,"language":"C++","has_issues":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":578,"mirror_url":null,"open_issues_count":137,"forks":578,"open_issues":137,"watchers":1935,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/zeromq/libzmq/pulls/1487"},"html":{"href":"https://github.com/zeromq/libzmq/pull/1487"},"issue":{"href":"https://api.github.com/repos/zeromq/libzmq/issues/1487"},"comments":{"href":"https://api.github.com/repos/zeromq/libzmq/issues/1487/comments"},"review_comments":{"href":"https://api.github.com/repos/zeromq/libzmq/pulls/1487/comments"},"review_comment":{"href":"https://api.github.com/repos/zeromq/libzmq/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/zeromq/libzmq/pulls/1487/commits"},"statuses":{"href":"https://api.github.com/repos/zeromq/libzmq/statuses/fd51b0e508172ec8b99b0785c4d7ab13e9b5f220"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":3,"additions":11,"deletions":8,"changed_files":4}}