{"action":"created","issue":{"url":"https://api.github.com/repos/golang/dep/issues/595","repository_url":"https://api.github.com/repos/golang/dep","labels_url":"https://api.github.com/repos/golang/dep/issues/595/labels{/name}","comments_url":"https://api.github.com/repos/golang/dep/issues/595/comments","events_url":"https://api.github.com/repos/golang/dep/issues/595/events","html_url":"https://github.com/golang/dep/pull/595","id":229217388,"number":595,"title":"dep, internal/gps: Always return an error from Analyzer.DeriveManifestAndLock","user":{"login":"davecheney","id":7171,"avatar_url":"https://avatars3.githubusercontent.com/u/7171?v=3","gravatar_id":"","url":"https://api.github.com/users/davecheney","html_url":"https://github.com/davecheney","followers_url":"https://api.github.com/users/davecheney/followers","following_url":"https://api.github.com/users/davecheney/following{/other_user}","gists_url":"https://api.github.com/users/davecheney/gists{/gist_id}","starred_url":"https://api.github.com/users/davecheney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davecheney/subscriptions","organizations_url":"https://api.github.com/users/davecheney/orgs","repos_url":"https://api.github.com/users/davecheney/repos","events_url":"https://api.github.com/users/davecheney/events{/privacy}","received_events_url":"https://api.github.com/users/davecheney/received_events","type":"User","site_admin":false},"labels":[{"id":517733207,"url":"https://api.github.com/repos/golang/dep/labels/cla:%20yes","name":"cla: yes","color":"c2e0c6","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2017-05-17T02:03:36Z","updated_at":"2017-05-17T03:31:47Z","closed_at":"2017-05-17T03:11:33Z","pull_request":{"url":"https://api.github.com/repos/golang/dep/pulls/595","html_url":"https://github.com/golang/dep/pull/595","diff_url":"https://github.com/golang/dep/pull/595.diff","patch_url":"https://github.com/golang/dep/pull/595.patch"},"body":"Analyzer.DeriveManifestAndLock returns a nil error when passed a non existent path. This is rather unidiomatic.\r\n\r\nInstead, return the error to gps.getManifestAndLock and adjust it to handle this case explicitly."},"comment":{"url":"https://api.github.com/repos/golang/dep/issues/comments/301975702","html_url":"https://github.com/golang/dep/pull/595#issuecomment-301975702","issue_url":"https://api.github.com/repos/golang/dep/issues/595","id":301975702,"user":{"login":"davecheney","id":7171,"avatar_url":"https://avatars3.githubusercontent.com/u/7171?v=3","gravatar_id":"","url":"https://api.github.com/users/davecheney","html_url":"https://github.com/davecheney","followers_url":"https://api.github.com/users/davecheney/followers","following_url":"https://api.github.com/users/davecheney/following{/other_user}","gists_url":"https://api.github.com/users/davecheney/gists{/gist_id}","starred_url":"https://api.github.com/users/davecheney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davecheney/subscriptions","organizations_url":"https://api.github.com/users/davecheney/orgs","repos_url":"https://api.github.com/users/davecheney/repos","events_url":"https://api.github.com/users/davecheney/events{/privacy}","received_events_url":"https://api.github.com/users/davecheney/received_events","type":"User","site_admin":false},"created_at":"2017-05-17T03:31:46Z","updated_at":"2017-05-17T03:31:46Z","body":"But at the risk of wearing out my welcome. A method that returns a nil\nerror AND nil values is very unusual in Go.\n\nOn Wed, 17 May 2017, 13:27 Dave Cheney <dave@cheney.net> wrote:\n\n> Fair enough. Thanks.\n>\n> On Wed, 17 May 2017, 13:27 sam boyer <notifications@github.com> wrote:\n>\n>> It doesn't change the outcome, but it violates the intention of the\n>> interface. It's not an error condition of DeriveManifestAndLock() to not\n>> find any of the files it may want to look for, and thus it should not\n>> return an error.\n>>\n>> gps' internals have no idea how the manifest and lock data are being\n>> loaded by the analyzer; this change would remove that abstraction. It's\n>> probably reading files from disk, but maybe it's making calls into a\n>> database. Maybe it's reading multiple files on disk. Maybe it's searching\n>> for files from multiple different tools. Point is, gps doesn't know or\n>> care; if it gets back an error from DeriveManifestAndLock(), the\n>> analyzer is saying that version is *unusable*.\n>>\n>> Now, I can certainly see this needing to be a docs improvement, as none\n>> of this is written out on the ProjectAnalyzer.DeriveManifestAndLock()\n>> docs 😄\n>>\n>> —\n>> You are receiving this because you authored the thread.\n>> Reply to this email directly, view it on GitHub\n>> <https://github.com/golang/dep/pull/595#issuecomment-301975169>, or mute\n>> the thread\n>> <https://github.com/notifications/unsubscribe-auth/AAAcA9Rro2lGC_3Y5HTyThCxh3NwkGJ9ks5r6mkNgaJpZM4NdSXx>\n>> .\n>>\n>\n"}}
{"actor":{"display_login":"davecheney"}}