{"action":"created","issue":{"url":"https://api.github.com/repos/Homebrew/homebrew/issues/37846","labels_url":"https://api.github.com/repos/Homebrew/homebrew/issues/37846/labels{/name}","comments_url":"https://api.github.com/repos/Homebrew/homebrew/issues/37846/comments","events_url":"https://api.github.com/repos/Homebrew/homebrew/issues/37846/events","html_url":"https://github.com/Homebrew/homebrew/issues/37846","id":62829732,"number":37846,"title":"Several verbs ignore naming conflicts in external taps","user":{"login":"jawshooah","id":4551271,"avatar_url":"https://avatars.githubusercontent.com/u/4551271?v=3","gravatar_id":"","url":"https://api.github.com/users/jawshooah","html_url":"https://github.com/jawshooah","followers_url":"https://api.github.com/users/jawshooah/followers","following_url":"https://api.github.com/users/jawshooah/following{/other_user}","gists_url":"https://api.github.com/users/jawshooah/gists{/gist_id}","starred_url":"https://api.github.com/users/jawshooah/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jawshooah/subscriptions","organizations_url":"https://api.github.com/users/jawshooah/orgs","repos_url":"https://api.github.com/users/jawshooah/repos","events_url":"https://api.github.com/users/jawshooah/events{/privacy}","received_events_url":"https://api.github.com/users/jawshooah/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-03-18T23:52:54Z","updated_at":"2015-03-19T13:54:31Z","closed_at":null,"body":"I have a [custom tap](https://github.com/jawshooah/homebrew-nodenv) with formulae for OiNutter's version of [nodenv](https://github.com/OiNutter/nodenv) as an alternative to the unmaintained version in the main repository. After running `brew install jawshooah/nodenv/nodenv`, I get the following for various `brew <verb>` commands:\r\n\r\n```\r\n$ brew tap jawshooah/nodenv\r\nCloning into '/usr/local/Library/Taps/jawshooah/homebrew-nodenv'...\r\nremote: Counting objects: 18, done.\r\nremote: Compressing objects: 100% (15/15), done.\r\nremote: Total 18 (delta 4), reused 16 (delta 2), pack-reused 0\r\nUnpacking objects: 100% (18/18), done.\r\nChecking connectivity... done.\r\nWarning: Could not create link for jawshooah/nodenv/nodenv, as it\r\nconflicts with Homebrew/homebrew/nodenv. You will need to use the\r\nfully-qualified name when referring this formula, e.g.\r\n  brew install jawshooah/nodenv/nodenv\r\nTapped 3 formulae\r\n\r\n\r\n$ brew install jawshooah/nodenv/nodenv\r\n==> Installing nodenv from jawshooah/homebrew-nodenv\r\n==> Downloading https://github.com/OiNutter/nodenv/archive/v0.2.0.tar.gz\r\nAlready downloaded: /Library/Caches/Homebrew/nodenv-0.2.0.tar.gz\r\n==> Caveats\r\nTo enable shims and autocompletion add to your profile:\r\n  if which nodenv > /dev/null; then eval \"$(nodenv init -)\"; fi\r\n\r\nTo use Homebrew's directories rather than ~/.nodenv add to your profile:\r\n  export NODENV_ROOT=/usr/local/opt/nodenv\r\n==> Summary\r\n🍺  /usr/local/Cellar/nodenv/0.2.0: 29 files, 136K, built in 2 seconds\r\n\r\n\r\n$ brew info jawshooah/nodenv/nodenv\r\nnodenv: stable 0.2.0, HEAD\r\nhttps://github.com/OiNutter/nodenv\r\n/usr/local/Cellar/nodenv/0.2.0 (29 files, 136K)\r\n  Built from source\r\nFrom: https://github.com/jawshooah/homebrew-nodenv/blob/master/nodenv.rb\r\n==> Caveats\r\nTo enable shims and autocompletion add to your profile:\r\n  if which nodenv > /dev/null; then eval \"$(nodenv init -)\"; fi\r\n\r\nTo use Homebrew's directories rather than ~/.nodenv add to your profile:\r\n  export NODENV_ROOT=/usr/local/opt/nodenv\r\n\r\n\r\n$ brew info nodenv\r\nnodenv: stable 0.3.3, HEAD\r\nhttps://github.com/wfarr/nodenv\r\n/usr/local/Cellar/nodenv/0.2.0 (29 files, 136K)\r\n  Built from source\r\nFrom: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/nodenv.rb\r\n==> Caveats\r\nTo enable shims and autocompletion add to your profile:\r\n  if which nodenv > /dev/null; then eval \"$(nodenv init -)\"; fi\r\n\r\n\r\n$ brew outdated\r\nnodenv (0.2.0 < 0.3.3)\r\n\r\n\r\n$ brew upgrade\r\n==> Upgrading 1 outdated package, with result:\r\nnodenv 0.3.3\r\n==> Upgrading nodenv\r\n==> Downloading https://github.com/wfarr/nodenv/archive/v0.3.3.tar.gz\r\nAlready downloaded: /Library/Caches/Homebrew/nodenv-0.3.3.tar.gz\r\n==> Caveats\r\nTo enable shims and autocompletion add to your profile:\r\n  if which nodenv > /dev/null; then eval \"$(nodenv init -)\"; fi\r\n==> Summary\r\n🍺  /usr/local/Cellar/nodenv/0.3.3: 17 files,  72K, built in 2 seconds\r\n```\r\n\r\nAs you can see, `brew info nodenv` incorrectly reports that `nodenv`, not `jawshooah/nodenv/nodenv`, has been installed. Similarly, `brew outdated`  and `brew upgrade` treat the installed version of `jawshooah/nodenv/nodenv` as an outdated version of `nodenv`.\r\n\r\nIs this intentional? I would expect Homebrew to be able to differentiate between formulae in the main repository and those installed from an external tap."},"comment":{"url":"https://api.github.com/repos/Homebrew/homebrew/issues/comments/83589684","html_url":"https://github.com/Homebrew/homebrew/issues/37846#issuecomment-83589684","issue_url":"https://api.github.com/repos/Homebrew/homebrew/issues/37846","id":83589684,"user":{"login":"jacknagel","id":568243,"avatar_url":"https://avatars.githubusercontent.com/u/568243?v=3","gravatar_id":"","url":"https://api.github.com/users/jacknagel","html_url":"https://github.com/jacknagel","followers_url":"https://api.github.com/users/jacknagel/followers","following_url":"https://api.github.com/users/jacknagel/following{/other_user}","gists_url":"https://api.github.com/users/jacknagel/gists{/gist_id}","starred_url":"https://api.github.com/users/jacknagel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacknagel/subscriptions","organizations_url":"https://api.github.com/users/jacknagel/orgs","repos_url":"https://api.github.com/users/jacknagel/repos","events_url":"https://api.github.com/users/jacknagel/events{/privacy}","received_events_url":"https://api.github.com/users/jacknagel/received_events","type":"User","site_admin":false},"created_at":"2015-03-19T13:54:31Z","updated_at":"2015-03-19T13:54:31Z","body":">The problem is I've heard users say they want exactly the opposite behaviour which is why it behaves the way it does. I don't think there's going to be a solution here that makes everyone happy; \r\n\r\nI think you've possibly misunderstood what I'm saying? If I `brew install some/tap/foo`, right now `brew upgrade foo` will always use the `foo` from core. This is an implementation accident that we've always intended to fix. I can't imagine users would expect the existing behavior."}}