On Tue, Mar 23, 2021 at 14:50:09 +0100, Michal Privoznik wrote:
On 3/23/21 2:42 PM, Daniel P. Berrangé wrote:
> On Tue, Mar 23, 2021 at 02:36:19PM +0100, Michal Privoznik wrote:
> > On 3/22/21 5:09 PM, Tim Wiederhake wrote:
> > > virsh has several arguments that are better not used. This series
introduces
> > > a formal way of marking them as deprecated.
> >
> > Commit messages are rather sparse. What we currently have is hiding options
> > we deem obsolete from users and replacing them with better ones (just :Ggrep
> > VSH_OT_ALIAS). No error message, no warning. What makes these you picked
> > special? I'm not against reporting that an option is obsolete, but I
don't
> > quite understand why we need a different way for obsoleting those three.
>
> Also the general idea of deprecation is that the thing will be deleted
> eventually, which is not something we intended to do with these options.
> Basically there's a better way to do these things, but we're not going
> to break existing usage, so if users are happy with what they're doing
> they don't need to change.
>
To be fair we never promised virsh to be stable, did we? We are trying to
I'd say we do, at least for the reasonably machine-usable interfaces
(for output [1]), thus any input options should be treated as such.
keep it as backwards compatible as we can (and so far I guess we
didn't have
a single instance of bad example), but I wouldn't mind telling users (esp.
in interactive mode) that --optionX is now called --optionY.
Well, that's what we do with the alias and documentation changes. But
removing --optionX completely would be wrong:
- It needlessly breaks scripts
- If you decide to print a deprecation warning, the code usually won't
be much simpler.
- most cases are covered by use of _ALIAS to a better name
The only thing that IMO should be removed but I didn't for compatibility
is the 'secret-set-value's 'base64' parameter as that is insecure. There
isn't a compatible replacement though.
[1] Table outputs and other clearly human-targetted output may obviously
break, but for many of the output cases we provide machine-friendly
variants, such as '--uuid'/'--name' for listing APIs.