Thomas Huth <thuth(a)redhat.com> writes:
On 10.07.2018 17:24, Peter Krempa wrote:
> On Tue, Jul 10, 2018 at 17:01:22 +0200, Cornelia Huck wrote:
>> On Tue, 10 Jul 2018 16:39:31 +0200
>> Peter Krempa <pkrempa(a)redhat.com> wrote:
>>> On Tue, Jul 10, 2018 at 16:22:08 +0200, Cornelia Huck wrote:
>>>> On Tue, 10 Jul 2018 07:59:15 +0200
>>>> Markus Armbruster <armbru(a)redhat.com> wrote:
>
> [...]
>
>>>> "ERROR: 'old_option' is deprecated and will be removed; use
'modern_option' instead"
>>>>
>>>> and do an exit(1).
>>>>
>>>> Would that be workable?
>>>
>>> For delivering the warnings via monitor you'll need a store that will
>>> collect all the warnings and prepare them for delivery. You've got
>>> basically two options:
>>>
>>> 1) monitor command to poll for deprecated options
>>> 2) event with deprecated options
>>>
>>> Both require storing them since libvirt connects to the monitor only
>>> after the command line is processed.
>>>
>>> Warnings printed to stderr are nearly useless because until something
>>> breaks nobody bothers to read the log files.
>>
>> So, from that I gather that a hard failure would be the easiest for
>> libvirt to detect (and everything else would become complicated really
>> quickly), right?
>
> People start complaining only when stuff breaks. If anything is optional
> people will usually not enable it. That makes any non-mandatory option
> not work in most cases.
So would it help if we "invert" the logic, i.e. deprecated_report()
would do exit(1) by default? Then, if the (human) users still want to
continue with the deprecated option, they have to add a
"--ignore-deprecation" command line switch to make QEMU start
successfully...
You owe the God of Backward Compatibility one rubber chicken for
thinking this heretic thought!