{"action":"created","issue":{"url":"https://api.github.com/repos/stealjs/steal/issues/746","repository_url":"https://api.github.com/repos/stealjs/steal","labels_url":"https://api.github.com/repos/stealjs/steal/issues/746/labels{/name}","comments_url":"https://api.github.com/repos/stealjs/steal/issues/746/comments","events_url":"https://api.github.com/repos/stealjs/steal/issues/746/events","html_url":"https://github.com/stealjs/steal/issues/746","id":159415427,"number":746,"title":"Consolidate core projects","user":{"login":"matthewp","id":361671,"avatar_url":"https://avatars.githubusercontent.com/u/361671?v=3","gravatar_id":"","url":"https://api.github.com/users/matthewp","html_url":"https://github.com/matthewp","followers_url":"https://api.github.com/users/matthewp/followers","following_url":"https://api.github.com/users/matthewp/following{/other_user}","gists_url":"https://api.github.com/users/matthewp/gists{/gist_id}","starred_url":"https://api.github.com/users/matthewp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthewp/subscriptions","organizations_url":"https://api.github.com/users/matthewp/orgs","repos_url":"https://api.github.com/users/matthewp/repos","events_url":"https://api.github.com/users/matthewp/events{/privacy}","received_events_url":"https://api.github.com/users/matthewp/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/stealjs/steal/labels/enhancement","name":"enhancement","color":"bfdadc"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2016-06-09T14:01:10Z","updated_at":"2016-06-10T16:13:01Z","closed_at":null,"body":"*Note*: this won't make 1.0, but can happen any time thereafter.\r\n\r\nWe have a lot of projects that are only used to build Steal. These are the \"system-\" extensions. For historical reasons they were developed as separate projects meant to be used with SystemJS, but since our APIs have diverged that's no longer possible. These are:\r\n\r\n* steal-es6-module-loader\r\n* steal-systemjs\r\n* system-trace\r\n* system-json\r\n* steal-env\r\n\r\nThen we also have some \"core plugins\" that could be in stealjs/steal:\r\n\r\n* system-npm\r\n* system-bower\r\n\r\nConsolidating these modules into stealjs/steal would make development much easier. The problem will be bringing all of their tests in.  We really want:\r\n\r\n* To be able to develop each extension in isolation.\r\n* Have a test page just for that extension that can be ran in isolation.\r\n\r\nTo that end I propose we use the modlet pattern like we do in a lot of DoneJS projects.  It could look like this (I think):\r\n\r\n```\r\nsrc/\r\n  json/\r\n    json.js\r\n    json_test.js\r\n    test.html\r\n    json.md\r\n  trace/\r\n    trace.js\r\n    trace_test.js\r\n    test.html\r\n    trace.md\r\next/\r\n  npm/\r\n    npm.js\r\n    npm-extension.js\r\n    // other npm-*.js files here\r\n    npm_test.js\r\n    test.html\r\n```\r\n\r\nIn the above structure `src/` contains all of the extensions (everything that is built into steal.js) and `ext/` contains plugins (things that are dynamically loaded such as the npm plugin)."},"comment":{"url":"https://api.github.com/repos/stealjs/steal/issues/comments/225226545","html_url":"https://github.com/stealjs/steal/issues/746#issuecomment-225226545","issue_url":"https://api.github.com/repos/stealjs/steal/issues/746","id":225226545,"user":{"login":"justinbmeyer","id":78602,"avatar_url":"https://avatars.githubusercontent.com/u/78602?v=3","gravatar_id":"","url":"https://api.github.com/users/justinbmeyer","html_url":"https://github.com/justinbmeyer","followers_url":"https://api.github.com/users/justinbmeyer/followers","following_url":"https://api.github.com/users/justinbmeyer/following{/other_user}","gists_url":"https://api.github.com/users/justinbmeyer/gists{/gist_id}","starred_url":"https://api.github.com/users/justinbmeyer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinbmeyer/subscriptions","organizations_url":"https://api.github.com/users/justinbmeyer/orgs","repos_url":"https://api.github.com/users/justinbmeyer/repos","events_url":"https://api.github.com/users/justinbmeyer/events{/privacy}","received_events_url":"https://api.github.com/users/justinbmeyer/received_events","type":"User","site_admin":false},"created_at":"2016-06-10T16:13:01Z","updated_at":"2016-06-10T16:13:01Z","body":"I'm sorta wary of doing this.  We are doing the opposite in canjs and documentjs right now.  Keeping things isolated is good. It enforces logical separation of concerns, even if it creates a bit of an annoying dev experience.  "}}
{"actor":{"display_login":"justinbmeyer"}}