{"action":"closed","issue":{"url":"https://api.github.com/repos/Polymer/polymer-build/issues/3","repository_url":"https://api.github.com/repos/Polymer/polymer-build","labels_url":"https://api.github.com/repos/Polymer/polymer-build/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/Polymer/polymer-build/issues/3/comments","events_url":"https://api.github.com/repos/Polymer/polymer-build/issues/3/events","html_url":"https://github.com/Polymer/polymer-build/issues/3","id":162557202,"number":3,"title":"[Feature] Smarter, smaller builds","user":{"login":"FredKSchott","id":622227,"avatar_url":"https://avatars.githubusercontent.com/u/622227?v=3","gravatar_id":"","url":"https://api.github.com/users/FredKSchott","html_url":"https://github.com/FredKSchott","followers_url":"https://api.github.com/users/FredKSchott/followers","following_url":"https://api.github.com/users/FredKSchott/following{/other_user}","gists_url":"https://api.github.com/users/FredKSchott/gists{/gist_id}","starred_url":"https://api.github.com/users/FredKSchott/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FredKSchott/subscriptions","organizations_url":"https://api.github.com/users/FredKSchott/orgs","repos_url":"https://api.github.com/users/FredKSchott/repos","events_url":"https://api.github.com/users/FredKSchott/events{/privacy}","received_events_url":"https://api.github.com/users/FredKSchott/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/Polymer/polymer-build/milestones/1","html_url":"https://github.com/Polymer/polymer-build/milestones/0.1.0","labels_url":"https://api.github.com/repos/Polymer/polymer-build/milestones/1/labels","id":1855551,"number":1,"title":"0.1.0","description":"First published preview release.","creator":{"login":"justinfagnani","id":522948,"avatar_url":"https://avatars.githubusercontent.com/u/522948?v=3","gravatar_id":"","url":"https://api.github.com/users/justinfagnani","html_url":"https://github.com/justinfagnani","followers_url":"https://api.github.com/users/justinfagnani/followers","following_url":"https://api.github.com/users/justinfagnani/following{/other_user}","gists_url":"https://api.github.com/users/justinfagnani/gists{/gist_id}","starred_url":"https://api.github.com/users/justinfagnani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinfagnani/subscriptions","organizations_url":"https://api.github.com/users/justinfagnani/orgs","repos_url":"https://api.github.com/users/justinfagnani/repos","events_url":"https://api.github.com/users/justinfagnani/events{/privacy}","received_events_url":"https://api.github.com/users/justinfagnani/received_events","type":"User","site_admin":false},"open_issues":0,"closed_issues":1,"state":"open","created_at":"2016-06-29T16:43:33Z","updated_at":"2016-07-19T23:47:54Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2016-06-27T21:53:04Z","updated_at":"2016-07-19T23:47:54Z","closed_at":"2016-07-19T23:47:54Z","body":"## TODO:\r\n- [ ] 1. Stream starts with src/ directory instead of all files, can be changed via user-input globs\r\n- [ ] 2. Dependencies stream involves reading the source stream and parsing the dependency tree via hydrolosis\r\n- [ ] 3. If dependency is found, file is pushed into the top of the build pipeline stream\r\n\r\n\r\n#### For 3: \r\nThis requires that all files are compiled and present at the start of build pipeline, or that there's a fallback process if file does not exist (assumes it will exist in the future). Possible implementations:\r\n- Force \"compilation\" step to complete before the build pipeline starts. Ex: run typescript and start build pipeline after all files are created. If we can rely on this assumption, then we can throw an error when a file is not found. Less moving pieces, but also less efficient.\r\n- Handle not found files by putting them into a queue and retrying later. Once all pipeline steps before read are complete, retry the files in this queue. Throw an error if they aren't found at this point. This allows for compilation of all non-html files, but would fail if the imports/loading graph changes during \"compilation\". More efficient, but puts the restriction on HTML files that they cannot be modified during \"compilation\". \r\n\r\n@justinfagnani thoughts on this tradeoff? Are we okay with allowing some files to be changed during \"compilation\" but breaking on certain types of changes (related to HTML files and the imports/scripts/styles loading graph it creates). I'd rather encourage an explicit \"before build\" step that prepares the target for polymer-build vs. modifying files during read.\r\n"}}
{"actor":{"display_login":"FredKSchott"}}