{"action":"created","issue":{"url":"https://api.github.com/repos/jspm/jspm-cli/issues/1090","labels_url":"https://api.github.com/repos/jspm/jspm-cli/issues/1090/labels{/name}","comments_url":"https://api.github.com/repos/jspm/jspm-cli/issues/1090/comments","events_url":"https://api.github.com/repos/jspm/jspm-cli/issues/1090/events","html_url":"https://github.com/jspm/jspm-cli/issues/1090","id":104668981,"number":1090,"title":"Persist registry overrides themselves in the package.json","user":{"login":"guybedford","id":598730,"avatar_url":"https://avatars.githubusercontent.com/u/598730?v=3","gravatar_id":"","url":"https://api.github.com/users/guybedford","html_url":"https://github.com/guybedford","followers_url":"https://api.github.com/users/guybedford/followers","following_url":"https://api.github.com/users/guybedford/following{/other_user}","gists_url":"https://api.github.com/users/guybedford/gists{/gist_id}","starred_url":"https://api.github.com/users/guybedford/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/guybedford/subscriptions","organizations_url":"https://api.github.com/users/guybedford/orgs","repos_url":"https://api.github.com/users/guybedford/repos","events_url":"https://api.github.com/users/guybedford/events{/privacy}","received_events_url":"https://api.github.com/users/guybedford/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/jspm/jspm-cli/labels/feature","name":"feature","color":"006b75"},{"url":"https://api.github.com/repos/jspm/jspm-cli/labels/next%20major","name":"next major","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-09-03T11:07:17Z","updated_at":"2015-10-27T14:12:37Z","closed_at":null,"body":"When setting a custom override, we should then store the compound override into the package.json. overrides in the package.json then no longer merge with the registry overrides.\r\n\r\nThe upgrade path here involves updating the package.json with the compound overrides.\r\n\r\nThis will then make the derivation clearer, as the package config is then clearly just the package.json combined with the override, instead of having this invisible jspm registry layer that is very difficult to get insight into currently.\r\n\r\nIt will also allow overrides to be changed in the registry without that being a breaking change for existing installs, giving full control of the environment to the consumer, only using them for the first install, which is a valuable property to have.\r\n\r\nIn addition, **this will bloat the package.json**, which bear with me - isn't a bad thing. It shows that overrides should not really be used, and encourages users to want to get them merged into the original repos.\r\n\r\nWe can potentially even enable transitive overrides with such a workflow, by publishing packages with overrides for their dependencies in turn in the package.json, since we now have an explicit detection of the conflict scenario, and can alert users when two overrides clash on the same package.\r\n\r\nWith all the above we need to provide this along with clear messaging that overrides can be published in the original repo. Later on posting overrides can be handled automatically by a PR bot.\r\n\r\nFeedback welcome."},"comment":{"url":"https://api.github.com/repos/jspm/jspm-cli/issues/comments/151508509","html_url":"https://github.com/jspm/jspm-cli/issues/1090#issuecomment-151508509","issue_url":"https://api.github.com/repos/jspm/jspm-cli/issues/1090","id":151508509,"user":{"login":"SomethingSexy","id":2483269,"avatar_url":"https://avatars.githubusercontent.com/u/2483269?v=3","gravatar_id":"","url":"https://api.github.com/users/SomethingSexy","html_url":"https://github.com/SomethingSexy","followers_url":"https://api.github.com/users/SomethingSexy/followers","following_url":"https://api.github.com/users/SomethingSexy/following{/other_user}","gists_url":"https://api.github.com/users/SomethingSexy/gists{/gist_id}","starred_url":"https://api.github.com/users/SomethingSexy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SomethingSexy/subscriptions","organizations_url":"https://api.github.com/users/SomethingSexy/orgs","repos_url":"https://api.github.com/users/SomethingSexy/repos","events_url":"https://api.github.com/users/SomethingSexy/events{/privacy}","received_events_url":"https://api.github.com/users/SomethingSexy/received_events","type":"User","site_admin":false},"created_at":"2015-10-27T14:12:37Z","updated_at":"2015-10-27T14:12:37Z","body":"@guybedford where does a ```jspm install x -o \"{...}\"``` persist that?  The project I am working on will need to be run locally by potentially a lot of developers.  I wouldn't want them to have to do anything special when running an generic install if I can avoid it."}}