{"action":"opened","number":538,"pull_request":{"url":"https://api.github.com/repos/linode/manager/pulls/538","id":89139362,"html_url":"https://github.com/linode/manager/pull/538","diff_url":"https://github.com/linode/manager/pull/538.diff","patch_url":"https://github.com/linode/manager/pull/538.patch","issue_url":"https://api.github.com/repos/linode/manager/issues/538","number":538,"state":"open","locked":false,"title":"[WIP] Fix circular dependencies","user":{"login":"eatonphil","id":3925912,"avatar_url":"https://avatars.githubusercontent.com/u/3925912?v=3","gravatar_id":"","url":"https://api.github.com/users/eatonphil","html_url":"https://github.com/eatonphil","followers_url":"https://api.github.com/users/eatonphil/followers","following_url":"https://api.github.com/users/eatonphil/following{/other_user}","gists_url":"https://api.github.com/users/eatonphil/gists{/gist_id}","starred_url":"https://api.github.com/users/eatonphil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eatonphil/subscriptions","organizations_url":"https://api.github.com/users/eatonphil/orgs","repos_url":"https://api.github.com/users/eatonphil/repos","events_url":"https://api.github.com/users/eatonphil/events{/privacy}","received_events_url":"https://api.github.com/users/eatonphil/received_events","type":"User","site_admin":false},"body":"Circular dependencies left me with a nasty bug I discovered in #536 (why it's taken me so long to get tests passing in that PR). It took forever to figure out that this actually was a circular dependency issue. Modules were seemingly imported multiple times and certain exported values within the module were undefined. I refactored the api code a bit to not need circular dependencies any more.\r\n\r\nWhile I was trying to figure out what was going on, I also upgraded all packages in case there was an issue in babel or sth. I upgraded the linter during that time and started fixing linter issues - so that's why there are a few random changes. I'll be submitting another PR soon with all packages upgraded and the full linter changes (some 300+ changes or sth).\r\n\r\nThis PR is a WIP because I haven't yet tested out how the code works for real - I just finally got tests passing. However, I recommend this PR get merged as soon as possible because the bugs I saw in #536 could show up for anyone at any time because there are circular dependencies in our code _right now_.\r\n\r\nAlso, there's some weird stuff going on locally where this test keeps failing:\r\n\r\n```\r\n) renders the projected time of the first backup when its window is < $NOW\r\n     linodes/components/Linode renderBackupStatus\r\n12 10 2016 22:31:00.533:WARN [reporter]: SourceMap position not found for trace: undefined\r\n     expected 'In ~an hour' to equal 'In ~a day'\r\nAssertionError@webpack:///~/assertion-error/index.js:74:0 <- test/index.js:303:25\r\nassert@webpack:///~/chai/lib/chai/assertion.js:107:0 <- test/index.js:4635:32\r\nassertEqual@webpack:///~/chai/lib/chai/core/assertions.js:487:0 <- test/index.js:5152:19\r\nwebpack:///~/chai/lib/chai/utils/addMethod.js:41:0 <- test/index.js:4222:31\r\ntest/index.js:104379:9517\r\n```\r\n\r\nI do not understand - it even fails on master (with no changes) locally here. @na3d @abemassry @briansteffens Can anyone corroborate?","created_at":"2016-10-13T05:37:04Z","updated_at":"2016-10-13T05:37:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d77d160589708b31cfc1be0c71178ea3f64dfd8c","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/linode/manager/pulls/538/commits","review_comments_url":"https://api.github.com/repos/linode/manager/pulls/538/comments","review_comment_url":"https://api.github.com/repos/linode/manager/pulls/comments{/number}","comments_url":"https://api.github.com/repos/linode/manager/issues/538/comments","statuses_url":"https://api.github.com/repos/linode/manager/statuses/2804837a4171c6140ad169485fe1e0f22203f104","head":{"label":"eatonphil:fix-circular-dependencies","ref":"fix-circular-dependencies","sha":"2804837a4171c6140ad169485fe1e0f22203f104","user":{"login":"eatonphil","id":3925912,"avatar_url":"https://avatars.githubusercontent.com/u/3925912?v=3","gravatar_id":"","url":"https://api.github.com/users/eatonphil","html_url":"https://github.com/eatonphil","followers_url":"https://api.github.com/users/eatonphil/followers","following_url":"https://api.github.com/users/eatonphil/following{/other_user}","gists_url":"https://api.github.com/users/eatonphil/gists{/gist_id}","starred_url":"https://api.github.com/users/eatonphil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eatonphil/subscriptions","organizations_url":"https://api.github.com/users/eatonphil/orgs","repos_url":"https://api.github.com/users/eatonphil/repos","events_url":"https://api.github.com/users/eatonphil/events{/privacy}","received_events_url":"https://api.github.com/users/eatonphil/received_events","type":"User","site_admin":false},"repo":{"id":58955095,"name":"manager","full_name":"eatonphil/manager","owner":{"login":"eatonphil","id":3925912,"avatar_url":"https://avatars.githubusercontent.com/u/3925912?v=3","gravatar_id":"","url":"https://api.github.com/users/eatonphil","html_url":"https://github.com/eatonphil","followers_url":"https://api.github.com/users/eatonphil/followers","following_url":"https://api.github.com/users/eatonphil/following{/other_user}","gists_url":"https://api.github.com/users/eatonphil/gists{/gist_id}","starred_url":"https://api.github.com/users/eatonphil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eatonphil/subscriptions","organizations_url":"https://api.github.com/users/eatonphil/orgs","repos_url":"https://api.github.com/users/eatonphil/repos","events_url":"https://api.github.com/users/eatonphil/events{/privacy}","received_events_url":"https://api.github.com/users/eatonphil/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/eatonphil/manager","description":"The Linode manager","fork":true,"url":"https://api.github.com/repos/eatonphil/manager","forks_url":"https://api.github.com/repos/eatonphil/manager/forks","keys_url":"https://api.github.com/repos/eatonphil/manager/keys{/key_id}","collaborators_url":"https://api.github.com/repos/eatonphil/manager/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/eatonphil/manager/teams","hooks_url":"https://api.github.com/repos/eatonphil/manager/hooks","issue_events_url":"https://api.github.com/repos/eatonphil/manager/issues/events{/number}","events_url":"https://api.github.com/repos/eatonphil/manager/events","assignees_url":"https://api.github.com/repos/eatonphil/manager/assignees{/user}","branches_url":"https://api.github.com/repos/eatonphil/manager/branches{/branch}","tags_url":"https://api.github.com/repos/eatonphil/manager/tags","blobs_url":"https://api.github.com/repos/eatonphil/manager/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/eatonphil/manager/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/eatonphil/manager/git/refs{/sha}","trees_url":"https://api.github.com/repos/eatonphil/manager/git/trees{/sha}","statuses_url":"https://api.github.com/repos/eatonphil/manager/statuses/{sha}","languages_url":"https://api.github.com/repos/eatonphil/manager/languages","stargazers_url":"https://api.github.com/repos/eatonphil/manager/stargazers","contributors_url":"https://api.github.com/repos/eatonphil/manager/contributors","subscribers_url":"https://api.github.com/repos/eatonphil/manager/subscribers","subscription_url":"https://api.github.com/repos/eatonphil/manager/subscription","commits_url":"https://api.github.com/repos/eatonphil/manager/commits{/sha}","git_commits_url":"https://api.github.com/repos/eatonphil/manager/git/commits{/sha}","comments_url":"https://api.github.com/repos/eatonphil/manager/comments{/number}","issue_comment_url":"https://api.github.com/repos/eatonphil/manager/issues/comments{/number}","contents_url":"https://api.github.com/repos/eatonphil/manager/contents/{+path}","compare_url":"https://api.github.com/repos/eatonphil/manager/compare/{base}...{head}","merges_url":"https://api.github.com/repos/eatonphil/manager/merges","archive_url":"https://api.github.com/repos/eatonphil/manager/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/eatonphil/manager/downloads","issues_url":"https://api.github.com/repos/eatonphil/manager/issues{/number}","pulls_url":"https://api.github.com/repos/eatonphil/manager/pulls{/number}","milestones_url":"https://api.github.com/repos/eatonphil/manager/milestones{/number}","notifications_url":"https://api.github.com/repos/eatonphil/manager/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/eatonphil/manager/labels{/name}","releases_url":"https://api.github.com/repos/eatonphil/manager/releases{/id}","deployments_url":"https://api.github.com/repos/eatonphil/manager/deployments","created_at":"2016-05-16T18:03:25Z","updated_at":"2016-05-16T18:03:26Z","pushed_at":"2016-10-13T05:31:11Z","git_url":"git://github.com/eatonphil/manager.git","ssh_url":"git@github.com:eatonphil/manager.git","clone_url":"https://github.com/eatonphil/manager.git","svn_url":"https://github.com/eatonphil/manager","homepage":null,"size":1458,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":true,"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":"linode:master","ref":"master","sha":"d284e64d2dd82b355732ee35589bb24f6aa1f505","user":{"login":"linode","id":5184305,"avatar_url":"https://avatars.githubusercontent.com/u/5184305?v=3","gravatar_id":"","url":"https://api.github.com/users/linode","html_url":"https://github.com/linode","followers_url":"https://api.github.com/users/linode/followers","following_url":"https://api.github.com/users/linode/following{/other_user}","gists_url":"https://api.github.com/users/linode/gists{/gist_id}","starred_url":"https://api.github.com/users/linode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/linode/subscriptions","organizations_url":"https://api.github.com/users/linode/orgs","repos_url":"https://api.github.com/users/linode/repos","events_url":"https://api.github.com/users/linode/events{/privacy}","received_events_url":"https://api.github.com/users/linode/received_events","type":"Organization","site_admin":false},"repo":{"id":58934207,"name":"manager","full_name":"linode/manager","owner":{"login":"linode","id":5184305,"avatar_url":"https://avatars.githubusercontent.com/u/5184305?v=3","gravatar_id":"","url":"https://api.github.com/users/linode","html_url":"https://github.com/linode","followers_url":"https://api.github.com/users/linode/followers","following_url":"https://api.github.com/users/linode/following{/other_user}","gists_url":"https://api.github.com/users/linode/gists{/gist_id}","starred_url":"https://api.github.com/users/linode/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/linode/subscriptions","organizations_url":"https://api.github.com/users/linode/orgs","repos_url":"https://api.github.com/users/linode/repos","events_url":"https://api.github.com/users/linode/events{/privacy}","received_events_url":"https://api.github.com/users/linode/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/linode/manager","description":"The Linode manager","fork":false,"url":"https://api.github.com/repos/linode/manager","forks_url":"https://api.github.com/repos/linode/manager/forks","keys_url":"https://api.github.com/repos/linode/manager/keys{/key_id}","collaborators_url":"https://api.github.com/repos/linode/manager/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/linode/manager/teams","hooks_url":"https://api.github.com/repos/linode/manager/hooks","issue_events_url":"https://api.github.com/repos/linode/manager/issues/events{/number}","events_url":"https://api.github.com/repos/linode/manager/events","assignees_url":"https://api.github.com/repos/linode/manager/assignees{/user}","branches_url":"https://api.github.com/repos/linode/manager/branches{/branch}","tags_url":"https://api.github.com/repos/linode/manager/tags","blobs_url":"https://api.github.com/repos/linode/manager/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/linode/manager/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/linode/manager/git/refs{/sha}","trees_url":"https://api.github.com/repos/linode/manager/git/trees{/sha}","statuses_url":"https://api.github.com/repos/linode/manager/statuses/{sha}","languages_url":"https://api.github.com/repos/linode/manager/languages","stargazers_url":"https://api.github.com/repos/linode/manager/stargazers","contributors_url":"https://api.github.com/repos/linode/manager/contributors","subscribers_url":"https://api.github.com/repos/linode/manager/subscribers","subscription_url":"https://api.github.com/repos/linode/manager/subscription","commits_url":"https://api.github.com/repos/linode/manager/commits{/sha}","git_commits_url":"https://api.github.com/repos/linode/manager/git/commits{/sha}","comments_url":"https://api.github.com/repos/linode/manager/comments{/number}","issue_comment_url":"https://api.github.com/repos/linode/manager/issues/comments{/number}","contents_url":"https://api.github.com/repos/linode/manager/contents/{+path}","compare_url":"https://api.github.com/repos/linode/manager/compare/{base}...{head}","merges_url":"https://api.github.com/repos/linode/manager/merges","archive_url":"https://api.github.com/repos/linode/manager/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/linode/manager/downloads","issues_url":"https://api.github.com/repos/linode/manager/issues{/number}","pulls_url":"https://api.github.com/repos/linode/manager/pulls{/number}","milestones_url":"https://api.github.com/repos/linode/manager/milestones{/number}","notifications_url":"https://api.github.com/repos/linode/manager/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/linode/manager/labels{/name}","releases_url":"https://api.github.com/repos/linode/manager/releases{/id}","deployments_url":"https://api.github.com/repos/linode/manager/deployments","created_at":"2016-05-16T13:24:49Z","updated_at":"2016-10-09T02:19:19Z","pushed_at":"2016-10-13T05:37:04Z","git_url":"git://github.com/linode/manager.git","ssh_url":"git@github.com:linode/manager.git","clone_url":"https://github.com/linode/manager.git","svn_url":"https://github.com/linode/manager","homepage":null,"size":1503,"stargazers_count":94,"watchers_count":94,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":16,"mirror_url":null,"open_issues_count":78,"forks":16,"open_issues":78,"watchers":94,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/linode/manager/pulls/538"},"html":{"href":"https://github.com/linode/manager/pull/538"},"issue":{"href":"https://api.github.com/repos/linode/manager/issues/538"},"comments":{"href":"https://api.github.com/repos/linode/manager/issues/538/comments"},"review_comments":{"href":"https://api.github.com/repos/linode/manager/pulls/538/comments"},"review_comment":{"href":"https://api.github.com/repos/linode/manager/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/linode/manager/pulls/538/commits"},"statuses":{"href":"https://api.github.com/repos/linode/manager/statuses/2804837a4171c6140ad169485fe1e0f22203f104"}},"merged":false,"mergeable":true,"mergeable_state":"clean","merged_by":null,"comments":0,"review_comments":0,"commits":2,"additions":294,"deletions":268,"changed_files":23}}
{"actor":{"display_login":"eatonphil"}}