{"action":"created","issue":{"url":"https://api.github.com/repos/webpack/webpack/issues/950","labels_url":"https://api.github.com/repos/webpack/webpack/issues/950/labels{/name}","comments_url":"https://api.github.com/repos/webpack/webpack/issues/950/comments","events_url":"https://api.github.com/repos/webpack/webpack/issues/950/events","html_url":"https://github.com/webpack/webpack/issues/950","id":66677679,"number":950,"title":"Non-deterministic output breaking long-term caching","user":{"login":"RR2DO2","id":1216739,"avatar_url":"https://avatars.githubusercontent.com/u/1216739?v=3","gravatar_id":"","url":"https://api.github.com/users/RR2DO2","html_url":"https://github.com/RR2DO2","followers_url":"https://api.github.com/users/RR2DO2/followers","following_url":"https://api.github.com/users/RR2DO2/following{/other_user}","gists_url":"https://api.github.com/users/RR2DO2/gists{/gist_id}","starred_url":"https://api.github.com/users/RR2DO2/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RR2DO2/subscriptions","organizations_url":"https://api.github.com/users/RR2DO2/orgs","repos_url":"https://api.github.com/users/RR2DO2/repos","events_url":"https://api.github.com/users/RR2DO2/events{/privacy}","received_events_url":"https://api.github.com/users/RR2DO2/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-04-06T18:49:30Z","updated_at":"2015-05-02T00:02:35Z","closed_at":null,"body":"While using webpack for a project using react-bootstrap, I noticed my distribution hashes kept changing. I've narrowed this down to a simple test case, in my situation both react-bootstrap and react-bootstrap-daterangepicker are affected. This is mainly an issue for long-term caching as the hashes for files keep changing.\r\n\r\nWhat happens is that whenever I execute webpack, the output will be different. Looking at diffs between runs it seems that the indexes passed into requires keep changing. Probably some async operations returning  in variable order somewhere? Example diff chunk:\r\n\r\n```diff\r\n141c141\r\n< \t    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(5), __webpack_require__(4), exports], __WEBPACK_AMD_DEFINE_RESULT__ = function(momentjs, $, exports) {\r\n---\r\n> \t    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(6), __webpack_require__(4), exports], __WEBPACK_AMD_DEFINE_RESULT__ = function(momentjs, $, exports) {\r\n```\r\n\r\nRepro case exists out of a package.json to install the requirements and a webpack config:\r\n\r\npackage.json:\r\n```json\r\n{\r\n    \"name\": \"webpack-repro\",\r\n    \"version\": \"0.0.0\",\r\n    \"dependencies\": {\r\n        \"react-bootstrap\": \"0.20.1\",\r\n        \"react-bootstrap-daterangepicker\": \"0.2.4\"\r\n    },\r\n    \"devDependencies\": {\r\n        \"webpack\": \"1.7.3\"\r\n    },\r\n    \"private\": true\r\n}\r\n```\r\n\r\nwebpack.config.js:\r\n```javascript\r\n'use strict';\r\n\r\nvar path = require(\"path\");\r\nvar webpack = require(\"webpack\");\r\n\r\nmodule.exports = {\r\n  entry: {\r\n    vendor: [\r\n      \"react-bootstrap\",\r\n      // \"react-bootstrap-daterangepicker\",\r\n    ],\r\n  },\r\n  output: {\r\n    path: path.join(__dirname, \"js\"),\r\n    filename: \"[name].js\",\r\n  }\r\n};\r\n```"},"comment":{"url":"https://api.github.com/repos/webpack/webpack/issues/comments/98264242","html_url":"https://github.com/webpack/webpack/issues/950#issuecomment-98264242","issue_url":"https://api.github.com/repos/webpack/webpack/issues/950","id":98264242,"user":{"login":"alexeits","id":444101,"avatar_url":"https://avatars.githubusercontent.com/u/444101?v=3","gravatar_id":"","url":"https://api.github.com/users/alexeits","html_url":"https://github.com/alexeits","followers_url":"https://api.github.com/users/alexeits/followers","following_url":"https://api.github.com/users/alexeits/following{/other_user}","gists_url":"https://api.github.com/users/alexeits/gists{/gist_id}","starred_url":"https://api.github.com/users/alexeits/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexeits/subscriptions","organizations_url":"https://api.github.com/users/alexeits/orgs","repos_url":"https://api.github.com/users/alexeits/repos","events_url":"https://api.github.com/users/alexeits/events{/privacy}","received_events_url":"https://api.github.com/users/alexeits/received_events","type":"User","site_admin":false},"created_at":"2015-05-02T00:02:35Z","updated_at":"2015-05-02T00:02:35Z","body":"The `OccurenceOrderPlugin` doesn't seem to solve the problem very well for keeping the vendor chunk unchanged. It looks like that code modifications could result in module reordering even without adding new external dependencies."}}