heroku / legacy-cli

Heroku CLI
https://cli.heroku.com
MIT License
1.37k stars 380 forks source link

feature request: plugin version accounting #443

Open mmcgrana opened 12 years ago

mmcgrana commented 12 years ago

When working with fast-moving plugins it is useful to have transparency into the version of the plugin you're working with or upgrading to. For example, imagine you hit an issue with a plugin. You will want to check the current version, use heroku plugins:upgrade and see what version you landed at, then be perhaps be able to include a programmatically-generation version string for the plugin in a bug report (similar to how we add heroku version output for main client bugs now).

One possible way to meet this need is "version" accounting for plugins:

$ heroku plugins:version heroku-extension
faaa58cf

$ heroku plugins:update heroku-extension
Updating heroku-extension... done, updated to 64266e70

$ heroku plugins:version heroku-extension
64266e70

Perhaps even for error reports:

Error:       A non-blocking socket operation could not be completed immediately. (Excon::Errors::SocketError)
Backtrace:   C:/Program Files (x86)/ruby-1.9.3/lib/ruby/1.9.1/openssl/buffering.rb:36:in `sysread'
             C:/Program Files (x86)/ruby-1.9.3/lib/ruby/1.9.1/openssl/buffering.rb:36:in `sysread'
             C:/Program Files (x86)/ruby-1.9.3/lib/ruby/1.9.1/openssl/buffering.rb:36:in `fill_rbuff'
             C:/Program Files (x86)/ruby-1.9.3/lib/ruby/1.9.1/openssl/buffering.rb:215:in `eof?'
             C:/Program Files (x86)/ruby-1.9.3/lib/ruby/1.9.1/openssl/buffering.rb:190:in `readline'
             C:/Program Files (x86)/Heroku/vendor/gems/excon-0.14.2/lib/excon/ssl_socket.rb:68:in `initialize'
             C:/Program Files (x86)/Heroku/vendor/gems/excon-0.14.2/lib/excon/connection.rb:344:in `new'
             C:/Program Files (x86)/Heroku/vendor/gems/excon-0.14.2/lib/excon/connection.rb:344:in `socket'
             C:/Program Files (x86)/Heroku/vendor/gems/excon-0.14.2/lib/excon/connection.rb:175:in `request_kernel'
             C:/Program Files (x86)/Heroku/vendor/gems/excon-0.14.2/lib/excon/connection.rb:101:in `request'
             C:/Program Files (x86)/Heroku/vendor/gems/heroku-api-0.2.6/lib/heroku/api.rb:60:in `request'
             C:/Program Files (x86)/Heroku/vendor/gems/heroku-api-0.2.6/lib/heroku/api/login.rb:9:in `post_login'
             C:/Program Files (x86)/Heroku/lib/heroku/auth.rb:76:in `api_key'
             C:/Program Files (x86)/Heroku/lib/heroku/auth.rb:185:in `ask_for_credentials'
             C:/Program Files (x86)/Heroku/lib/heroku/auth.rb:217:in `ask_for_and_save_credentials'
             C:/Program Files (x86)/Heroku/lib/heroku/auth.rb:80:in `get_credentials'
             C:/Program Files (x86)/Heroku/lib/heroku/auth.rb:41:in `login'
             C:/Program Files (x86)/Heroku/lib/heroku/command/auth.rb:22:in `login'
             C:/Program Files (x86)/Heroku/lib/heroku/command.rb:178:in `run'
             C:/Program Files (x86)/Heroku/lib/heroku/cli.rb:19:in `start'
             C:/Program Files (x86)/Heroku/bin/heroku:25:in `<main>'

Command:     heroku login
HTTP Proxy:  http://proxy:8080
Version:     heroku-toolbelt/2.28.8 (i386-mingw32) ruby/1.9.2
Plugins:     heroku-anvil        89d77d1c
             heroku-simulations  baee441f
             manager-cli         6b7fc01c

Just a thought. I'm not sure how this might interact with longer-term plans for plugin interfacing / versioning / distribution.

geemus commented 12 years ago

I dream of explicit versions/releases in some way/shape/form. For now I've at least added the plugins to the nicer error messaging, which should be helpful. No versions listings just yet. I think what you have described could be helpful but I want to stew on it a bit longer (and in any event isn't the highest priority for me at the moment).