Unix programs these days typically follow the GNU conventions for command line arguments. We deviate from them in two ways:
Have short arguments with more than one character (e.g. -cp in sorcha run). This is ambiguous with shortening -c -p as -cp (see the second bullet here), and makes argparse disable this feature entirely.
Have long arguments with underscores (_). This goes against GNU conventions (quote: "Long options consist of -- followed by a name made of alphanumeric characters and dashes."), but more importantly it makes our code feel a bit unnatural (very Java-ish). E.g., run git add --help or ls --help (on linux) to see the difference.
I propose we fix this now, before the cmdline API is frozen for v1.0 -- it will be very hard (impossible) to change later. The fix is easy (I'm volunteering to do it).
Unix programs these days typically follow the GNU conventions for command line arguments. We deviate from them in two ways:
-cp
insorcha run
). This is ambiguous with shortening-c -p
as-cp
(see the second bullet here), and makesargparse
disable this feature entirely._
). This goes against GNU conventions (quote: "Long options consist of -- followed by a name made of alphanumeric characters and dashes."), but more importantly it makes our code feel a bit unnatural (very Java-ish). E.g., rungit add --help
orls --help
(on linux) to see the difference.I propose we fix this now, before the cmdline API is frozen for v1.0 -- it will be very hard (impossible) to change later. The fix is easy (I'm volunteering to do it).