Issue #9960 has been updated by Yusuke Endoh.


> Prefer uppercase "V" for version, as small "v" is customarily user for --verbose.

I don't think the convention is common.  I investigated some compilers and interpreters:

-v users:

* ruby: -v, --version
* perl: -v, -version, --version
* lua: -v
* php: -v, --version
* guile: -v, --version
* gst: -v, -version, --version
* coffee: -v, -version, --version
* gforth: -v, -version, --version
* groovy: -v, -version, --version
* nodejs: -v, --version
* ocamlc: -v, -version, -vnum
* octave: -v, -version, --version
* pike: -v, --version, -version
* tcc: -v, -version

-V users:

* python: -V, --version
* gosh: -V
* iverilog: -V
* gawk: -V --version
* cobc: -V, -version, --version
* ghc: -V, --version
* icont: -V
* parrot: -V, --version

others that do not use -V nor -v:

* scala: -version
* valac: --version
* gcc: --version
* mcs: --version
* clisp: --version
* gfortran: --version
* javac: -version
* fpc: -iV
* R: --version

Especially, some GNU projects (guile, GNU Smalltalk, and gforth) use "V" for verbose, and "v" for version.

-- 
Yusuke Endoh <mame / ruby-lang.org>

----------------------------------------
Feature #9960: Add support for GNU --long options
https://bugs.ruby-lang.org/issues/9960#change-47313

* Author: Jari Aalto
* Status: Feedback
* Priority: Low
* Assignee: 
* Category: 
* Target version: 
----------------------------------------
Please consider adding GNU --long option equivalents. Notes:

* Prefer uppercase "V" for version, as small "v" is customarily user for --verbose.
* Change word "switches" into more commonly used "options" word in USAGE line. 

**SUGGESTIONS**

~~~
Usage: ruby [switches] [--] [programfile] [arguments]
  -0[octal]       specify record separator (\0, if no argument)

  -a, --autosplit
        autosplit mode with -n or -p (splits $_ into $F)

  -c, --check
        check syntax only

  -Cdirectory, --directory DIRECTORY
        cd to directory before executing your script

  -d, --debug
        set debugging flags (set $DEBUG to true)

  -e 'command', --eval
        one line of script. Several -e's allowed. Omit [programfile]

  -Eex[:in], --encoding [EXTERNAL:INTERNAL]       
        specify the default external and internal character encodings

  -Fpattern, --autosplit-pattern PATTERN
        split() pattern for autosplit (-a)

  -i[extension], --in-place [EXTENSION]
        edit ARGV files in place (make backup if extension supplied)

  -Idirectory, --include DIRECTORY
        specify $LOAD_PATH directory (may be used more than once)

  -l, --eol-processing
        enable line ending processing

  -n, --autoloop-noprint
        assume 'while gets(); ... end' loop around your script

  -p, --autoloop
        assume loop like -n but print line also like sed

  -rlibrary, --require LIBRARY
        require the library before executing your script

  -s, --switch-parse
        enable some switch parsing for switches after script name

  -S, --search-path
        look for the script using PATH environment variable

  -T[level=1], --taint [NUMBER]
        turn on tainting checks

  -V, --version
        print version number, then turn on verbose mode

  -w, --warning
        turn warnings on for your script

  -W[level=2], --warning-level [NUMBER]
        set warning level; 0=silence, 1=medium, 2=verbose

  -x[directory], --extract [DIRECTORY]
        strip off text before #!ruby line and perhaps cd to directory

  -h, --help
        show this message, --help for more info

~~~



-- 
https://bugs.ruby-lang.org/