{"action":"created","issue":{"url":"https://api.github.com/repos/artificialio/sane/issues/91","labels_url":"https://api.github.com/repos/artificialio/sane/issues/91/labels{/name}","comments_url":"https://api.github.com/repos/artificialio/sane/issues/91/comments","events_url":"https://api.github.com/repos/artificialio/sane/issues/91/events","html_url":"https://github.com/artificialio/sane/issues/91","id":58873061,"number":91,"title":"Refactor and solidify new command","user":{"login":"Globegitter","id":2580254,"avatar_url":"https://avatars.githubusercontent.com/u/2580254?v=3","gravatar_id":"","url":"https://api.github.com/users/Globegitter","html_url":"https://github.com/Globegitter","followers_url":"https://api.github.com/users/Globegitter/followers","following_url":"https://api.github.com/users/Globegitter/following{/other_user}","gists_url":"https://api.github.com/users/Globegitter/gists{/gist_id}","starred_url":"https://api.github.com/users/Globegitter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Globegitter/subscriptions","organizations_url":"https://api.github.com/users/Globegitter/orgs","repos_url":"https://api.github.com/users/Globegitter/repos","events_url":"https://api.github.com/users/Globegitter/events{/privacy}","received_events_url":"https://api.github.com/users/Globegitter/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/artificialio/sane/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/artificialio/sane/labels/open-for-contributers","name":"open-for-contributers","color":"159818"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-02-25T09:23:29Z","updated_at":"2015-02-26T15:12:24Z","closed_at":null,"body":"Now that things have been tested for a while, everything works cross-OS and most importantly I have gotten more and more experience with `async/await` as well as `docker/docker-compose`, make sure that `sane new` works smoothly even when something goes wrong and have better debug messages.\r\n\r\n- [ ] Factor out some of the functions\r\n- [ ] See if you can reduce requires in the file, especially something like https://github.com/artificialio/sane/blob/master/lib/commands/new.js#L3, possibly also https://github.com/artificialio/sane/blob/master/lib/commands/new.js#L17\r\n- [ ] Put all `async/await` within `try/catches`\r\n- [ ] Add more debugging logs either via https://www.npmjs.com/package/verboser, https://www.npmjs.com/package/debug, or see if there is another nice package helping out with that.\r\n- [ ] See if template copying https://github.com/artificialio/sane/blob/master/lib/commands/new.js#L322 can use the new https://github.com/artificialio/sane/blob/addon-system/lib/tasks/copyToProject.js function in a useful manner.\r\n- [ ] Add some unit tests for the helper functions\r\n- [ ] Look into adding acceptance/integration tests using `--docker`\r\n- [ ] See if performance can be improved, for example by lazily loading some require statements.\r\n\r\nThis is an effort to improve first-use experience but also make debugging and contributions easier. For the next few weeks at least this is more a wish-list because I probably won't have time for that. But also if anyone is interested in contributing, this would be really a good way to get into details with sane-cli improve the experience for everyone."},"comment":{"url":"https://api.github.com/repos/artificialio/sane/issues/comments/76194488","html_url":"https://github.com/artificialio/sane/issues/91#issuecomment-76194488","issue_url":"https://api.github.com/repos/artificialio/sane/issues/91","id":76194488,"user":{"login":"mgenev","id":3029803,"avatar_url":"https://avatars.githubusercontent.com/u/3029803?v=3","gravatar_id":"","url":"https://api.github.com/users/mgenev","html_url":"https://github.com/mgenev","followers_url":"https://api.github.com/users/mgenev/followers","following_url":"https://api.github.com/users/mgenev/following{/other_user}","gists_url":"https://api.github.com/users/mgenev/gists{/gist_id}","starred_url":"https://api.github.com/users/mgenev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mgenev/subscriptions","organizations_url":"https://api.github.com/users/mgenev/orgs","repos_url":"https://api.github.com/users/mgenev/repos","events_url":"https://api.github.com/users/mgenev/events{/privacy}","received_events_url":"https://api.github.com/users/mgenev/received_events","type":"User","site_admin":false},"created_at":"2015-02-26T15:12:24Z","updated_at":"2015-02-26T15:12:24Z","body":"I think it might be valuable to write up this process when it comes to async/await and try/catches and release a tutorial."}}