[Rubygems-developers] Suggestions regarding new CLI
gsinclair at soyabean.com.au
Sun Jun 20 04:17:12 EDT 2004
I'm playing with gem2 currently and have some observations and
suggestions. (I'm writing 'gem' instead of 'gem2'.)
1. The output of 'gem --help' is rather busy. I recommend this instead
(indented only for clarity here):
gem <command> [options]
gem install -n log4r
gem install -n log4r --version '> 1.0.5'
gem query -n log
gem build -n example.gemspec
gem --help install etc. (help on specific command)
gem --help-commands (list all commands)
gem --help-options (help on common options)
gem --help-examples (many examples of usage)
2. 'gem --version' should work like a normal command line app. My
preference is to do what --rubygems-info does currently.
Oops, it does work, but it's not documented anywhere, and it
doesn't return anything useful. At the moment, it displays
3. 'gem install log4r' is far preferable to 'gem install -n log4r'.
The same goes for all or nearly all other commands. In cases like
this, 'log4r' is not an *option*, it's part of the command.
4. 'gem -h' does not work.
5. The options --force, --gen-rdoc, and --test should accept inverses
(as in --no-force, etc.). Currently --install-stub and
--no-install-stub are separate commands, rather than two sides of
the same one.
6. Since --run-tests has been abbreviated to --test, --gen-rdoc could
7. I think --search and --list were a useful pair and it's a shame to
see them collapsed into 'query'. I commonly ask for all gems
starting with a particular letter, and it's not obvious that I
should use a regular expression to achieve this. Nor is it
8. This appears in the output for 'gem --help uninstall':
-v, --version VERSION Specify version of gem to install
Note the typo. I don't know whether this is merely superficial.
9. Commands should be able to be abbreviated. This can be either by
specifying abbreviations like CVS does (e.g. commit -> ci), or by
allowing unambiguous commands (q, qu, que all resolve to query).
Most importantly, I think gem2 should not replace gem (and therefore
should not be released) until these things are sorted out and the
proper documentation (on the wiki) is in place.
When this new UI is released, I'm guessing it will be version 0.7.
Until then, we should just release 0.6.2 etc. containing the bug
More information about the Rubygems-developers