{"action":"created","issue":{"url":"https://api.github.com/repos/elastic/logstash/issues/3744","labels_url":"https://api.github.com/repos/elastic/logstash/issues/3744/labels{/name}","comments_url":"https://api.github.com/repos/elastic/logstash/issues/3744/comments","events_url":"https://api.github.com/repos/elastic/logstash/issues/3744/events","html_url":"https://github.com/elastic/logstash/issues/3744","id":101468517,"number":3744,"title":"refactor LogStash::PluginManager::Update#validate_major_version","user":{"login":"colinsurprenant","id":2010,"avatar_url":"https://avatars.githubusercontent.com/u/2010?v=3","gravatar_id":"","url":"https://api.github.com/users/colinsurprenant","html_url":"https://github.com/colinsurprenant","followers_url":"https://api.github.com/users/colinsurprenant/followers","following_url":"https://api.github.com/users/colinsurprenant/following{/other_user}","gists_url":"https://api.github.com/users/colinsurprenant/gists{/gist_id}","starred_url":"https://api.github.com/users/colinsurprenant/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colinsurprenant/subscriptions","organizations_url":"https://api.github.com/users/colinsurprenant/orgs","repos_url":"https://api.github.com/users/colinsurprenant/repos","events_url":"https://api.github.com/users/colinsurprenant/events{/privacy}","received_events_url":"https://api.github.com/users/colinsurprenant/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/elastic/logstash/labels/internal-cleanup","name":"internal-cleanup","color":"c7def8"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-08-17T17:21:47Z","updated_at":"2015-08-18T15:44:57Z","closed_at":null,"body":"this method https://github.com/elastic/logstash/blob/028d76497ccef3a8d11a3528cdf6b99e8d10f070/lib/pluginmanager/update.rb#L70-L80 introduced by PR #3423 has a few issues:\r\n\r\n- this method, like all other \"lower level\" methods which directly interact with Rubygems should be in the `util.rb` module. \r\n- we should avoid, as much as possible, lazy require calls. \r\n- I don't think we have prior-art for introducing an interactive Y/N in the logstash UI and I don't think this has been properly discussed in terms of strategy. what about automated updates? did we consider instead to introduce something like a `--force` options? \r\n- the `validate_major_version` method name is confusing, you actually have to read the code to understand it. "},"comment":{"url":"https://api.github.com/repos/elastic/logstash/issues/comments/132254842","html_url":"https://github.com/elastic/logstash/issues/3744#issuecomment-132254842","issue_url":"https://api.github.com/repos/elastic/logstash/issues/3744","id":132254842,"user":{"login":"colinsurprenant","id":2010,"avatar_url":"https://avatars.githubusercontent.com/u/2010?v=3","gravatar_id":"","url":"https://api.github.com/users/colinsurprenant","html_url":"https://github.com/colinsurprenant","followers_url":"https://api.github.com/users/colinsurprenant/followers","following_url":"https://api.github.com/users/colinsurprenant/following{/other_user}","gists_url":"https://api.github.com/users/colinsurprenant/gists{/gist_id}","starred_url":"https://api.github.com/users/colinsurprenant/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/colinsurprenant/subscriptions","organizations_url":"https://api.github.com/users/colinsurprenant/orgs","repos_url":"https://api.github.com/users/colinsurprenant/repos","events_url":"https://api.github.com/users/colinsurprenant/events{/privacy}","received_events_url":"https://api.github.com/users/colinsurprenant/received_events","type":"User","site_admin":false},"created_at":"2015-08-18T15:44:57Z","updated_at":"2015-08-18T15:44:57Z","body":"we should first make sure we do want to introduce interactive prompts in logstash (actually in the plugin manager) and if so provide a way to skip it. personally I'd prefer **not** to have interactive prompts and instead simply abort the process with the error and provide a way to force-update/skip the version validation. "}}