{"action":"created","issue":{"url":"https://api.github.com/repos/atom/atom/issues/9775","labels_url":"https://api.github.com/repos/atom/atom/issues/9775/labels{/name}","comments_url":"https://api.github.com/repos/atom/atom/issues/9775/comments","events_url":"https://api.github.com/repos/atom/atom/issues/9775/events","html_url":"https://github.com/atom/atom/issues/9775","id":118505090,"number":9775,"title":"Caret ranges not respected properly","user":{"login":"Arcanemagus","id":427137,"avatar_url":"https://avatars.githubusercontent.com/u/427137?v=3","gravatar_id":"","url":"https://api.github.com/users/Arcanemagus","html_url":"https://github.com/Arcanemagus","followers_url":"https://api.github.com/users/Arcanemagus/followers","following_url":"https://api.github.com/users/Arcanemagus/following{/other_user}","gists_url":"https://api.github.com/users/Arcanemagus/gists{/gist_id}","starred_url":"https://api.github.com/users/Arcanemagus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Arcanemagus/subscriptions","organizations_url":"https://api.github.com/users/Arcanemagus/orgs","repos_url":"https://api.github.com/users/Arcanemagus/repos","events_url":"https://api.github.com/users/Arcanemagus/events{/privacy}","received_events_url":"https://api.github.com/users/Arcanemagus/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-11-24T00:26:04Z","updated_at":"2015-11-24T20:57:56Z","closed_at":"2015-11-24T20:46:22Z","body":"I've been seeing several issues with caret ranges not being respected in package dependencies.\r\n\r\nSeveral of the `linter-*` packages depend on the [atom-linter](https://github.com/AtomLinter/atom-linter) package, so there are usually several instances of it installed in a particular Atom installation. The issue is that when a package with an older version of the library loads it before a package asking for a newer version loads, the older version is used instead.\r\n\r\nFor example:\r\n`linter-js-yaml` had version 3.3.7 installed of `atom-linter`, which is perfectly fine for its asked for version of `\"^3.3.7\"`. When testing `linter-php` which had `\"^3.3.9\"` specified in its package.json however, I was getting errors that had been fixed in 3.3.8 and checking the trace it showed that it was using the 3.3.7 from `linter-js-yaml`'s installation.\r\n\r\nAccording to [semver's definiton of caret ranges](https://docs.npmjs.com/misc/semver#caret-ranges-1-2-3-0-2-5-0-0-4) a request for `\"^3.3.9\"` should be equivalent to `\">=3.3.9 <4.0.0\"`, but Atom is loading `3.3.7` which does not fall within that range.\r\n\r\nI've been seeing this on Windows 10 x64, on Atom 1.3.0-beta6. (And older versions of each before in the past).\r\nI think I've seen it before on Ubuntu, but can't verify that at the moment.\r\n\r\nIf this has already been reported please point me in the right direction as I could not find it."},"comment":{"url":"https://api.github.com/repos/atom/atom/issues/comments/159403054","html_url":"https://github.com/atom/atom/issues/9775#issuecomment-159403054","issue_url":"https://api.github.com/repos/atom/atom/issues/9775","id":159403054,"user":{"login":"steelbrain","id":4278113,"avatar_url":"https://avatars.githubusercontent.com/u/4278113?v=3","gravatar_id":"","url":"https://api.github.com/users/steelbrain","html_url":"https://github.com/steelbrain","followers_url":"https://api.github.com/users/steelbrain/followers","following_url":"https://api.github.com/users/steelbrain/following{/other_user}","gists_url":"https://api.github.com/users/steelbrain/gists{/gist_id}","starred_url":"https://api.github.com/users/steelbrain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/steelbrain/subscriptions","organizations_url":"https://api.github.com/users/steelbrain/orgs","repos_url":"https://api.github.com/users/steelbrain/repos","events_url":"https://api.github.com/users/steelbrain/events{/privacy}","received_events_url":"https://api.github.com/users/steelbrain/received_events","type":"User","site_admin":false},"created_at":"2015-11-24T20:57:56Z","updated_at":"2015-11-24T20:57:56Z","body":"Just for clarification: `linter` is an atom package, `atom-linter` is an `npm` package"}}