opam
opam copied to clipboard
Add an admin command to compare 2 package versions
Add a new CLI opam admin compare-versions
to compare package versions for sanity checks.
This command has 2 modes:
- By default - user interactive.
In this mode, we provide two versions, and opam outputs a user-friendly expression with the result of the comparison, spelled out. For example:
$ opam admin compare-versions 0.0.9 0.0.10
0.0.9 < 0.0.10
The command exits 0 regardless of the result of the comparison.
- For use in scripts - if needed. Adding the argument
--assert=OP
.
In this mode, the output is suppressed (the command is silent). The result of the command will be encoded in the exit code, to be used in bash conditionals:
exit 0: the comparison holds exit 1: it doesn't
For example:
$ opam admin compare-versions 0.0.9 0.0.10 --assert='<'
[0]
$ opam admin compare-versions 0.0.9 0.0.10 --assert='>='
[1]
Original notes
This is meant for quick sanity checks for example.
-
Added some basic tests to cover the command. The tests I added do not duplicate the tests for the actual comparison function, rather that meant to cover the basic cases encountered by the command.
-
[x] Please update
master_changes.md
file with your changes.
This is following a discussion with @kit-ty-kate in #6118.
Note to reviewers:
I wasn't too sure where to expose the new command. It's not really an admin command, but I couldn't find another suitable section.
This is my first PR on opam and I am not familiar with the code base, as well as some dependencies (e.g. cmdliner). Please feel free to request for as many changes as you like. Thank you!