I’m pretty sure I already said that at least four or five time by now, but in your opam run-test: field:
Do not run tests that snapshot test cmdliner’s error messages and generated manuals. These outputs are not meant to be stable.
I had to constrain a few packages that compile fine with 2.0.0 only because their tests are failing which is silly (but necessary for the sanity of the volunteers managing the opam repository).
This does not apply only to cmdliner. In general be mindful about the nature of what you snapshot and what you put in the run-test: field of your packages.
Simple example: do not snapshot human error messages whose formatting is not under the control of your package – error messages are expected to improve and these improvements are usually expected not to break your package (unless you munge them for some reason).
And if you really want to do that, simply do not add such tests to what is supposed to assess that your package is working correctly. That is do not add them in the run-test: field of your opam package.