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.