{"action":"created","comment":{"url":"https://api.github.com/repos/bundler/bundler/pulls/comments/67934926","id":67934926,"diff_hunk":"@@ -206,6 +206,12 @@ def install\n       \"Update ruby specified in Gemfile.lock\"\n     method_option \"bundler\", :type => :string, :lazy_default => \"> 0.a\", :banner =>\n       \"Update the locked version of bundler\"\n+    method_option \"patch\", :type => :boolean, :banner =>\n+      \"Prefer updating only to next patch version\"","path":"lib/bundler/cli.rb","position":5,"original_position":5,"commit_id":"180adde4bc3da4987fd8ce9dcc2dbbe3c5f54f67","original_commit_id":"940b2e48b1f2bcf5eacc08b67905d1cb1ff8af13","user":{"login":"chrismo","id":8092,"avatar_url":"https://avatars.githubusercontent.com/u/8092?v=3","gravatar_id":"","url":"https://api.github.com/users/chrismo","html_url":"https://github.com/chrismo","followers_url":"https://api.github.com/users/chrismo/followers","following_url":"https://api.github.com/users/chrismo/following{/other_user}","gists_url":"https://api.github.com/users/chrismo/gists{/gist_id}","starred_url":"https://api.github.com/users/chrismo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrismo/subscriptions","organizations_url":"https://api.github.com/users/chrismo/orgs","repos_url":"https://api.github.com/users/chrismo/repos","events_url":"https://api.github.com/users/chrismo/events{/privacy}","received_events_url":"https://api.github.com/users/chrismo/received_events","type":"User","site_admin":false},"body":"there's a `--strict` flag I hadn't added here yet I just realized ... \r\n\r\nIf `--strict` is also used, then the code will actually remove versions fed back to Molinillo, but that can result in no updates happening or VersionConflict cases that report a version can't be found that actually does exist in the index, causing a very weird \"looks like a bug\" experience. (hmmm ... while I did see VersionConflict cases early on, I haven't seen one in a while ... I may need to try and recreate that in a spec -- maybe that was due to an early bug and shouldn't be possible). \r\n\r\nSo, not using `--strict` is the default and it means the code will only sort to the front (not filter out) the patch versions first - which favors getting something done, but it's potentially not _as_ conservative. \r\n\r\nOne challenge still existing is trying to give better output in these conservative cases, because sometimes no change will happen at all and there's no feedback to the user trying to explain \"well, you wanted to go up to 1.8.3 from 1.8.2, but 1.8.3 needs a minor increment and you fed it --strict so it couldn't do anything\" - but I've no idea if that's even plausible. It wouldn't be too unlike the Conflict output ... but these aren't cases of a Conflict.\r\n\r\nI did think also there could be a way to detect increments beyond what was requested and warn those somehow. \r\n\r\n#pascalsapology","created_at":"2016-06-21T19:23:57Z","updated_at":"2016-06-21T19:23:57Z","html_url":"https://github.com/bundler/bundler/pull/4676#discussion_r67934926","pull_request_url":"https://api.github.com/repos/bundler/bundler/pulls/4676","_links":{"self":{"href":"https://api.github.com/repos/bundler/bundler/pulls/comments/67934926"},"html":{"href":"https://github.com/bundler/bundler/pull/4676#discussion_r67934926"},"pull_request":{"href":"https://api.github.com/repos/bundler/bundler/pulls/4676"}}},"pull_request":{"url":"https://api.github.com/repos/bundler/bundler/pulls/4676","id":74163890,"html_url":"https://github.com/bundler/bundler/pull/4676","diff_url":"https://github.com/bundler/bundler/pull/4676.diff","patch_url":"https://github.com/bundler/bundler/pull/4676.patch","issue_url":"https://api.github.com/repos/bundler/bundler/issues/4676","number":4676,"state":"open","locked":false,"title":"[WIP] Conservative updates","user":{"login":"chrismo","id":8092,"avatar_url":"https://avatars.githubusercontent.com/u/8092?v=3","gravatar_id":"","url":"https://api.github.com/users/chrismo","html_url":"https://github.com/chrismo","followers_url":"https://api.github.com/users/chrismo/followers","following_url":"https://api.github.com/users/chrismo/following{/other_user}","gists_url":"https://api.github.com/users/chrismo/gists{/gist_id}","starred_url":"https://api.github.com/users/chrismo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrismo/subscriptions","organizations_url":"https://api.github.com/users/chrismo/orgs","repos_url":"https://api.github.com/users/chrismo/repos","events_url":"https://api.github.com/users/chrismo/events{/privacy}","received_events_url":"https://api.github.com/users/chrismo/received_events","type":"User","site_admin":false},"body":"A port of bundler-patch to bundler proper.\r\n\r\nCore team questions:\r\n- [x] bundler-patch also works in vulnerable gem updates based on ruby-advisory-db content. I presume the core team would consider this out of scope for Bundler proper? I probably would, and there's no reason bundler-patch couldn't continue to exist as a plugin with this behavior.\r\n- [x] \"resolves foo only to latest patch - changing dependency case\" - more comments on that spec. It's a weird edge case. Hopefully the specs and comments make it clear.\r\n- [x] Name of new class: GemVersionPromoter. It's gone through a few renames already and every option I think of I hate now :)\r\n- [x] The `--minimal` flag is also something bundler-patch has that has debatable value. Would love to hear opinions on it and could be easily swayed to remove it or keep it. If I'm on 1.0.1, and both 1.0.2 and 1.0.15 exist, `--minimal` will resolve to `1.0.2` instead of the latest `1.0.15`. Dunno if there's value in that.\r\n- [ ]  even without `--strict` mode, this code will _remove_ older versions from the options handed back to Molinillo (in `--patch` and `--minor` cases). This is a weird case, but I have seen `bundle update` proper regress a gem version backwards if its parent gem changed to an older dependency (I guess in a bug fix case). I'm ok with this, but it could be considered an inconsistency with the default `--major` case.\r\n- [ ] if we roll this out first as an undocumented feature, do we require a config option to toggle it on? We wouldn't have to have one, none of the new behavior will kick in until a new flag (`--patch` or `--minor`) is passed. ","created_at":"2016-06-16T22:36:47Z","updated_at":"2016-06-21T19:23:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f6d6078bba69e0d7c70c94a47fc7122e7e938e3a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/bundler/bundler/pulls/4676/commits","review_comments_url":"https://api.github.com/repos/bundler/bundler/pulls/4676/comments","review_comment_url":"https://api.github.com/repos/bundler/bundler/pulls/comments{/number}","comments_url":"https://api.github.com/repos/bundler/bundler/issues/4676/comments","statuses_url":"https://api.github.com/repos/bundler/bundler/statuses/180adde4bc3da4987fd8ce9dcc2dbbe3c5f54f67","head":{"label":"chrismo:conservative_updates","ref":"conservative_updates","sha":"180adde4bc3da4987fd8ce9dcc2dbbe3c5f54f67","user":{"login":"chrismo","id":8092,"avatar_url":"https://avatars.githubusercontent.com/u/8092?v=3","gravatar_id":"","url":"https://api.github.com/users/chrismo","html_url":"https://github.com/chrismo","followers_url":"https://api.github.com/users/chrismo/followers","following_url":"https://api.github.com/users/chrismo/following{/other_user}","gists_url":"https://api.github.com/users/chrismo/gists{/gist_id}","starred_url":"https://api.github.com/users/chrismo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrismo/subscriptions","organizations_url":"https://api.github.com/users/chrismo/orgs","repos_url":"https://api.github.com/users/chrismo/repos","events_url":"https://api.github.com/users/chrismo/events{/privacy}","received_events_url":"https://api.github.com/users/chrismo/received_events","type":"User","site_admin":false},"repo":{"id":59866798,"name":"bundler","full_name":"chrismo/bundler","owner":{"login":"chrismo","id":8092,"avatar_url":"https://avatars.githubusercontent.com/u/8092?v=3","gravatar_id":"","url":"https://api.github.com/users/chrismo","html_url":"https://github.com/chrismo","followers_url":"https://api.github.com/users/chrismo/followers","following_url":"https://api.github.com/users/chrismo/following{/other_user}","gists_url":"https://api.github.com/users/chrismo/gists{/gist_id}","starred_url":"https://api.github.com/users/chrismo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrismo/subscriptions","organizations_url":"https://api.github.com/users/chrismo/orgs","repos_url":"https://api.github.com/users/chrismo/repos","events_url":"https://api.github.com/users/chrismo/events{/privacy}","received_events_url":"https://api.github.com/users/chrismo/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/chrismo/bundler","description":"Manage your application's gem dependencies with less pain","fork":true,"url":"https://api.github.com/repos/chrismo/bundler","forks_url":"https://api.github.com/repos/chrismo/bundler/forks","keys_url":"https://api.github.com/repos/chrismo/bundler/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chrismo/bundler/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chrismo/bundler/teams","hooks_url":"https://api.github.com/repos/chrismo/bundler/hooks","issue_events_url":"https://api.github.com/repos/chrismo/bundler/issues/events{/number}","events_url":"https://api.github.com/repos/chrismo/bundler/events","assignees_url":"https://api.github.com/repos/chrismo/bundler/assignees{/user}","branches_url":"https://api.github.com/repos/chrismo/bundler/branches{/branch}","tags_url":"https://api.github.com/repos/chrismo/bundler/tags","blobs_url":"https://api.github.com/repos/chrismo/bundler/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chrismo/bundler/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chrismo/bundler/git/refs{/sha}","trees_url":"https://api.github.com/repos/chrismo/bundler/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chrismo/bundler/statuses/{sha}","languages_url":"https://api.github.com/repos/chrismo/bundler/languages","stargazers_url":"https://api.github.com/repos/chrismo/bundler/stargazers","contributors_url":"https://api.github.com/repos/chrismo/bundler/contributors","subscribers_url":"https://api.github.com/repos/chrismo/bundler/subscribers","subscription_url":"https://api.github.com/repos/chrismo/bundler/subscription","commits_url":"https://api.github.com/repos/chrismo/bundler/commits{/sha}","git_commits_url":"https://api.github.com/repos/chrismo/bundler/git/commits{/sha}","comments_url":"https://api.github.com/repos/chrismo/bundler/comments{/number}","issue_comment_url":"https://api.github.com/repos/chrismo/bundler/issues/comments{/number}","contents_url":"https://api.github.com/repos/chrismo/bundler/contents/{+path}","compare_url":"https://api.github.com/repos/chrismo/bundler/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chrismo/bundler/merges","archive_url":"https://api.github.com/repos/chrismo/bundler/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chrismo/bundler/downloads","issues_url":"https://api.github.com/repos/chrismo/bundler/issues{/number}","pulls_url":"https://api.github.com/repos/chrismo/bundler/pulls{/number}","milestones_url":"https://api.github.com/repos/chrismo/bundler/milestones{/number}","notifications_url":"https://api.github.com/repos/chrismo/bundler/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chrismo/bundler/labels{/name}","releases_url":"https://api.github.com/repos/chrismo/bundler/releases{/id}","deployments_url":"https://api.github.com/repos/chrismo/bundler/deployments","created_at":"2016-05-27T22:40:03Z","updated_at":"2016-05-27T22:40:08Z","pushed_at":"2016-06-21T16:59:35Z","git_url":"git://github.com/chrismo/bundler.git","ssh_url":"git@github.com:chrismo/bundler.git","clone_url":"https://github.com/chrismo/bundler.git","svn_url":"https://github.com/chrismo/bundler","homepage":"https://bundler.io","size":19876,"stargazers_count":0,"watchers_count":0,"language":"Ruby","has_issues":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"bundler:master","ref":"master","sha":"16c5f571895bb009cbb92895681a84432ab67b25","user":{"login":"bundler","id":1137638,"avatar_url":"https://avatars.githubusercontent.com/u/1137638?v=3","gravatar_id":"","url":"https://api.github.com/users/bundler","html_url":"https://github.com/bundler","followers_url":"https://api.github.com/users/bundler/followers","following_url":"https://api.github.com/users/bundler/following{/other_user}","gists_url":"https://api.github.com/users/bundler/gists{/gist_id}","starred_url":"https://api.github.com/users/bundler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bundler/subscriptions","organizations_url":"https://api.github.com/users/bundler/orgs","repos_url":"https://api.github.com/users/bundler/repos","events_url":"https://api.github.com/users/bundler/events{/privacy}","received_events_url":"https://api.github.com/users/bundler/received_events","type":"Organization","site_admin":false},"repo":{"id":488514,"name":"bundler","full_name":"bundler/bundler","owner":{"login":"bundler","id":1137638,"avatar_url":"https://avatars.githubusercontent.com/u/1137638?v=3","gravatar_id":"","url":"https://api.github.com/users/bundler","html_url":"https://github.com/bundler","followers_url":"https://api.github.com/users/bundler/followers","following_url":"https://api.github.com/users/bundler/following{/other_user}","gists_url":"https://api.github.com/users/bundler/gists{/gist_id}","starred_url":"https://api.github.com/users/bundler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bundler/subscriptions","organizations_url":"https://api.github.com/users/bundler/orgs","repos_url":"https://api.github.com/users/bundler/repos","events_url":"https://api.github.com/users/bundler/events{/privacy}","received_events_url":"https://api.github.com/users/bundler/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/bundler/bundler","description":"Manage your application's gem dependencies with less pain","fork":false,"url":"https://api.github.com/repos/bundler/bundler","forks_url":"https://api.github.com/repos/bundler/bundler/forks","keys_url":"https://api.github.com/repos/bundler/bundler/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bundler/bundler/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bundler/bundler/teams","hooks_url":"https://api.github.com/repos/bundler/bundler/hooks","issue_events_url":"https://api.github.com/repos/bundler/bundler/issues/events{/number}","events_url":"https://api.github.com/repos/bundler/bundler/events","assignees_url":"https://api.github.com/repos/bundler/bundler/assignees{/user}","branches_url":"https://api.github.com/repos/bundler/bundler/branches{/branch}","tags_url":"https://api.github.com/repos/bundler/bundler/tags","blobs_url":"https://api.github.com/repos/bundler/bundler/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bundler/bundler/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bundler/bundler/git/refs{/sha}","trees_url":"https://api.github.com/repos/bundler/bundler/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bundler/bundler/statuses/{sha}","languages_url":"https://api.github.com/repos/bundler/bundler/languages","stargazers_url":"https://api.github.com/repos/bundler/bundler/stargazers","contributors_url":"https://api.github.com/repos/bundler/bundler/contributors","subscribers_url":"https://api.github.com/repos/bundler/bundler/subscribers","subscription_url":"https://api.github.com/repos/bundler/bundler/subscription","commits_url":"https://api.github.com/repos/bundler/bundler/commits{/sha}","git_commits_url":"https://api.github.com/repos/bundler/bundler/git/commits{/sha}","comments_url":"https://api.github.com/repos/bundler/bundler/comments{/number}","issue_comment_url":"https://api.github.com/repos/bundler/bundler/issues/comments{/number}","contents_url":"https://api.github.com/repos/bundler/bundler/contents/{+path}","compare_url":"https://api.github.com/repos/bundler/bundler/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bundler/bundler/merges","archive_url":"https://api.github.com/repos/bundler/bundler/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bundler/bundler/downloads","issues_url":"https://api.github.com/repos/bundler/bundler/issues{/number}","pulls_url":"https://api.github.com/repos/bundler/bundler/pulls{/number}","milestones_url":"https://api.github.com/repos/bundler/bundler/milestones{/number}","notifications_url":"https://api.github.com/repos/bundler/bundler/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bundler/bundler/labels{/name}","releases_url":"https://api.github.com/repos/bundler/bundler/releases{/id}","deployments_url":"https://api.github.com/repos/bundler/bundler/deployments","created_at":"2010-01-26T00:46:38Z","updated_at":"2016-06-21T16:27:34Z","pushed_at":"2016-06-21T19:15:00Z","git_url":"git://github.com/bundler/bundler.git","ssh_url":"git@github.com:bundler/bundler.git","clone_url":"https://github.com/bundler/bundler.git","svn_url":"https://github.com/bundler/bundler","homepage":"https://bundler.io","size":27439,"stargazers_count":3391,"watchers_count":3391,"language":"Ruby","has_issues":true,"has_downloads":false,"has_wiki":false,"has_pages":true,"forks_count":1569,"mirror_url":null,"open_issues_count":165,"forks":1569,"open_issues":165,"watchers":3391,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/bundler/bundler/pulls/4676"},"html":{"href":"https://github.com/bundler/bundler/pull/4676"},"issue":{"href":"https://api.github.com/repos/bundler/bundler/issues/4676"},"comments":{"href":"https://api.github.com/repos/bundler/bundler/issues/4676/comments"},"review_comments":{"href":"https://api.github.com/repos/bundler/bundler/pulls/4676/comments"},"review_comment":{"href":"https://api.github.com/repos/bundler/bundler/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/bundler/bundler/pulls/4676/commits"},"statuses":{"href":"https://api.github.com/repos/bundler/bundler/statuses/180adde4bc3da4987fd8ce9dcc2dbbe3c5f54f67"}}}}
{"actor":{"display_login":"chrismo"}}