Skip to content
This repository has been archived by the owner on Feb 12, 2022. It is now read-only.

Add plugins:command to track progress #1831

Merged
merged 5 commits into from
Dec 1, 2015
Merged

Conversation

ransombriggs
Copy link
Contributor

@dickeyxxx please review

@jdx
Copy link
Contributor

jdx commented Nov 20, 2015

lgtm, fyi @craigkerstiens @garyposter this is the output:

> ~/s/g/h/heroku:(heroku-plugins_commands) heroku plugins:commands
Command                            Type  Plugin
---------------------------------  ----  -----------------
2fa                                go
2fa:disable                        go
2fa:generate-recovery-codes        go
auth:login                         go
auth:token                         go
auth:whoami                        go
commands                           go
debug:errlog                       go
login                              go
plugins                            go
plugins:install                    go
plugins:link                       go
plugins:uninstall                  go
twofactor                          go
twofactor:disable                  go
twofactor:generate-recovery-codes  go
update                             go
version                            go
which                              go
_sudo                              node  heroku-sudo
addons                             node  heroku-cli-addons
addons:info                        node  heroku-cli-addons
addons:rename                      node  heroku-cli-addons
apps:info                          node  heroku-apps
blocked-domains                    node  heroku-sudo
blocked-ips                        node  heroku-sudo
blocked-ips:_remove                node  heroku-sudo
blocked-ips:add                    node  heroku-sudo
buildpacks                         node  heroku-apps
buildpacks:add                     node  heroku-apps
buildpacks:clear                   node  heroku-apps
buildpacks:remove                  node  heroku-apps
buildpacks:set                     node  heroku-apps
config                             node  heroku-apps
config:add                         node  heroku-apps
config:get                         node  heroku-apps
config:remove                      node  heroku-apps
config:set                         node  heroku-apps
config:unset                       node  heroku-apps
debug                              node  heroku-debug
fork                               node  heroku-fork
git:clone                          node  heroku-git
git:remote                         node  heroku-git
info                               node  heroku-apps
kernels:add                        node  heroku-sudo
limits                             node  heroku-sudo
limits:add                         node  heroku-sudo
limits:remove                      node  heroku-sudo
local:run                          node  heroku-local
local:start                        node  heroku-local
local:version                      node  heroku-local
logs                               node  heroku-run
maintenance                        node  heroku-apps
maintenance:off                    node  heroku-apps
maintenance:on                     node  heroku-apps
papertrail                         node  heroku-papertrail
preauth                            node  heroku-sudo
preauth:clear                      node  heroku-sudo
ps                                 node  heroku-apps
pt                                 node  heroku-papertrail
redis:cli                          node  heroku-redis
redis:credentials                  node  heroku-redis
redis:info                         node  heroku-redis
redis:maxmemory                    node  heroku-redis
redis:promote                      node  heroku-redis
redis:timeout                      node  heroku-redis
redis:wait                         node  heroku-redis
run                                node  heroku-run
run:detached                       node  heroku-run
slugs                              node  heroku-sudo
stack                              node  heroku-apps
stack:set                          node  heroku-apps
status                             node  heroku-status
user:info                          node  heroku-sudo
user:suspend                       node  heroku-sudo
user:unsuspend                     node  heroku-sudo
yubikeys                           node  heroku-sudo
yubikeys:add                       node  heroku-sudo
yubikeys:remove                    node  heroku-sudo
addons:attach                      ruby
addons:create                      ruby
addons:destroy                     ruby
addons:detach                      ruby
addons:docs                        ruby
addons:downgrade                   ruby
addons:open                        ruby
addons:plans                       ruby
addons:services                    ruby
addons:upgrade                     ruby
apps                               ruby
apps:create                        ruby
apps:destroy                       ruby
apps:downgrade                     ruby
apps:join                          ruby
apps:leave                         ruby
apps:lock                          ruby
apps:open                          ruby
apps:rename                        ruby
apps:suspend                       ruby
apps:sync                          ruby
apps:sync_implicits                ruby
apps:unlock                        ruby
apps:unsuspend                     ruby
apps:upgrade                       ruby
auth                               ruby
auth:logout                        ruby
blockeddomains                     ruby
blockeddomains:add                 ruby
blockeddomains:remove              ruby
blockedips                         ruby
blockedips:add                     ruby
blockedips:remove                  ruby
caps                               ruby
caps:add                           ruby
caps:remove                        ruby
certs                              ruby
certs:add                          ruby
certs:chain                        ruby
certs:dump                         ruby
certs:generate                     ruby
certs:info                         ruby
certs:key                          ruby
certs:remove                       ruby
certs:rollback                     ruby
certs:update                       ruby
clients:trust                      ruby
clients:update                     ruby
credits                            ruby
credits:add                        ruby
credits:remove                     ruby
domains                            ruby
domains:add                        ruby
domains:clear                      ruby
domains:remove                     ruby
drains                             ruby
drains:add                         ruby
drains:remove                      ruby
events                             ruby
extended:apps:info                 ruby
extended:labs                      ruby
extended:user:info                 ruby
features                           ruby
features:disable                   ruby
features:enable                    ruby
features:info                      ruby
help                               ruby
keys                               ruby
keys:add                           ruby
keys:clear                         ruby
keys:remove                        ruby
keys:search                        ruby
labs                               ruby
labs:create                        ruby
labs:destroy                       ruby
labs:disable                       ruby
labs:enable                        ruby
labs:info                          ruby
labs:update                        ruby
local                              ruby
logs:drains                        ruby
members                            ruby
members:add                        ruby
members:remove                     ruby
members:set                        ruby
orgs                               ruby
orgs:addflag                       ruby
orgs:create                        ruby
orgs:default                       ruby
orgs:destroy                       ruby
orgs:find                          ruby
orgs:flags                         ruby
orgs:info                          ruby
orgs:licenses                      ruby
orgs:open                          ruby
orgs:removeflag                    ruby
orgs:rename                        ruby
orgs:update                        ruby
pg                                 ruby
pg:backups                         ruby
pg:copy                            ruby
pg:credentials                     ruby
pg:diagnose                        ruby
pg:info                            ruby
pg:kill                            ruby
pg:killall                         ruby
pg:links                           ruby
pg:maintenance                     ruby
pg:promote                         ruby
pg:ps                              ruby
pg:psql                            ruby
pg:pull                            ruby
pg:push                            ruby
pg:reset                           ruby
pg:unfollow                        ruby
pg:upgrade                         ruby
pg:wait                            ruby
pgbackups                          ruby
pgbackups:capture                  ruby
pgbackups:destroy                  ruby
pgbackups:restore                  ruby
pgbackups:transfer                 ruby
pgbackups:url                      ruby
plugins:commands                   ruby
plugins:update                     ruby
ps:dynos                           ruby
ps:resize                          ruby
ps:restart                         ruby
ps:scale                           ruby
ps:stop                            ruby
ps:type                            ruby
ps:workers                         ruby
regions                            ruby
releases                           ruby
releases:info                      ruby
releases:new                       ruby
releases:rollback                  ruby
run:console                        ruby
run:rake                           ruby
sharing                            ruby
sharing:add                        ruby
sharing:remove                     ruby
sharing:transfer                   ruby
slugs:download                     ruby
slugs:publish                      ruby
slugs:upload                       ruby
sudo                               ruby
sudo:run                           ruby
sudoers:revoke                     ruby
sudoers:set                        ruby
update:beta                        ruby
user                               ruby
user:bounces                       ruby
user:disable_newsletter            ruby
user:enable_newsletter             ruby
user:human                         ruby
user:invalidate_password           ruby
user:mailer                        ruby
user:robot                         ruby
user:send_reset_password_email     ruby
user:send_signup_email             ruby
user:suspicious                    ruby
user:unbounce                      ruby
user:unsuspicious                  ruby
user:unverify                      ruby
user:verify                        ruby
============
% go: 0.08
% node: 0.24
% ruby: 0.68

@craigkerstiens
Copy link

Stepping back a bit, what are we hoping to accomplish with this, what's the problem we're trying to solve.

@jdx
Copy link
Contributor

jdx commented Nov 20, 2015

essentially how far long we are in converting commands from ruby so we can better estimate how long it will take to complete

@ransombriggs
Copy link
Contributor Author

This is a hidden command, basically to help guide a burndown list / measure process, it is not something we intend to support.

@jdx
Copy link
Contributor

jdx commented Nov 20, 2015

I think I'd rather see the list alphabetically by command rather than by language

@ransombriggs
Copy link
Contributor Author

@dickeyxxx sure thing, I should be able to do that during my Heroku Academy meeting

@craigkerstiens
Copy link

Is it possible for us to easily pipe this to a CSV? Would love to take a regular snapshot from this and track it in a google doc.

@ransombriggs
Copy link
Contributor Author

@craigkerstiens sure thing, will add this as a flag. Is having the percentages at the bottom a problem, or should that be at the top?

@jdx
Copy link
Contributor

jdx commented Nov 20, 2015

I don't think it matter so long as we export a parseable format

@craigkerstiens
Copy link

@ransombriggs I don't have a strong preference on one place or the other. In reality they're probably not as accurate a reflection of effort they show number of commands, but as we know they're not all created equal.

@jdx
Copy link
Contributor

jdx commented Nov 20, 2015

the accuracy might not be perfect either. I wonder if it isn't looking at default commands properly:

> ~ heroku which user
Command in npm package: heroku-sudo. https://www.npmjs.com/package/heroku-sudo
> ~ heroku which local
Command in npm package: heroku-local. https://www.npmjs.com/package/heroku-local

@ransombriggs
Copy link
Contributor Author

@dickeyxxx thanks, I will fix the default commands

@ransombriggs
Copy link
Contributor Author

-> % heroku plugins:commands
Command                            Type  Plugin
---------------------------------  ----  -----------------
2fa                                go    
2fa:disable                        go    
2fa:generate-recovery-codes        go    
addons                             node  heroku-cli-addons
addons:attach                      ruby  
addons:create                      ruby  
addons:destroy                     ruby  
addons:detach                      ruby  
addons:docs                        ruby  
addons:downgrade                   ruby  
addons:info                        node  heroku-cli-addons
addons:open                        ruby  
addons:plans                       ruby  
addons:rename                      node  heroku-cli-addons
addons:services                    ruby  
addons:upgrade                     ruby  
apps                               ruby  
apps:create                        ruby  
apps:destroy                       ruby  
apps:downgrade                     ruby  
apps:info                          node  heroku-apps
apps:join                          ruby  
apps:leave                         ruby  
apps:lock                          ruby  
apps:open                          ruby  
apps:rename                        ruby  
apps:unlock                        ruby  
apps:upgrade                       ruby  
auth                               go    
auth:login                         go    
auth:logout                        ruby  
auth:token                         go    
auth:whoami                        go    
buildpacks                         node  heroku-apps
buildpacks:add                     node  heroku-apps
buildpacks:clear                   node  heroku-apps
buildpacks:remove                  node  heroku-apps
buildpacks:set                     node  heroku-apps
certs                              ruby  
certs:add                          ruby  
certs:chain                        ruby  
certs:generate                     ruby  
certs:info                         ruby  
certs:key                          ruby  
certs:remove                       ruby  
certs:rollback                     ruby  
certs:update                       ruby  
commands                           go    
config                             node  heroku-apps
config:add                         node  heroku-apps
config:get                         node  heroku-apps
config:set                         node  heroku-apps
config:unset                       node  heroku-apps
debug:errlog                       go    
domains                            ruby  
domains:add                        ruby  
domains:clear                      ruby  
domains:remove                     ruby  
drains                             ruby  
drains:add                         ruby  
drains:remove                      ruby  
features                           ruby  
features:disable                   ruby  
features:enable                    ruby  
features:info                      ruby  
fork                               node  heroku-fork
git:clone                          node  heroku-git
git:remote                         node  heroku-git
help                               ruby  
info                               node  heroku-apps
keys                               ruby  
keys:add                           ruby  
keys:clear                         ruby  
keys:remove                        ruby  
labs                               ruby  
labs:disable                       ruby  
labs:enable                        ruby  
labs:info                          ruby  
local                              node  heroku-local
local:run                          node  heroku-local
local:start                        node  heroku-local
local:version                      node  heroku-local
login                              go    
logs                               ruby  
logs:drains                        ruby  
maintenance                        node  heroku-apps
maintenance:off                    node  heroku-apps
maintenance:on                     node  heroku-apps
members                            ruby  
members:add                        ruby  
members:remove                     ruby  
members:set                        ruby  
orgs                               ruby  
orgs:default                       ruby  
orgs:open                          ruby  
pg                                 ruby  
pg:backups                         ruby  
pg:copy                            ruby  
pg:credentials                     ruby  
pg:diagnose                        ruby  
pg:info                            ruby  
pg:kill                            ruby  
pg:killall                         ruby  
pg:links                           ruby  
pg:maintenance                     ruby  
pg:promote                         ruby  
pg:ps                              ruby  
pg:psql                            ruby  
pg:pull                            ruby  
pg:push                            ruby  
pg:reset                           ruby  
pg:unfollow                        ruby  
pg:upgrade                         ruby  
pg:wait                            ruby  
pgbackups                          ruby  
pgbackups:capture                  ruby  
pgbackups:destroy                  ruby  
pgbackups:restore                  ruby  
pgbackups:transfer                 ruby  
pgbackups:url                      ruby  
plugins                            go    
plugins:commands                   ruby  
plugins:install                    go    
plugins:link                       go    
plugins:uninstall                  go    
plugins:update                     ruby  
ps                                 node  heroku-apps
ps:dynos                           ruby  
ps:resize                          ruby  
ps:restart                         ruby  
ps:scale                           ruby  
ps:stop                            ruby  
ps:type                            ruby  
ps:workers                         ruby  
regions                            ruby  
releases                           ruby  
releases:info                      ruby  
releases:rollback                  ruby  
run                                node  heroku-run
run:console                        ruby  
run:detached                       ruby  
run:rake                           ruby  
sharing                            ruby  
sharing:add                        ruby  
sharing:remove                     ruby  
sharing:transfer                   ruby  
stack                              node  heroku-apps
stack:set                          node  heroku-apps
status                             node  heroku-status
twofactor                          go    
twofactor:disable                  go    
twofactor:generate-recovery-codes  go    
update                             go    
update:beta                        ruby  
version                            go    
which                              go    
============
% go: 0.13
% node: 0.19
% ruby: 0.68

@ransombriggs
Copy link
Contributor Author

-> % ./bin/heroku plugins:commands --csv
Command,Type,Plugin
2fa,go,
2fa:disable,go,
2fa:generate-recovery-codes,go,
addons,node,heroku-cli-addons
addons:attach,ruby,
addons:create,ruby,
addons:destroy,ruby,
addons:detach,ruby,
addons:docs,ruby,
addons:downgrade,ruby,
addons:info,node,heroku-cli-addons
addons:open,ruby,
addons:plans,ruby,
addons:rename,node,heroku-cli-addons
addons:services,ruby,
addons:upgrade,ruby,
apps,ruby,
apps:create,ruby,
apps:destroy,ruby,
apps:downgrade,ruby,
apps:info,node,heroku-apps
apps:join,ruby,
apps:leave,ruby,
apps:lock,ruby,
apps:open,ruby,
apps:rename,ruby,
apps:unlock,ruby,
apps:upgrade,ruby,
auth,go,
auth:login,go,
auth:logout,ruby,
auth:token,go,
auth:whoami,go,
buildpacks,node,heroku-apps
buildpacks:add,node,heroku-apps
buildpacks:clear,node,heroku-apps
buildpacks:remove,node,heroku-apps
buildpacks:set,node,heroku-apps
certs,ruby,
certs:add,ruby,
certs:chain,ruby,
certs:generate,ruby,
certs:info,ruby,
certs:key,ruby,
certs:remove,ruby,
certs:rollback,ruby,
certs:update,ruby,
commands,go,
config,node,heroku-apps
config:add,node,heroku-apps
config:get,node,heroku-apps
config:set,node,heroku-apps
config:unset,node,heroku-apps
debug:errlog,go,
domains,ruby,
domains:add,ruby,
domains:clear,ruby,
domains:remove,ruby,
drains,ruby,
drains:add,ruby,
drains:remove,ruby,
features,ruby,
features:disable,ruby,
features:enable,ruby,
features:info,ruby,
fork,node,heroku-fork
git:clone,node,heroku-git
git:remote,node,heroku-git
help,ruby,
info,node,heroku-apps
keys,ruby,
keys:add,ruby,
keys:clear,ruby,
keys:remove,ruby,
labs,ruby,
labs:disable,ruby,
labs:enable,ruby,
labs:info,ruby,
local,node,heroku-local
local:run,node,heroku-local
local:start,node,heroku-local
local:version,node,heroku-local
login,go,
logs,ruby,
logs:drains,ruby,
maintenance,node,heroku-apps
maintenance:off,node,heroku-apps
maintenance:on,node,heroku-apps
members,ruby,
members:add,ruby,
members:remove,ruby,
members:set,ruby,
orgs,ruby,
orgs:default,ruby,
orgs:open,ruby,
pg,ruby,
pg:backups,ruby,
pg:copy,ruby,
pg:credentials,ruby,
pg:diagnose,ruby,
pg:info,ruby,
pg:kill,ruby,
pg:killall,ruby,
pg:links,ruby,
pg:maintenance,ruby,
pg:promote,ruby,
pg:ps,ruby,
pg:psql,ruby,
pg:pull,ruby,
pg:push,ruby,
pg:reset,ruby,
pg:unfollow,ruby,
pg:upgrade,ruby,
pg:wait,ruby,
pgbackups,ruby,
pgbackups:capture,ruby,
pgbackups:destroy,ruby,
pgbackups:restore,ruby,
pgbackups:transfer,ruby,
pgbackups:url,ruby,
plugins,go,
plugins:commands,ruby,
plugins:install,go,
plugins:link,go,
plugins:uninstall,go,
plugins:update,ruby,
ps,node,heroku-apps
ps:dynos,ruby,
ps:resize,ruby,
ps:restart,ruby,
ps:scale,ruby,
ps:stop,ruby,
ps:type,ruby,
ps:workers,ruby,
regions,ruby,
releases,ruby,
releases:info,ruby,
releases:rollback,ruby,
run,node,heroku-run
run:console,ruby,
run:detached,ruby,
run:rake,ruby,
sharing,ruby,
sharing:add,ruby,
sharing:remove,ruby,
sharing:transfer,ruby,
stack,node,heroku-apps
stack:set,node,heroku-apps
status,node,heroku-status
twofactor,go,
twofactor:disable,go,
twofactor:generate-recovery-codes,go,
update,go,
update:beta,ruby,
version,go,
which,go,

Type,Percentage
go,0.13
node,0.19
ruby,0.68

@ransombriggs
Copy link
Contributor Author

I posted the updated output formatting, as well as an example of the CSV output

@dickeyxxx Could you check the order and the default commands?

@craigkerstiens I added a csv flag so you can import easily, does this format work for you?

@jdx
Copy link
Contributor

jdx commented Nov 20, 2015

you probably shouldn't show the percentages with the csv output, that makes it not parseable. Also I think I'd rather see counts than percentages.

@ransombriggs
Copy link
Contributor Author

@dickeyxxx I went ahead and changed the percentages to counts

Type  Count
----  -----
go    20
node  30
ruby  106

and

Type,Count
go,20
node,30
ruby,106

ransombriggs pushed a commit that referenced this pull request Dec 1, 2015
Add plugins:command to track progress
@ransombriggs ransombriggs merged commit 2778a51 into master Dec 1, 2015
@ransombriggs ransombriggs deleted the plugins_commands branch December 1, 2015 20:57
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants