{"action":"created","issue":{"url":"https://api.github.com/repos/broccolijs/broccoli-plugin/issues/11","repository_url":"https://api.github.com/repos/broccolijs/broccoli-plugin","labels_url":"https://api.github.com/repos/broccolijs/broccoli-plugin/issues/11/labels{/name}","comments_url":"https://api.github.com/repos/broccolijs/broccoli-plugin/issues/11/comments","events_url":"https://api.github.com/repos/broccolijs/broccoli-plugin/issues/11/events","html_url":"https://github.com/broccolijs/broccoli-plugin/issues/11","id":147213722,"number":11,"title":"Narrowing down caching failure - RFC","user":{"login":"BryanCrotaz","id":2016523,"avatar_url":"https://avatars.githubusercontent.com/u/2016523?v=3","gravatar_id":"","url":"https://api.github.com/users/BryanCrotaz","html_url":"https://github.com/BryanCrotaz","followers_url":"https://api.github.com/users/BryanCrotaz/followers","following_url":"https://api.github.com/users/BryanCrotaz/following{/other_user}","gists_url":"https://api.github.com/users/BryanCrotaz/gists{/gist_id}","starred_url":"https://api.github.com/users/BryanCrotaz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BryanCrotaz/subscriptions","organizations_url":"https://api.github.com/users/BryanCrotaz/orgs","repos_url":"https://api.github.com/users/BryanCrotaz/repos","events_url":"https://api.github.com/users/BryanCrotaz/events{/privacy}","received_events_url":"https://api.github.com/users/BryanCrotaz/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":53,"created_at":"2016-04-10T10:45:50Z","updated_at":"2016-04-10T22:46:06Z","closed_at":"2016-04-10T22:46:06Z","body":"See [https://github.com/ember-cli/broccoli-caching-writer/issues/70] for background.\r\n\r\nI think the bug here might be a bug/design-flaw in broccoli. It appears (from my _very_ much outsider view as a plugin writer) that a new `tmp/cache` and `tmp/output` directory is created on each run of broccoli. This isn't inline with the stated aim of the `persistentOutput` option - what's the point of keeping outputs around for a subsequent run and then creating a new folder and not reusing the previous output?\r\n\r\nWould it be better if the `tmp\\xxx` directory name was predictable, e.g. using classname+instance number or `annotation` and was only cleared down if the BrocFile was changed? This could be done by storing a hash of the brocfile in the tmp folder and checking it on startup.\r\n\r\nPlugins could now reuse their previous output as per the broccoli design goal.\r\n\r\nThoughts? @joliss @rwjblue @stefanpenner "},"comment":{"url":"https://api.github.com/repos/broccolijs/broccoli-plugin/issues/comments/208086731","html_url":"https://github.com/broccolijs/broccoli-plugin/issues/11#issuecomment-208086731","issue_url":"https://api.github.com/repos/broccolijs/broccoli-plugin/issues/11","id":208086731,"user":{"login":"stefanpenner","id":1377,"avatar_url":"https://avatars.githubusercontent.com/u/1377?v=3","gravatar_id":"","url":"https://api.github.com/users/stefanpenner","html_url":"https://github.com/stefanpenner","followers_url":"https://api.github.com/users/stefanpenner/followers","following_url":"https://api.github.com/users/stefanpenner/following{/other_user}","gists_url":"https://api.github.com/users/stefanpenner/gists{/gist_id}","starred_url":"https://api.github.com/users/stefanpenner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stefanpenner/subscriptions","organizations_url":"https://api.github.com/users/stefanpenner/orgs","repos_url":"https://api.github.com/users/stefanpenner/repos","events_url":"https://api.github.com/users/stefanpenner/events{/privacy}","received_events_url":"https://api.github.com/users/stefanpenner/received_events","type":"User","site_admin":false},"created_at":"2016-04-10T22:46:06Z","updated_at":"2016-04-10T22:46:06Z","body":"Let me encourage further exploration, so please do investigate.\r\n\r\nI do not believe this to be an issue with broccoli or broccoli-plugin themselves, rather a reality of the domain. Caching is hard. This doesn't mean a creative solution isn't possible, but the real problem I believe is still yet to be defined in sufficient detail to be actionable.\r\n\r\nLet me recommend providing a demo that is publicly available, conveys the exact problem accurately, and can something others can hack on to explore further. As speaking abstractly, and back filling context is quite time consuming and I view it as a fairly high risk activity. Communicating is basically just hard ...\r\n\r\nWith the above, it actually sounds quite compelling problem to explore.\r\n\r\nFor now I am going to close this issue, if at some point the above can be provided, please provided a link on this issue and it can be explored further.\r\n\r\nAgain, I wish I had unbounded time. The above request is most likely the best chance of being able to collaborate on a solution."}}