{"action":"closed","number":137,"pull_request":{"url":"https://api.github.com/repos/Parsely/streamparse/pulls/137","id":34074090,"html_url":"https://github.com/Parsely/streamparse/pull/137","diff_url":"https://github.com/Parsely/streamparse/pull/137.diff","patch_url":"https://github.com/Parsely/streamparse/pull/137.patch","issue_url":"https://api.github.com/repos/Parsely/streamparse/issues/137","number":137,"state":"closed","locked":false,"title":"Make BatchingBolt use tick tuples instead of threads.","user":{"login":"dan-blanchard","id":976345,"avatar_url":"https://avatars.githubusercontent.com/u/976345?v=3","gravatar_id":"","url":"https://api.github.com/users/dan-blanchard","html_url":"https://github.com/dan-blanchard","followers_url":"https://api.github.com/users/dan-blanchard/followers","following_url":"https://api.github.com/users/dan-blanchard/following{/other_user}","gists_url":"https://api.github.com/users/dan-blanchard/gists{/gist_id}","starred_url":"https://api.github.com/users/dan-blanchard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dan-blanchard/subscriptions","organizations_url":"https://api.github.com/users/dan-blanchard/orgs","repos_url":"https://api.github.com/users/dan-blanchard/repos","events_url":"https://api.github.com/users/dan-blanchard/events{/privacy}","received_events_url":"https://api.github.com/users/dan-blanchard/received_events","type":"User","site_admin":false},"body":"This still allows for non-time-based batching; it just doesn't require threads anymore.\r\n\r\nThis is not a backward-compatible change, as `secs_between_branches` was changed to `ticks_between_branches`, and people now need to run Storm with `topology.tick.tuple.freq.secs` set to 1 to have their code work the same as before.\r\n\r\nThis should also fix the sporadic unit test failures we were seeing on Travis CI, since the BatchingBolt tests used to be time-based.\r\n\r\nThis fixes #125.","created_at":"2015-04-24T18:32:04Z","updated_at":"2015-06-15T14:28:59Z","closed_at":"2015-06-15T14:28:59Z","merged_at":"2015-06-15T14:28:59Z","merge_commit_sha":"05861fef16706fb1737259ba9c83c4866e8b45ba","assignee":{"login":"kbourgoin","id":136574,"avatar_url":"https://avatars.githubusercontent.com/u/136574?v=3","gravatar_id":"","url":"https://api.github.com/users/kbourgoin","html_url":"https://github.com/kbourgoin","followers_url":"https://api.github.com/users/kbourgoin/followers","following_url":"https://api.github.com/users/kbourgoin/following{/other_user}","gists_url":"https://api.github.com/users/kbourgoin/gists{/gist_id}","starred_url":"https://api.github.com/users/kbourgoin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kbourgoin/subscriptions","organizations_url":"https://api.github.com/users/kbourgoin/orgs","repos_url":"https://api.github.com/users/kbourgoin/repos","events_url":"https://api.github.com/users/kbourgoin/events{/privacy}","received_events_url":"https://api.github.com/users/kbourgoin/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/Parsely/streamparse/milestones/3","html_url":"https://github.com/Parsely/streamparse/milestones/v1.2","labels_url":"https://api.github.com/repos/Parsely/streamparse/milestones/3/labels","id":695145,"number":3,"title":"v1.2","description":"...far off for now...","creator":{"login":"amontalenti","id":40263,"avatar_url":"https://avatars.githubusercontent.com/u/40263?v=3","gravatar_id":"","url":"https://api.github.com/users/amontalenti","html_url":"https://github.com/amontalenti","followers_url":"https://api.github.com/users/amontalenti/followers","following_url":"https://api.github.com/users/amontalenti/following{/other_user}","gists_url":"https://api.github.com/users/amontalenti/gists{/gist_id}","starred_url":"https://api.github.com/users/amontalenti/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/amontalenti/subscriptions","organizations_url":"https://api.github.com/users/amontalenti/orgs","repos_url":"https://api.github.com/users/amontalenti/repos","events_url":"https://api.github.com/users/amontalenti/events{/privacy}","received_events_url":"https://api.github.com/users/amontalenti/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":12,"state":"open","created_at":"2014-06-18T20:09:14Z","updated_at":"2015-06-15T14:28:59Z","due_on":"2015-04-24T04:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/Parsely/streamparse/pulls/137/commits","review_comments_url":"https://api.github.com/repos/Parsely/streamparse/pulls/137/comments","review_comment_url":"https://api.github.com/repos/Parsely/streamparse/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Parsely/streamparse/issues/137/comments","statuses_url":"https://api.github.com/repos/Parsely/streamparse/statuses/6d17412fe005264b316703e5180852f857395e1f","head":{"label":"Parsely:feature/simplify_batching_bolt","ref":"feature/simplify_batching_bolt","sha":"6d17412fe005264b316703e5180852f857395e1f","user":{"login":"Parsely","id":779641,"avatar_url":"https://avatars.githubusercontent.com/u/779641?v=3","gravatar_id":"","url":"https://api.github.com/users/Parsely","html_url":"https://github.com/Parsely","followers_url":"https://api.github.com/users/Parsely/followers","following_url":"https://api.github.com/users/Parsely/following{/other_user}","gists_url":"https://api.github.com/users/Parsely/gists{/gist_id}","starred_url":"https://api.github.com/users/Parsely/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Parsely/subscriptions","organizations_url":"https://api.github.com/users/Parsely/orgs","repos_url":"https://api.github.com/users/Parsely/repos","events_url":"https://api.github.com/users/Parsely/events{/privacy}","received_events_url":"https://api.github.com/users/Parsely/received_events","type":"Organization","site_admin":false},"repo":{"id":19387849,"name":"streamparse","full_name":"Parsely/streamparse","owner":{"login":"Parsely","id":779641,"avatar_url":"https://avatars.githubusercontent.com/u/779641?v=3","gravatar_id":"","url":"https://api.github.com/users/Parsely","html_url":"https://github.com/Parsely","followers_url":"https://api.github.com/users/Parsely/followers","following_url":"https://api.github.com/users/Parsely/following{/other_user}","gists_url":"https://api.github.com/users/Parsely/gists{/gist_id}","starred_url":"https://api.github.com/users/Parsely/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Parsely/subscriptions","organizations_url":"https://api.github.com/users/Parsely/orgs","repos_url":"https://api.github.com/users/Parsely/repos","events_url":"https://api.github.com/users/Parsely/events{/privacy}","received_events_url":"https://api.github.com/users/Parsely/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Parsely/streamparse","description":"streamparse lets you run Python code against real-time streams of data with Apache Storm.","fork":false,"url":"https://api.github.com/repos/Parsely/streamparse","forks_url":"https://api.github.com/repos/Parsely/streamparse/forks","keys_url":"https://api.github.com/repos/Parsely/streamparse/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Parsely/streamparse/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Parsely/streamparse/teams","hooks_url":"https://api.github.com/repos/Parsely/streamparse/hooks","issue_events_url":"https://api.github.com/repos/Parsely/streamparse/issues/events{/number}","events_url":"https://api.github.com/repos/Parsely/streamparse/events","assignees_url":"https://api.github.com/repos/Parsely/streamparse/assignees{/user}","branches_url":"https://api.github.com/repos/Parsely/streamparse/branches{/branch}","tags_url":"https://api.github.com/repos/Parsely/streamparse/tags","blobs_url":"https://api.github.com/repos/Parsely/streamparse/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Parsely/streamparse/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Parsely/streamparse/git/refs{/sha}","trees_url":"https://api.github.com/repos/Parsely/streamparse/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Parsely/streamparse/statuses/{sha}","languages_url":"https://api.github.com/repos/Parsely/streamparse/languages","stargazers_url":"https://api.github.com/repos/Parsely/streamparse/stargazers","contributors_url":"https://api.github.com/repos/Parsely/streamparse/contributors","subscribers_url":"https://api.github.com/repos/Parsely/streamparse/subscribers","subscription_url":"https://api.github.com/repos/Parsely/streamparse/subscription","commits_url":"https://api.github.com/repos/Parsely/streamparse/commits{/sha}","git_commits_url":"https://api.github.com/repos/Parsely/streamparse/git/commits{/sha}","comments_url":"https://api.github.com/repos/Parsely/streamparse/comments{/number}","issue_comment_url":"https://api.github.com/repos/Parsely/streamparse/issues/comments{/number}","contents_url":"https://api.github.com/repos/Parsely/streamparse/contents/{+path}","compare_url":"https://api.github.com/repos/Parsely/streamparse/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Parsely/streamparse/merges","archive_url":"https://api.github.com/repos/Parsely/streamparse/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Parsely/streamparse/downloads","issues_url":"https://api.github.com/repos/Parsely/streamparse/issues{/number}","pulls_url":"https://api.github.com/repos/Parsely/streamparse/pulls{/number}","milestones_url":"https://api.github.com/repos/Parsely/streamparse/milestones{/number}","notifications_url":"https://api.github.com/repos/Parsely/streamparse/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Parsely/streamparse/labels{/name}","releases_url":"https://api.github.com/repos/Parsely/streamparse/releases{/id}","created_at":"2014-05-02T20:33:50Z","updated_at":"2015-06-15T13:32:54Z","pushed_at":"2015-06-15T14:28:59Z","git_url":"git://github.com/Parsely/streamparse.git","ssh_url":"git@github.com:Parsely/streamparse.git","clone_url":"https://github.com/Parsely/streamparse.git","svn_url":"https://github.com/Parsely/streamparse","homepage":"","size":5991,"stargazers_count":759,"watchers_count":759,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":86,"mirror_url":null,"open_issues_count":34,"forks":86,"open_issues":34,"watchers":759,"default_branch":"master"}},"base":{"label":"Parsely:master","ref":"master","sha":"2434e78deabd10b9e561d9cadec3e82226f77a67","user":{"login":"Parsely","id":779641,"avatar_url":"https://avatars.githubusercontent.com/u/779641?v=3","gravatar_id":"","url":"https://api.github.com/users/Parsely","html_url":"https://github.com/Parsely","followers_url":"https://api.github.com/users/Parsely/followers","following_url":"https://api.github.com/users/Parsely/following{/other_user}","gists_url":"https://api.github.com/users/Parsely/gists{/gist_id}","starred_url":"https://api.github.com/users/Parsely/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Parsely/subscriptions","organizations_url":"https://api.github.com/users/Parsely/orgs","repos_url":"https://api.github.com/users/Parsely/repos","events_url":"https://api.github.com/users/Parsely/events{/privacy}","received_events_url":"https://api.github.com/users/Parsely/received_events","type":"Organization","site_admin":false},"repo":{"id":19387849,"name":"streamparse","full_name":"Parsely/streamparse","owner":{"login":"Parsely","id":779641,"avatar_url":"https://avatars.githubusercontent.com/u/779641?v=3","gravatar_id":"","url":"https://api.github.com/users/Parsely","html_url":"https://github.com/Parsely","followers_url":"https://api.github.com/users/Parsely/followers","following_url":"https://api.github.com/users/Parsely/following{/other_user}","gists_url":"https://api.github.com/users/Parsely/gists{/gist_id}","starred_url":"https://api.github.com/users/Parsely/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Parsely/subscriptions","organizations_url":"https://api.github.com/users/Parsely/orgs","repos_url":"https://api.github.com/users/Parsely/repos","events_url":"https://api.github.com/users/Parsely/events{/privacy}","received_events_url":"https://api.github.com/users/Parsely/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Parsely/streamparse","description":"streamparse lets you run Python code against real-time streams of data with Apache Storm.","fork":false,"url":"https://api.github.com/repos/Parsely/streamparse","forks_url":"https://api.github.com/repos/Parsely/streamparse/forks","keys_url":"https://api.github.com/repos/Parsely/streamparse/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Parsely/streamparse/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Parsely/streamparse/teams","hooks_url":"https://api.github.com/repos/Parsely/streamparse/hooks","issue_events_url":"https://api.github.com/repos/Parsely/streamparse/issues/events{/number}","events_url":"https://api.github.com/repos/Parsely/streamparse/events","assignees_url":"https://api.github.com/repos/Parsely/streamparse/assignees{/user}","branches_url":"https://api.github.com/repos/Parsely/streamparse/branches{/branch}","tags_url":"https://api.github.com/repos/Parsely/streamparse/tags","blobs_url":"https://api.github.com/repos/Parsely/streamparse/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Parsely/streamparse/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Parsely/streamparse/git/refs{/sha}","trees_url":"https://api.github.com/repos/Parsely/streamparse/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Parsely/streamparse/statuses/{sha}","languages_url":"https://api.github.com/repos/Parsely/streamparse/languages","stargazers_url":"https://api.github.com/repos/Parsely/streamparse/stargazers","contributors_url":"https://api.github.com/repos/Parsely/streamparse/contributors","subscribers_url":"https://api.github.com/repos/Parsely/streamparse/subscribers","subscription_url":"https://api.github.com/repos/Parsely/streamparse/subscription","commits_url":"https://api.github.com/repos/Parsely/streamparse/commits{/sha}","git_commits_url":"https://api.github.com/repos/Parsely/streamparse/git/commits{/sha}","comments_url":"https://api.github.com/repos/Parsely/streamparse/comments{/number}","issue_comment_url":"https://api.github.com/repos/Parsely/streamparse/issues/comments{/number}","contents_url":"https://api.github.com/repos/Parsely/streamparse/contents/{+path}","compare_url":"https://api.github.com/repos/Parsely/streamparse/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Parsely/streamparse/merges","archive_url":"https://api.github.com/repos/Parsely/streamparse/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Parsely/streamparse/downloads","issues_url":"https://api.github.com/repos/Parsely/streamparse/issues{/number}","pulls_url":"https://api.github.com/repos/Parsely/streamparse/pulls{/number}","milestones_url":"https://api.github.com/repos/Parsely/streamparse/milestones{/number}","notifications_url":"https://api.github.com/repos/Parsely/streamparse/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Parsely/streamparse/labels{/name}","releases_url":"https://api.github.com/repos/Parsely/streamparse/releases{/id}","created_at":"2014-05-02T20:33:50Z","updated_at":"2015-06-15T13:32:54Z","pushed_at":"2015-06-15T14:28:59Z","git_url":"git://github.com/Parsely/streamparse.git","ssh_url":"git@github.com:Parsely/streamparse.git","clone_url":"https://github.com/Parsely/streamparse.git","svn_url":"https://github.com/Parsely/streamparse","homepage":"","size":5991,"stargazers_count":759,"watchers_count":759,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":86,"mirror_url":null,"open_issues_count":34,"forks":86,"open_issues":34,"watchers":759,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Parsely/streamparse/pulls/137"},"html":{"href":"https://github.com/Parsely/streamparse/pull/137"},"issue":{"href":"https://api.github.com/repos/Parsely/streamparse/issues/137"},"comments":{"href":"https://api.github.com/repos/Parsely/streamparse/issues/137/comments"},"review_comments":{"href":"https://api.github.com/repos/Parsely/streamparse/pulls/137/comments"},"review_comment":{"href":"https://api.github.com/repos/Parsely/streamparse/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Parsely/streamparse/pulls/137/commits"},"statuses":{"href":"https://api.github.com/repos/Parsely/streamparse/statuses/6d17412fe005264b316703e5180852f857395e1f"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"dan-blanchard","id":976345,"avatar_url":"https://avatars.githubusercontent.com/u/976345?v=3","gravatar_id":"","url":"https://api.github.com/users/dan-blanchard","html_url":"https://github.com/dan-blanchard","followers_url":"https://api.github.com/users/dan-blanchard/followers","following_url":"https://api.github.com/users/dan-blanchard/following{/other_user}","gists_url":"https://api.github.com/users/dan-blanchard/gists{/gist_id}","starred_url":"https://api.github.com/users/dan-blanchard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dan-blanchard/subscriptions","organizations_url":"https://api.github.com/users/dan-blanchard/orgs","repos_url":"https://api.github.com/users/dan-blanchard/repos","events_url":"https://api.github.com/users/dan-blanchard/events{/privacy}","received_events_url":"https://api.github.com/users/dan-blanchard/received_events","type":"User","site_admin":false},"comments":27,"review_comments":8,"commits":16,"additions":169,"deletions":207,"changed_files":5}}