{"action":"created","comment":{"url":"https://api.github.com/repos/dcos/dcos-ui/pulls/comments/61915934","id":61915934,"diff_hunk":"@@ -0,0 +1,107 @@\n+import ExtractTextPlugin from 'extract-text-webpack-plugin';\n+import HtmlWebpackPlugin from 'html-webpack-plugin';\n+import StringReplacePlugin from 'string-replace-webpack-plugin';\n+import WebpackNotifierPlugin from 'webpack-notifier';\n+\n+import packageInfo from '../package';\n+import webpackConfig from './webpack.config.babel';\n+\n+let PORT = process.env.PORT || 8080;\n+let proxy;\n+\n+try {\n+  // If this fails - you should create a proxy.dev.js by copying proxy.template.js\n+  // and customizing the proxy as needed.\n+  proxy = require('./proxy.dev.js');\n+} catch (err) {\n+  proxy = require('./proxy.template.js');\n+}\n+\n+let REPLACEMENT_VARS = {\n+  VERSION: packageInfo.version,\n+  ENV: process.env.NODE_ENV,\n+  ANALYTICS_KEY: packageInfo.analytics.development\n+};\n+\n+module.exports = Object.assign({}, webpackConfig, {\n+  entry: [\n+    'webpack-dev-server/client?http://localhost:' + PORT,\n+    'webpack/hot/only-dev-server',\n+    './src/js/index.js'\n+  ],\n+  devtool: '#eval-source-map',\n+  output: {\n+    path: './build',\n+    filename: 'index.js'","path":"webpack/webpack.dev.babel.js","position":35,"original_position":35,"commit_id":"9c2923dcb8106dadcf8b1fe43526f0c771069462","original_commit_id":"9c2923dcb8106dadcf8b1fe43526f0c771069462","user":{"login":"MatApple","id":465022,"avatar_url":"https://avatars.githubusercontent.com/u/465022?v=3","gravatar_id":"","url":"https://api.github.com/users/MatApple","html_url":"https://github.com/MatApple","followers_url":"https://api.github.com/users/MatApple/followers","following_url":"https://api.github.com/users/MatApple/following{/other_user}","gists_url":"https://api.github.com/users/MatApple/gists{/gist_id}","starred_url":"https://api.github.com/users/MatApple/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MatApple/subscriptions","organizations_url":"https://api.github.com/users/MatApple/orgs","repos_url":"https://api.github.com/users/MatApple/repos","events_url":"https://api.github.com/users/MatApple/events{/privacy}","received_events_url":"https://api.github.com/users/MatApple/received_events","type":"User","site_admin":false},"body":"I've removed `build.config.js`.","created_at":"2016-05-03T16:56:01Z","updated_at":"2016-05-03T16:56:01Z","html_url":"https://github.com/dcos/dcos-ui/pull/55#discussion_r61915934","pull_request_url":"https://api.github.com/repos/dcos/dcos-ui/pulls/55","_links":{"self":{"href":"https://api.github.com/repos/dcos/dcos-ui/pulls/comments/61915934"},"html":{"href":"https://github.com/dcos/dcos-ui/pull/55#discussion_r61915934"},"pull_request":{"href":"https://api.github.com/repos/dcos/dcos-ui/pulls/55"}}},"pull_request":{"url":"https://api.github.com/repos/dcos/dcos-ui/pulls/55","id":67774169,"html_url":"https://github.com/dcos/dcos-ui/pull/55","diff_url":"https://github.com/dcos/dcos-ui/pull/55.diff","patch_url":"https://github.com/dcos/dcos-ui/pull/55.patch","issue_url":"https://api.github.com/repos/dcos/dcos-ui/issues/55","number":55,"state":"open","locked":false,"title":"[WIP] Upgrading build process","user":{"login":"MatApple","id":465022,"avatar_url":"https://avatars.githubusercontent.com/u/465022?v=3","gravatar_id":"","url":"https://api.github.com/users/MatApple","html_url":"https://github.com/MatApple","followers_url":"https://api.github.com/users/MatApple/followers","following_url":"https://api.github.com/users/MatApple/following{/other_user}","gists_url":"https://api.github.com/users/MatApple/gists{/gist_id}","starred_url":"https://api.github.com/users/MatApple/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MatApple/subscriptions","organizations_url":"https://api.github.com/users/MatApple/orgs","repos_url":"https://api.github.com/users/MatApple/repos","events_url":"https://api.github.com/users/MatApple/events{/privacy}","received_events_url":"https://api.github.com/users/MatApple/received_events","type":"User","site_admin":false},"body":"## Feature branch\r\n- No more virtual machine proxy for dcos ui. Proxy is part of dev server.\r\n- Now have hot loading on dev server.\r\n- No hard coded references to external plugins. External plugins location is now\r\ncompletely configurable with DCOS_UI_PLUGINS env variable. Now have full flexibility of where plugins are in relation to dcos-ui and the plugin directory name.\r\n- No more copying over plugins into dcos-ui repo via gulp. Webpack will load and watch plugins specified in the DCOS_UI_PLUGINS directory.\r\n- Use webpack's watch for all files. No more gulp watch.\r\n- Full cache busting on all files. Every file (images, css imports e.g. icons, css, Js) has webpack's build hash prepended to it's file name. [hash]-name.[ext].\r\n- Reduced built bundle to only 1.54MB (1.7MB with plugins) of JavaScript and 400kB of css. Reduced dev bundle size from 11MB of JavaScript to 7MB. Force React to build with NODE_ENV=production to reduce footprint of React. Pruned fixtures from production build.\r\n- Dev build process no longer includes long running tasks like image optimization.\r\n- Everything is now linted including unit and integration tests.\r\n- Linting runs on plugins and dcos-ui on every file change and results show in terminal.\r\n- Lint errors now force CI testing to fail early.\r\n- Styles (css, less, sass) and images (png, jpeg, svg, etc) can now be bundled within plugins easily and imported as regular modules `import avatar from '../img/avatar';`\r\n\r\n### PRs open (select once merged):\r\n- [x] https://github.com/dcos/dcos-ui/pull/51\r\n- [x] ~~https://github.com/dcos/dcos-ui/pull/52~~ [closed]\r\n- [x] https://github.com/dcos/dcos-ui/pull/87\r\n- [x] https://github.com/dcos/dcos-ui/pull/53\r\n- [x] https://github.com/dcos/dcos-ui/pull/54\r\n\r\n### NOTE:\r\nNone of the tests will pass on the above PRs till they all merge into this branch. I split them apart for easier code review. Don't bother testing locally till all code is in this PR.\r\n\r\n### Outstanding:\r\n- [x] Include Dygraphs in new build\r\n- [x] Deal with Config.dev.js on production builds.\r\n- [x] Remove all Gulpfile tasks except `connect:server` so we can still validate builds. [edit: Also use it for ensuring Config.dev.js is present on production builds.]\r\n- [x] Remove gulp related dependencies from package.json\r\n- [x] Shrinkwrap\r\n- [ ] Update README","created_at":"2016-04-25T19:26:37Z","updated_at":"2016-05-03T16:56:01Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2a05d6d03c4708c90a0a166b725b5540e34a4cde","assignee":{"login":"rcorral","id":843202,"avatar_url":"https://avatars.githubusercontent.com/u/843202?v=3","gravatar_id":"","url":"https://api.github.com/users/rcorral","html_url":"https://github.com/rcorral","followers_url":"https://api.github.com/users/rcorral/followers","following_url":"https://api.github.com/users/rcorral/following{/other_user}","gists_url":"https://api.github.com/users/rcorral/gists{/gist_id}","starred_url":"https://api.github.com/users/rcorral/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rcorral/subscriptions","organizations_url":"https://api.github.com/users/rcorral/orgs","repos_url":"https://api.github.com/users/rcorral/repos","events_url":"https://api.github.com/users/rcorral/events{/privacy}","received_events_url":"https://api.github.com/users/rcorral/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/dcos/dcos-ui/pulls/55/commits","review_comments_url":"https://api.github.com/repos/dcos/dcos-ui/pulls/55/comments","review_comment_url":"https://api.github.com/repos/dcos/dcos-ui/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dcos/dcos-ui/issues/55/comments","statuses_url":"https://api.github.com/repos/dcos/dcos-ui/statuses/9c2923dcb8106dadcf8b1fe43526f0c771069462","head":{"label":"dcos:feature/upgrade-build-process","ref":"feature/upgrade-build-process","sha":"9c2923dcb8106dadcf8b1fe43526f0c771069462","user":{"login":"dcos","id":17648048,"avatar_url":"https://avatars.githubusercontent.com/u/17648048?v=3","gravatar_id":"","url":"https://api.github.com/users/dcos","html_url":"https://github.com/dcos","followers_url":"https://api.github.com/users/dcos/followers","following_url":"https://api.github.com/users/dcos/following{/other_user}","gists_url":"https://api.github.com/users/dcos/gists{/gist_id}","starred_url":"https://api.github.com/users/dcos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcos/subscriptions","organizations_url":"https://api.github.com/users/dcos/orgs","repos_url":"https://api.github.com/users/dcos/repos","events_url":"https://api.github.com/users/dcos/events{/privacy}","received_events_url":"https://api.github.com/users/dcos/received_events","type":"Organization","site_admin":false},"repo":{"id":56547504,"name":"dcos-ui","full_name":"dcos/dcos-ui","owner":{"login":"dcos","id":17648048,"avatar_url":"https://avatars.githubusercontent.com/u/17648048?v=3","gravatar_id":"","url":"https://api.github.com/users/dcos","html_url":"https://github.com/dcos","followers_url":"https://api.github.com/users/dcos/followers","following_url":"https://api.github.com/users/dcos/following{/other_user}","gists_url":"https://api.github.com/users/dcos/gists{/gist_id}","starred_url":"https://api.github.com/users/dcos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcos/subscriptions","organizations_url":"https://api.github.com/users/dcos/orgs","repos_url":"https://api.github.com/users/dcos/repos","events_url":"https://api.github.com/users/dcos/events{/privacy}","received_events_url":"https://api.github.com/users/dcos/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dcos/dcos-ui","description":"The UI for The Datacenter Operating System","fork":false,"url":"https://api.github.com/repos/dcos/dcos-ui","forks_url":"https://api.github.com/repos/dcos/dcos-ui/forks","keys_url":"https://api.github.com/repos/dcos/dcos-ui/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dcos/dcos-ui/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dcos/dcos-ui/teams","hooks_url":"https://api.github.com/repos/dcos/dcos-ui/hooks","issue_events_url":"https://api.github.com/repos/dcos/dcos-ui/issues/events{/number}","events_url":"https://api.github.com/repos/dcos/dcos-ui/events","assignees_url":"https://api.github.com/repos/dcos/dcos-ui/assignees{/user}","branches_url":"https://api.github.com/repos/dcos/dcos-ui/branches{/branch}","tags_url":"https://api.github.com/repos/dcos/dcos-ui/tags","blobs_url":"https://api.github.com/repos/dcos/dcos-ui/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dcos/dcos-ui/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dcos/dcos-ui/git/refs{/sha}","trees_url":"https://api.github.com/repos/dcos/dcos-ui/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dcos/dcos-ui/statuses/{sha}","languages_url":"https://api.github.com/repos/dcos/dcos-ui/languages","stargazers_url":"https://api.github.com/repos/dcos/dcos-ui/stargazers","contributors_url":"https://api.github.com/repos/dcos/dcos-ui/contributors","subscribers_url":"https://api.github.com/repos/dcos/dcos-ui/subscribers","subscription_url":"https://api.github.com/repos/dcos/dcos-ui/subscription","commits_url":"https://api.github.com/repos/dcos/dcos-ui/commits{/sha}","git_commits_url":"https://api.github.com/repos/dcos/dcos-ui/git/commits{/sha}","comments_url":"https://api.github.com/repos/dcos/dcos-ui/comments{/number}","issue_comment_url":"https://api.github.com/repos/dcos/dcos-ui/issues/comments{/number}","contents_url":"https://api.github.com/repos/dcos/dcos-ui/contents/{+path}","compare_url":"https://api.github.com/repos/dcos/dcos-ui/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dcos/dcos-ui/merges","archive_url":"https://api.github.com/repos/dcos/dcos-ui/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dcos/dcos-ui/downloads","issues_url":"https://api.github.com/repos/dcos/dcos-ui/issues{/number}","pulls_url":"https://api.github.com/repos/dcos/dcos-ui/pulls{/number}","milestones_url":"https://api.github.com/repos/dcos/dcos-ui/milestones{/number}","notifications_url":"https://api.github.com/repos/dcos/dcos-ui/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dcos/dcos-ui/labels{/name}","releases_url":"https://api.github.com/repos/dcos/dcos-ui/releases{/id}","deployments_url":"https://api.github.com/repos/dcos/dcos-ui/deployments","created_at":"2016-04-18T22:48:06Z","updated_at":"2016-05-02T15:30:08Z","pushed_at":"2016-05-03T16:44:43Z","git_url":"git://github.com/dcos/dcos-ui.git","ssh_url":"git@github.com:dcos/dcos-ui.git","clone_url":"https://github.com/dcos/dcos-ui.git","svn_url":"https://github.com/dcos/dcos-ui","homepage":null,"size":12137,"stargazers_count":63,"watchers_count":63,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":15,"forks":7,"open_issues":15,"watchers":63,"default_branch":"master"}},"base":{"label":"dcos:master","ref":"master","sha":"e6984847f92ebc75d516c40d0d582771919e08ca","user":{"login":"dcos","id":17648048,"avatar_url":"https://avatars.githubusercontent.com/u/17648048?v=3","gravatar_id":"","url":"https://api.github.com/users/dcos","html_url":"https://github.com/dcos","followers_url":"https://api.github.com/users/dcos/followers","following_url":"https://api.github.com/users/dcos/following{/other_user}","gists_url":"https://api.github.com/users/dcos/gists{/gist_id}","starred_url":"https://api.github.com/users/dcos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcos/subscriptions","organizations_url":"https://api.github.com/users/dcos/orgs","repos_url":"https://api.github.com/users/dcos/repos","events_url":"https://api.github.com/users/dcos/events{/privacy}","received_events_url":"https://api.github.com/users/dcos/received_events","type":"Organization","site_admin":false},"repo":{"id":56547504,"name":"dcos-ui","full_name":"dcos/dcos-ui","owner":{"login":"dcos","id":17648048,"avatar_url":"https://avatars.githubusercontent.com/u/17648048?v=3","gravatar_id":"","url":"https://api.github.com/users/dcos","html_url":"https://github.com/dcos","followers_url":"https://api.github.com/users/dcos/followers","following_url":"https://api.github.com/users/dcos/following{/other_user}","gists_url":"https://api.github.com/users/dcos/gists{/gist_id}","starred_url":"https://api.github.com/users/dcos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcos/subscriptions","organizations_url":"https://api.github.com/users/dcos/orgs","repos_url":"https://api.github.com/users/dcos/repos","events_url":"https://api.github.com/users/dcos/events{/privacy}","received_events_url":"https://api.github.com/users/dcos/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dcos/dcos-ui","description":"The UI for The Datacenter Operating System","fork":false,"url":"https://api.github.com/repos/dcos/dcos-ui","forks_url":"https://api.github.com/repos/dcos/dcos-ui/forks","keys_url":"https://api.github.com/repos/dcos/dcos-ui/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dcos/dcos-ui/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dcos/dcos-ui/teams","hooks_url":"https://api.github.com/repos/dcos/dcos-ui/hooks","issue_events_url":"https://api.github.com/repos/dcos/dcos-ui/issues/events{/number}","events_url":"https://api.github.com/repos/dcos/dcos-ui/events","assignees_url":"https://api.github.com/repos/dcos/dcos-ui/assignees{/user}","branches_url":"https://api.github.com/repos/dcos/dcos-ui/branches{/branch}","tags_url":"https://api.github.com/repos/dcos/dcos-ui/tags","blobs_url":"https://api.github.com/repos/dcos/dcos-ui/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dcos/dcos-ui/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dcos/dcos-ui/git/refs{/sha}","trees_url":"https://api.github.com/repos/dcos/dcos-ui/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dcos/dcos-ui/statuses/{sha}","languages_url":"https://api.github.com/repos/dcos/dcos-ui/languages","stargazers_url":"https://api.github.com/repos/dcos/dcos-ui/stargazers","contributors_url":"https://api.github.com/repos/dcos/dcos-ui/contributors","subscribers_url":"https://api.github.com/repos/dcos/dcos-ui/subscribers","subscription_url":"https://api.github.com/repos/dcos/dcos-ui/subscription","commits_url":"https://api.github.com/repos/dcos/dcos-ui/commits{/sha}","git_commits_url":"https://api.github.com/repos/dcos/dcos-ui/git/commits{/sha}","comments_url":"https://api.github.com/repos/dcos/dcos-ui/comments{/number}","issue_comment_url":"https://api.github.com/repos/dcos/dcos-ui/issues/comments{/number}","contents_url":"https://api.github.com/repos/dcos/dcos-ui/contents/{+path}","compare_url":"https://api.github.com/repos/dcos/dcos-ui/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dcos/dcos-ui/merges","archive_url":"https://api.github.com/repos/dcos/dcos-ui/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dcos/dcos-ui/downloads","issues_url":"https://api.github.com/repos/dcos/dcos-ui/issues{/number}","pulls_url":"https://api.github.com/repos/dcos/dcos-ui/pulls{/number}","milestones_url":"https://api.github.com/repos/dcos/dcos-ui/milestones{/number}","notifications_url":"https://api.github.com/repos/dcos/dcos-ui/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dcos/dcos-ui/labels{/name}","releases_url":"https://api.github.com/repos/dcos/dcos-ui/releases{/id}","deployments_url":"https://api.github.com/repos/dcos/dcos-ui/deployments","created_at":"2016-04-18T22:48:06Z","updated_at":"2016-05-02T15:30:08Z","pushed_at":"2016-05-03T16:44:43Z","git_url":"git://github.com/dcos/dcos-ui.git","ssh_url":"git@github.com:dcos/dcos-ui.git","clone_url":"https://github.com/dcos/dcos-ui.git","svn_url":"https://github.com/dcos/dcos-ui","homepage":null,"size":12137,"stargazers_count":63,"watchers_count":63,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":15,"forks":7,"open_issues":15,"watchers":63,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dcos/dcos-ui/pulls/55"},"html":{"href":"https://github.com/dcos/dcos-ui/pull/55"},"issue":{"href":"https://api.github.com/repos/dcos/dcos-ui/issues/55"},"comments":{"href":"https://api.github.com/repos/dcos/dcos-ui/issues/55/comments"},"review_comments":{"href":"https://api.github.com/repos/dcos/dcos-ui/pulls/55/comments"},"review_comment":{"href":"https://api.github.com/repos/dcos/dcos-ui/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dcos/dcos-ui/pulls/55/commits"},"statuses":{"href":"https://api.github.com/repos/dcos/dcos-ui/statuses/9c2923dcb8106dadcf8b1fe43526f0c771069462"}}}}