Max Reitz <mre...@redhat.com> writes: > On 22.03.2017 17:20, Markus Armbruster wrote: >> It's been a long journey, but here we are. >> >> The supported blockdev-add is not compatible to its experimental >> predecessors; bump all Since: tags to 2.9. >> >> x-blockdev-remove-medium, x-blockdev-insert-medium and >> x-blockdev-change need a bit more work, so leave them alone for now. >> >> Signed-off-by: Markus Armbruster <arm...@redhat.com> >> --- >> v2: >> * Another "command is considered experimental" comment dropped [Max] >> * More Since: tags updated to 2.9, commit message improved, R-bys dropped > > Do you want to do this recursively? There are things such as > BlkdebugSetStateOptions or ReplicationMode which are only used by the > corresponding BlockdevOptions*, so they too are basically only supported > as of 2.9.
Fixup appended. > I don't have a strong opinion, but I think I personally wouldn't bother > with any of these structures and just update the tag for blockdev-add > itself... Kevin, what about you? Since: tags on types are kind of redundant, as types become part of the public interface only via commands and events. The real Since: is the oldest command or event exposing it. But explaining that is too complicated. It's better to tell people to always add Since: tags. Now if the QAPI generators could tell them when to add and when not to add Since: tags... > You being fine with me would be enough to convince me, so: > > Reviewed-by: Max Reitz <mre...@redhat.com> Thanks! diff --git a/qapi/block-core.json b/qapi/block-core.json index bd39b3f..f938316 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -2053,7 +2053,7 @@ # @ignore: Ignore the request # @unmap: Forward as an unmap request # -# Since: 1.7 +# Since: 2.9 ## { 'enum': 'BlockdevDiscardOptions', 'data': [ 'ignore', 'unmap' ] } @@ -2082,7 +2082,7 @@ # @threads: Use qemu's thread pool # @native: Use native AIO backend (only Linux and Windows) # -# Since: 1.7 +# Since: 2.9 ## { 'enum': 'BlockdevAioOptions', 'data': [ 'threads', 'native' ] } @@ -2097,7 +2097,7 @@ # @no-flush: ignore any flush requests for the device (default: # false) # -# Since: 1.7 +# Since: 2.9 ## { 'struct': 'BlockdevCacheOptions', 'data': { '*direct': 'bool', @@ -2229,7 +2229,7 @@ # # @all: Perform all available overlap checks # -# Since: 2.2 +# Since: 2.9 ## { 'enum': 'Qcow2OverlapCheckMode', 'data': [ 'none', 'constant', 'cached', 'all' ] } @@ -2244,7 +2244,7 @@ # @template: Specifies a template mode which can be adjusted using the other # flags, defaults to 'cached' # -# Since: 2.2 +# Since: 2.9 ## { 'struct': 'Qcow2OverlapCheckFlags', 'data': { '*template': 'Qcow2OverlapCheckMode', @@ -2268,7 +2268,7 @@ # # @mode: named mode which chooses a specific set of flags # -# Since: 2.2 +# Since: 2.9 ## { 'alternate': 'Qcow2OverlapChecks', 'data': { 'flags': 'Qcow2OverlapCheckFlags', @@ -2349,7 +2349,7 @@ # # Trigger events supported by blkdebug. # -# Since: 2.0 +# Since: 2.9 ## { 'enum': 'BlkdebugEvent', 'prefix': 'BLKDBG', 'data': [ 'l1_update', 'l1_grow_alloc_table', 'l1_grow_write_table', @@ -2389,7 +2389,7 @@ # # @immediately: fail immediately; defaults to false # -# Since: 2.0 +# Since: 2.9 ## { 'struct': 'BlkdebugInjectErrorOptions', 'data': { 'event': 'BlkdebugEvent', @@ -2412,7 +2412,7 @@ # @new_state: the state identifier blkdebug is supposed to assume if # this event is triggered # -# Since: 2.0 +# Since: 2.9 ## { 'struct': 'BlkdebugSetStateOptions', 'data': { 'event': 'BlkdebugEvent', @@ -2468,7 +2468,7 @@ # # @fifo: read only from the first child that has not failed # -# Since: 2.2 +# Since: 2.9 ## { 'enum': 'QuorumReadPattern', 'data': [ 'quorum', 'fifo' ] } @@ -2674,7 +2674,7 @@ # # @secondary: Secondary mode, receive the vm's state from primary QEMU. # -# Since: 2.8 +# Since: 2.9 ## { 'enum' : 'ReplicationMode', 'data' : [ 'primary', 'secondary' ] } @@ -2703,7 +2703,7 @@ # # @inet: TCP transport # -# Since: 2.8 +# Since: 2.9 ## { 'enum': 'NFSTransport', 'data': [ 'inet' ] } @@ -2717,7 +2717,7 @@ # # @host: host address for NFS server # -# Since: 2.8 +# Since: 2.9 ## { 'struct': 'NFSServer', 'data': { 'type': 'NFSTransport',