{"action":"created","issue":{"url":"https://api.github.com/repos/dart-lang/pub/issues/1010","labels_url":"https://api.github.com/repos/dart-lang/pub/issues/1010/labels{/name}","comments_url":"https://api.github.com/repos/dart-lang/pub/issues/1010/comments","events_url":"https://api.github.com/repos/dart-lang/pub/issues/1010/events","html_url":"https://github.com/dart-lang/pub/issues/1010","id":85645537,"number":1010,"title":"App-local packages for Pub","user":{"login":"DartBot","id":8958862,"avatar_url":"https://avatars.githubusercontent.com/u/8958862?v=3","gravatar_id":"","url":"https://api.github.com/users/DartBot","html_url":"https://github.com/DartBot","followers_url":"https://api.github.com/users/DartBot/followers","following_url":"https://api.github.com/users/DartBot/following{/other_user}","gists_url":"https://api.github.com/users/DartBot/gists{/gist_id}","starred_url":"https://api.github.com/users/DartBot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DartBot/subscriptions","organizations_url":"https://api.github.com/users/DartBot/orgs","repos_url":"https://api.github.com/users/DartBot/repos","events_url":"https://api.github.com/users/DartBot/events{/privacy}","received_events_url":"https://api.github.com/users/DartBot/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dart-lang/pub/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-06-05T22:20:06Z","updated_at":"2015-06-05T22:20:07Z","closed_at":null,"body":"<a href=\"https://github.com/justinfagnani\"><img src=\"https://avatars.githubusercontent.com/u/522948?v=3\" align=\"left\" width=\"96\" height=\"96\"hspace=\"10\"></img></a> **Issue by [justinfagnani](https://github.com/justinfagnani)**\n_Originally opened as dart-lang/sdk#19412_\n\n----\n\nThis is an idea for a package type that could help with use cases like integration with other package managers, code generators that produce code that should be checked in or visible to editors, transformer-generated assets that should live in a centrally reachable location, etc.\n\nAn app-local package would not be installed to the pub cache, but directly to an application's project directory. This would allow tools to safely write to it, while still letting the package have a name and `package:` and `packages/` URLs that can be referenced by other packages.\n\nIt would be similar to adding this to the app's pubspec:\n\ndependencies:\n&nbsp;&nbsp;app_local: { path: 'app_local' }\n\nWith a few possible differences:\n\n1) Library packages could declare an app-local dependency. Right now a library package can't define a path dependency.\n2) It's possible the app-local package does not need to be a real package, can be created automatically, and doesn't require a pubspec.yaml or lib/ directory.\n\nAnother option is that app-local packages could still be hosted on pub, but installed with the app, but this greatly complicated upgrading. Hosting just a pubspec that designate the package as app local could help reserve the name.\n\nThis would help a lot with Bower integration. Packages that depend on bower components could declare (making up syntax):\n\ndependencies:\n&nbsp;&nbsp;bower_components: { local: 'bower_components' }\n\nSome external bower integration would install bower packages there, and bower components could be references with URLs like &quot;packages/bower_components/core-selection.html&quot;."},"comment":{"url":"https://api.github.com/repos/dart-lang/pub/issues/comments/109459811","html_url":"https://github.com/dart-lang/pub/issues/1010#issuecomment-109459811","issue_url":"https://api.github.com/repos/dart-lang/pub/issues/1010","id":109459811,"user":{"login":"DartBot","id":8958862,"avatar_url":"https://avatars.githubusercontent.com/u/8958862?v=3","gravatar_id":"","url":"https://api.github.com/users/DartBot","html_url":"https://github.com/DartBot","followers_url":"https://api.github.com/users/DartBot/followers","following_url":"https://api.github.com/users/DartBot/following{/other_user}","gists_url":"https://api.github.com/users/DartBot/gists{/gist_id}","starred_url":"https://api.github.com/users/DartBot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DartBot/subscriptions","organizations_url":"https://api.github.com/users/DartBot/orgs","repos_url":"https://api.github.com/users/DartBot/repos","events_url":"https://api.github.com/users/DartBot/events{/privacy}","received_events_url":"https://api.github.com/users/DartBot/received_events","type":"User","site_admin":false},"created_at":"2015-06-05T22:20:07Z","updated_at":"2015-06-05T22:20:07Z","body":"<a href=\"https://github.com/justinfagnani\"><img src=\"https://avatars.githubusercontent.com/u/522948?v=3\" align=\"left\" width=\"48\" height=\"48\"hspace=\"10\"></img></a> **Comment by [justinfagnani](https://github.com/justinfagnani)**\n\n----\n\nSure. I just wanted to get a tracking bug for the idea down for now."}}