From patchwork Tue Mar 4 07:21:13 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Markus Armbruster X-Patchwork-Id: 14000144 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 16F85C021B8 for ; Tue, 4 Mar 2025 08:01:47 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpNCs-0001EX-AO; Tue, 04 Mar 2025 03:00:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpNBf-00009k-FG for qemu-devel@nongnu.org; Tue, 04 Mar 2025 02:59:39 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpNBU-0003H5-CI for qemu-devel@nongnu.org; Tue, 04 Mar 2025 02:59:30 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1741075162; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-to: resent-from:resent-message-id:in-reply-to:in-reply-to: references:references; bh=0hojsqr1mliEcFxxn6q69rS2Om4P70YoeoZzTwtq1pY=; b=ZvZxH9fnisCnjBLfOmBHjeJcpoi8fKqZ6PVvjmRtAPK6vXiL0JEFiEBa3XYYjWZp+1655Z isN+VguYvpaObqwm+4Otdb5C5TzWAx/EF61wQgSyEYr/yAfAlYLMF614cn49plosAvgyXP NALV33nJz4WQC0uLcDgAAi7FVJ4jFlY= Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-253-U2sa28p_O_WEeBI83GlEag-1; Tue, 04 Mar 2025 02:59:20 -0500 X-MC-Unique: U2sa28p_O_WEeBI83GlEag-1 X-Mimecast-MFC-AGG-ID: U2sa28p_O_WEeBI83GlEag_1741075160 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.40]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 2892F180087B for ; Tue, 4 Mar 2025 07:59:20 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.45.242.15]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id D355719560AF for ; Tue, 4 Mar 2025 07:59:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 3783421E66C3; Tue, 04 Mar 2025 08:59:17 +0100 (CET) Resent-To: qemu-devel@nongnu.org Resent-From: Markus Armbruster Resent-Date: Tue, 04 Mar 2025 08:59:17 +0100 Resent-Message-ID: <87cyexw7je.fsf@pond.sub.org> X-From-Line: armbru@redhat.com Tue Mar 4 08:43:47 2025 Received: from imap.gmail.com ([2a00:1450:4025:402::6d]:993) by dusky.pond.sub.org with IMAP4-SSL getmail6 msgid:11/315748; 04 Mar 2025 07:43:47 -0000 Received: from blackfin.pond.sub.org (p4fd0400e.dip0.t-ipconnect.de. [79.208.64.14]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43b737074d8sm187289425e9.16.2025.03.03.23.21.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 23:21:17 -0800 (PST) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 5180D21E66C3; Tue, 04 Mar 2025 08:21:17 +0100 (CET) From: Markus Armbruster To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, Roman Penyaev , =?utf-8?q?Marc?= =?utf-8?q?-Andr=C3=A9_Lureau?= Subject: [PULL v2 1/5] qapi/char.json: minor doc rewording for `hub` device Date: Tue, 4 Mar 2025 08:21:13 +0100 Message-ID: <20250304072117.894134-2-armbru@redhat.com> In-Reply-To: <20250304072117.894134-1-armbru@redhat.com> References: <20250304072117.894134-1-armbru@redhat.com> MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: [Gmail]/All Mail X-GMAIL-LABELS: "\\Sent" X-GMAIL-THRID: 1825647234722748545 X-GMAIL-MSGID: 1825647234722748545 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=-1, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Roman Penyaev Refine documentation for the hub device, specify the maximum. Signed-off-by: Roman Penyaev Cc: Marc-André Lureau Cc: Markus Armbruster Cc: qemu-devel@nongnu.org Message-ID: <20250219090607.559887-1-r.peniaev@gmail.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- qapi/char.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qapi/char.json b/qapi/char.json index f02b66c06b..dde2f9538f 100644 --- a/qapi/char.json +++ b/qapi/char.json @@ -337,7 +337,7 @@ # # Configuration info for hub chardevs. # -# @chardevs: List of chardev IDs, which should be added to this hub +# @chardevs: IDs to be added to this hub (maximum 4 devices). # # Since: 10.0 ## From patchwork Tue Mar 4 07:21:14 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Armbruster X-Patchwork-Id: 14000136 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A27D2C021B8 for ; Tue, 4 Mar 2025 07:59:55 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpNBq-0000Bf-VK; Tue, 04 Mar 2025 02:59:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpNBW-00006g-Me for qemu-devel@nongnu.org; Tue, 04 Mar 2025 02:59:27 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpNBU-0003H1-Bt for qemu-devel@nongnu.org; Tue, 04 Mar 2025 02:59:25 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1741075162; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-to: resent-from:resent-message-id:in-reply-to:in-reply-to: references:references; bh=SG8udyNgcXPK4khZdpXuLvQKpbrngN6G82L4C6A6YgM=; b=IilfKwp6feg4B2VBhOFJ5+LXJWQrvLeh62m464phvVCOBk39T6ncRnnmB8Bbt5NtkfbIud p5V95c71k5ZIL/QRKwBB+Zex15GaC3t/fnDX0SEexfr1szJTnBFp5DdNWJmLYujcYaqJjU HPzhABHsnd2ZD0Ng0usk38NIkKS7L2g= Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-684-DuNRvjDbOl2XvWHBoVRN6A-1; Tue, 04 Mar 2025 02:59:21 -0500 X-MC-Unique: DuNRvjDbOl2XvWHBoVRN6A-1 X-Mimecast-MFC-AGG-ID: DuNRvjDbOl2XvWHBoVRN6A_1741075160 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1828619137AE for ; Tue, 4 Mar 2025 07:59:20 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.45.242.15]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id C2EBF180087B for ; Tue, 4 Mar 2025 07:59:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 3DF6B21E66AB; Tue, 04 Mar 2025 08:59:17 +0100 (CET) Resent-To: qemu-devel@nongnu.org Resent-From: Markus Armbruster Resent-Date: Tue, 04 Mar 2025 08:59:17 +0100 Resent-Message-ID: <878qplw7je.fsf@pond.sub.org> X-From-Line: armbru@redhat.com Tue Mar 4 08:43:47 2025 Received: from imap.gmail.com ([2a00:1450:4025:402::6d]:993) by dusky.pond.sub.org with IMAP4-SSL getmail6 msgid:11/315749; 04 Mar 2025 07:43:47 -0000 Received: from blackfin.pond.sub.org (p200300d36f33fd00dda5bc774eb05696.dip0.t-ipconnect.de. [2003:d3:6f33:fd00:dda5:bc77:4eb0:5696]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e47a7a2asm16895541f8f.37.2025.03.03.23.21.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 23:21:17 -0800 (PST) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 560BE21E66AB; Tue, 04 Mar 2025 08:21:17 +0100 (CET) From: Markus Armbruster To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, John Snow Subject: [PULL v2 2/5] qapi: update pylintrc config Date: Tue, 4 Mar 2025 08:21:14 +0100 Message-ID: <20250304072117.894134-3-armbru@redhat.com> In-Reply-To: <20250304072117.894134-1-armbru@redhat.com> References: <20250304072117.894134-1-armbru@redhat.com> MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: [Gmail]/All Mail X-GMAIL-LABELS: "\\Sent" X-GMAIL-THRID: 1825647234672510546 X-GMAIL-MSGID: 1825647234672510546 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: John Snow If you've got a newer pylint, it'll whine about positional arguments separately from the regular ones. Update the configuration to ignore both categories of warning. Signed-off-by: John Snow Message-ID: <20250224033741.222749-2-jsnow@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- scripts/qapi/pylintrc | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/qapi/pylintrc b/scripts/qapi/pylintrc index c028a1f9f5..d24eece741 100644 --- a/scripts/qapi/pylintrc +++ b/scripts/qapi/pylintrc @@ -17,6 +17,7 @@ disable=consider-using-f-string, too-many-arguments, too-many-branches, too-many-instance-attributes, + too-many-positional-arguments, too-many-statements, useless-option-value, From patchwork Tue Mar 4 07:21:15 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Armbruster X-Patchwork-Id: 14000143 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8CA6EC282D0 for ; Tue, 4 Mar 2025 08:01:22 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpNCs-0001Fn-Qs; Tue, 04 Mar 2025 03:00:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpNBZ-00008M-OT for qemu-devel@nongnu.org; Tue, 04 Mar 2025 02:59:30 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpNBX-0003HU-J4 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 02:59:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1741075167; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-to: resent-from:resent-message-id:in-reply-to:in-reply-to: references:references; bh=+sEz+qKlhBfhwTwh2XVESCntzWnD9G5DdJ/8arWYldE=; b=ahqmqvgRrqOn6UYmkvPkysA1SZ8R+TXH4qM1/ipfa/P3ka95pJIZpvr+wPeKPaa78R7E61 X0C96HASS8FR03YOgiVpQPigUX7dK4gix18uXTtHyZ3aEpS3Q7KrdvSGXJ3xqwY0RSffNx HGsDAhfimm10ko/DT7wWqTIunZcTSU4= Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-684-AR8dOX0kPfygZbQJzxmBYg-1; Tue, 04 Mar 2025 02:59:20 -0500 X-MC-Unique: AR8dOX0kPfygZbQJzxmBYg-1 X-Mimecast-MFC-AGG-ID: AR8dOX0kPfygZbQJzxmBYg_1741075160 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 107571801A15 for ; Tue, 4 Mar 2025 07:59:20 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.45.242.15]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id BE86B180035F for ; Tue, 4 Mar 2025 07:59:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 44B3E21E66BB; Tue, 04 Mar 2025 08:59:17 +0100 (CET) Resent-To: qemu-devel@nongnu.org Resent-From: Markus Armbruster Resent-Date: Tue, 04 Mar 2025 08:59:17 +0100 Resent-Message-ID: <874j09w7je.fsf@pond.sub.org> X-From-Line: armbru@redhat.com Tue Mar 4 08:43:48 2025 Received: from imap.gmail.com ([2a00:1450:4025:402::6d]:993) by dusky.pond.sub.org with IMAP4-SSL getmail6 msgid:11/315750; 04 Mar 2025 07:43:48 -0000 Received: from blackfin.pond.sub.org (p200300d36f33fd00dda5bc774eb05696.dip0.t-ipconnect.de. [2003:d3:6f33:fd00:dda5:bc77:4eb0:5696]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e485df5asm16957765f8f.96.2025.03.03.23.21.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 23:21:17 -0800 (PST) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 59E2F21E66BB; Tue, 04 Mar 2025 08:21:17 +0100 (CET) From: Markus Armbruster To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, John Snow Subject: [PULL v2 3/5] docs/qapidoc: support header-less freeform sections Date: Tue, 4 Mar 2025 08:21:15 +0100 Message-ID: <20250304072117.894134-4-armbru@redhat.com> In-Reply-To: <20250304072117.894134-1-armbru@redhat.com> References: <20250304072117.894134-1-armbru@redhat.com> MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: [Gmail]/All Mail X-GMAIL-LABELS: "\\Sent" X-GMAIL-THRID: 1825647234406137062 X-GMAIL-MSGID: 1825647234406137062 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: John Snow The code as written crashes when a free-form documentation block doesn't start with a heading or subheading, for example: | ## | # Just text, no heading. | ## The code will attempt to use the `node` variable uninitialized. To fix, create a generic block to insert the doc text into. (This patch also removes a lingering pylint warning in the QAPIDoc implementation that prevents getting a clean baseline to use for forthcoming additions.) Fixes: 43e0d14ee09a (docs/sphinx: fix extra stuff in TOC after freeform QMP sections) Signed-off-by: John Snow Message-ID: <20250224033741.222749-5-jsnow@redhat.com> Reviewed-by: Markus Armbruster [Test updated to cover this] Signed-off-by: Markus Armbruster --- docs/sphinx/qapidoc.py | 2 ++ tests/qapi-schema/doc-good.json | 4 ++++ tests/qapi-schema/doc-good.out | 3 +++ 3 files changed, 9 insertions(+) diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py index 5f96b46270..5a4d7388b2 100644 --- a/docs/sphinx/qapidoc.py +++ b/docs/sphinx/qapidoc.py @@ -421,6 +421,8 @@ def freeform(self, doc): node = self._start_new_heading(heading, len(leader)) if text == '': return + else: + node = nodes.container() self._parse_text_into_node(text, node) self._cur_doc = None diff --git a/tests/qapi-schema/doc-good.json b/tests/qapi-schema/doc-good.json index f64bf38d85..0a4f139f83 100644 --- a/tests/qapi-schema/doc-good.json +++ b/tests/qapi-schema/doc-good.json @@ -11,6 +11,10 @@ # = Section ## +## +# Just text, no heading. +## + ## # == Subsection # diff --git a/tests/qapi-schema/doc-good.out b/tests/qapi-schema/doc-good.out index ec277be91e..0a9da3efde 100644 --- a/tests/qapi-schema/doc-good.out +++ b/tests/qapi-schema/doc-good.out @@ -56,6 +56,9 @@ event EVT_BOXED Object doc freeform body= = Section +doc freeform + body= +Just text, no heading. doc freeform body= == Subsection From patchwork Tue Mar 4 07:21:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Armbruster X-Patchwork-Id: 14000138 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 81703C021B8 for ; Tue, 4 Mar 2025 08:00:53 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpNCo-0000um-RQ; Tue, 04 Mar 2025 03:00:47 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpNBk-0000Au-37 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 02:59:42 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpNBi-0003ID-8F for qemu-devel@nongnu.org; Tue, 04 Mar 2025 02:59:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1741075173; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding:resent-to: resent-from:resent-message-id:in-reply-to:in-reply-to: references:references; bh=J63+xeMvDp8oP/T4oQACy9QBFnsjVacP1Jp692/Nx7o=; b=Cih/DxIrhgoyJ/z1JKzQfYh0Y4AUZyztomd4VlSoDYvY0s0ExwM5/LnRXYlRHK8wETAm5d 6Yun/+idVRkee5XrWlyuVUGvdP8uphinAqA+SOKiKNzitXTR+OgVzCQxnE+GcjOI0Hna5w +DALhg2g9AHY8G1sDmrvXoTQvfv1h88= Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-505-1nQYJtACNzugwREfrZBhYQ-1; Tue, 04 Mar 2025 02:59:22 -0500 X-MC-Unique: 1nQYJtACNzugwREfrZBhYQ-1 X-Mimecast-MFC-AGG-ID: 1nQYJtACNzugwREfrZBhYQ_1741075161 Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 030201944CD1 for ; Tue, 4 Mar 2025 07:59:21 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.45.242.15]) by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id ACC1619560B9 for ; Tue, 4 Mar 2025 07:59:19 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 4C13321E66BC; Tue, 04 Mar 2025 08:59:17 +0100 (CET) Resent-To: qemu-devel@nongnu.org Resent-From: Markus Armbruster Resent-Date: Tue, 04 Mar 2025 08:59:17 +0100 Resent-Message-ID: <87zfi1usyy.fsf@pond.sub.org> X-From-Line: armbru@redhat.com Tue Mar 4 08:43:50 2025 Received: from imap.gmail.com ([2a00:1450:4025:402::6d]:993) by dusky.pond.sub.org with IMAP4-SSL getmail6 msgid:11/315752; 04 Mar 2025 07:43:50 -0000 Received: from blackfin.pond.sub.org (p200300d36f33fd00dda5bc774eb05696.dip0.t-ipconnect.de. [2003:d3:6f33:fd00:dda5:bc77:4eb0:5696]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43aba538b9fsm221445785e9.17.2025.03.03.23.21.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 23:21:18 -0800 (PST) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 5DA2F21E66BC; Tue, 04 Mar 2025 08:21:17 +0100 (CET) From: Markus Armbruster To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, John Snow Subject: [PULL v2 4/5] docs/qapidoc: remove example section support Date: Tue, 4 Mar 2025 08:21:16 +0100 Message-ID: <20250304072117.894134-5-armbru@redhat.com> In-Reply-To: <20250304072117.894134-1-armbru@redhat.com> References: <20250304072117.894134-1-armbru@redhat.com> MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: [Gmail]/All Mail X-GMAIL-LABELS: "\\Sent" X-GMAIL-THRID: 1825647235709655260 X-GMAIL-MSGID: 1825647235709655260 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15 Received-SPF: pass client-ip=170.10.129.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=-1, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: John Snow Since commit 3c5f6114 (qapi: remove "Example" doc section), Example sections no longer exist, so this support in qapidoc is now dead code. Signed-off-by: John Snow Message-ID: <20250224033741.222749-7-jsnow@redhat.com> Reviewed-by: Markus Armbruster Signed-off-by: Markus Armbruster --- docs/sphinx/qapidoc.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py index 5a4d7388b2..61997fd21a 100644 --- a/docs/sphinx/qapidoc.py +++ b/docs/sphinx/qapidoc.py @@ -254,10 +254,6 @@ def _nodes_for_features(self, doc): section += dlnode return [section] - def _nodes_for_example(self, exampletext): - """Return list of doctree nodes for a code example snippet""" - return [nodes.literal_block(exampletext, exampletext)] - def _nodes_for_sections(self, doc): """Return list of doctree nodes for additional sections""" nodelist = [] @@ -275,10 +271,7 @@ def _nodes_for_sections(self, doc): continue snode = self._make_section(section.tag) - if section.tag.startswith('Example'): - snode += self._nodes_for_example(dedent(section.text)) - else: - self._parse_text_into_node(dedent(section.text), snode) + self._parse_text_into_node(dedent(section.text), snode) nodelist.append(snode) return nodelist From patchwork Tue Mar 4 07:21:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Markus Armbruster X-Patchwork-Id: 14000137 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BF6ADC282D0 for ; Tue, 4 Mar 2025 08:00:27 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpNCA-0000Iy-I0; Tue, 04 Mar 2025 03:00:12 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpNBl-0000BP-LX for qemu-devel@nongnu.org; Tue, 04 Mar 2025 02:59:45 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tpNBf-0003Hx-EN for qemu-devel@nongnu.org; Tue, 04 Mar 2025 02:59:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1741075170; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-to: resent-from:resent-message-id:in-reply-to:in-reply-to: references:references; bh=AiIW447JduVOgQvVDfmuHlFx2OVXVskEav105nIuDTs=; b=A/60pAeCjf88WClhsSOGKqr1Mk1YGv4VN/D+1E1vhZZ/OckBHbR5sETkspJ5HmmfuE/MSc JBHdSQdu6yX0ZHcZYBhzffvCMFJ+k+6vIQlZUSuf1+PT0morw9ab7cbu5HzcgV5hte2SEp m4JFKwLdj9Ex59fTIzIRAK+q5XuC1R4= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-354-BAI_jwnNOESNHGMaOSAQ4w-1; Tue, 04 Mar 2025 02:59:24 -0500 X-MC-Unique: BAI_jwnNOESNHGMaOSAQ4w-1 X-Mimecast-MFC-AGG-ID: BAI_jwnNOESNHGMaOSAQ4w_1741075163 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 6F43E1954B21 for ; Tue, 4 Mar 2025 07:59:23 +0000 (UTC) Received: from blackfin.pond.sub.org (unknown [10.45.242.15]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id B2BB41800361 for ; Tue, 4 Mar 2025 07:59:22 +0000 (UTC) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 55A9021E65D4; Tue, 04 Mar 2025 08:59:17 +0100 (CET) Resent-To: qemu-devel@nongnu.org Resent-From: Markus Armbruster Resent-Date: Tue, 04 Mar 2025 08:59:17 +0100 Resent-Message-ID: <87v7spusyy.fsf@pond.sub.org> X-From-Line: armbru@redhat.com Tue Mar 4 08:43:49 2025 Received: from imap.gmail.com ([2a00:1450:4025:402::6d]:993) by dusky.pond.sub.org with IMAP4-SSL getmail6 msgid:11/315751; 04 Mar 2025 07:43:49 -0000 Received: from blackfin.pond.sub.org (p200300d36f33fd00dda5bc774eb05696.dip0.t-ipconnect.de. [2003:d3:6f33:fd00:dda5:bc77:4eb0:5696]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e4795da5sm17038383f8f.15.2025.03.03.23.21.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Mar 2025 23:21:18 -0800 (PST) Received: by blackfin.pond.sub.org (Postfix, from userid 1000) id 6174A21E65D4; Tue, 04 Mar 2025 08:21:17 +0100 (CET) From: Markus Armbruster To: qemu-devel@nongnu.org Cc: stefanha@redhat.com, =?utf-8?q?Daniel_P=2E_Berrang=C3=A9?= Subject: [PULL v2 5/5] qapi: pluggable backend code generators Date: Tue, 4 Mar 2025 08:21:17 +0100 Message-ID: <20250304072117.894134-6-armbru@redhat.com> In-Reply-To: <20250304072117.894134-1-armbru@redhat.com> References: <20250304072117.894134-1-armbru@redhat.com> MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: [Gmail]/All Mail X-GMAIL-LABELS: "\\Sent" X-GMAIL-THRID: 1825647235166379166 X-GMAIL-MSGID: 1825647235166379166 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 Received-SPF: pass client-ip=170.10.133.124; envelope-from=armbru@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.01, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org From: Daniel P. Berrangé The 'qapi.backend.QAPIBackend' class defines an API contract for code generators. The current generator is put into a new class 'qapi.backend.QAPICBackend' and made to be the default impl. A custom generator can be requested using the '-k' arg which takes a fully qualified python class name qapi-gen.py -B the.python.module.QAPIMyBackend This allows out of tree code to use the QAPI generator infrastructure to create new language bindings for QAPI schemas. This has the caveat that the QAPI generator APIs are not guaranteed stable, so consumers of this feature may have to update their code to be compatible with future QEMU releases. Signed-off-by: Daniel P. Berrangé Message-ID: <20250224182030.2089959-1-berrange@redhat.com> Reviewed-by: Markus Armbruster [Error checking and messages tweaked] Signed-off-by: Markus Armbruster --- scripts/qapi/backend.py | 63 ++++++++++++++++++++++++++++++++ scripts/qapi/main.py | 80 +++++++++++++++++++++++------------------ 2 files changed, 108 insertions(+), 35 deletions(-) create mode 100644 scripts/qapi/backend.py diff --git a/scripts/qapi/backend.py b/scripts/qapi/backend.py new file mode 100644 index 0000000000..14e60aa67a --- /dev/null +++ b/scripts/qapi/backend.py @@ -0,0 +1,63 @@ +# This work is licensed under the terms of the GNU GPL, version 2 or later. +# See the COPYING file in the top-level directory. + +from abc import ABC, abstractmethod + +from .commands import gen_commands +from .events import gen_events +from .features import gen_features +from .introspect import gen_introspect +from .schema import QAPISchema +from .types import gen_types +from .visit import gen_visit + + +class QAPIBackend(ABC): + + @abstractmethod + def generate(self, + schema: QAPISchema, + output_dir: str, + prefix: str, + unmask: bool, + builtins: bool, + gen_tracing: bool) -> None: + """ + Generate code for the given schema into the target directory. + + :param schema: The primary QAPI schema object. + :param output_dir: The output directory to store generated code. + :param prefix: Optional C-code prefix for symbol names. + :param unmask: Expose non-ABI names through introspection? + :param builtins: Generate code for built-in types? + + :raise QAPIError: On failures. + """ + + +class QAPICBackend(QAPIBackend): + + def generate(self, + schema: QAPISchema, + output_dir: str, + prefix: str, + unmask: bool, + builtins: bool, + gen_tracing: bool) -> None: + """ + Generate C code for the given schema into the target directory. + + :param schema_file: The primary QAPI schema file. + :param output_dir: The output directory to store generated code. + :param prefix: Optional C-code prefix for symbol names. + :param unmask: Expose non-ABI names through introspection? + :param builtins: Generate code for built-in types? + + :raise QAPIError: On failures. + """ + gen_types(schema, output_dir, prefix, builtins) + gen_features(schema, output_dir, prefix) + gen_visit(schema, output_dir, prefix, builtins) + gen_commands(schema, output_dir, prefix, gen_tracing) + gen_events(schema, output_dir, prefix) + gen_introspect(schema, output_dir, prefix, unmask) diff --git a/scripts/qapi/main.py b/scripts/qapi/main.py index 324081b9fc..5b4679abcf 100644 --- a/scripts/qapi/main.py +++ b/scripts/qapi/main.py @@ -8,18 +8,14 @@ """ import argparse +from importlib import import_module import sys from typing import Optional -from .commands import gen_commands +from .backend import QAPIBackend, QAPICBackend from .common import must_match from .error import QAPIError -from .events import gen_events -from .features import gen_features -from .introspect import gen_introspect from .schema import QAPISchema -from .types import gen_types -from .visit import gen_visit def invalid_prefix_char(prefix: str) -> Optional[str]: @@ -29,32 +25,42 @@ def invalid_prefix_char(prefix: str) -> Optional[str]: return None -def generate(schema_file: str, - output_dir: str, - prefix: str, - unmask: bool = False, - builtins: bool = False, - gen_tracing: bool = False) -> None: - """ - Generate C code for the given schema into the target directory. +def create_backend(path: str) -> QAPIBackend: + if path is None: + return QAPICBackend() - :param schema_file: The primary QAPI schema file. - :param output_dir: The output directory to store generated code. - :param prefix: Optional C-code prefix for symbol names. - :param unmask: Expose non-ABI names through introspection? - :param builtins: Generate code for built-in types? + module_path, dot, class_name = path.rpartition('.') + if not dot: + print("argument of -B must be of the form MODULE.CLASS", + file=sys.stderr) + sys.exit(1) - :raise QAPIError: On failures. - """ - assert invalid_prefix_char(prefix) is None + try: + mod = import_module(module_path) + except Exception as ex: + print(f"unable to import '{module_path}': {ex}", file=sys.stderr) + sys.exit(1) - schema = QAPISchema(schema_file) - gen_types(schema, output_dir, prefix, builtins) - gen_features(schema, output_dir, prefix) - gen_visit(schema, output_dir, prefix, builtins) - gen_commands(schema, output_dir, prefix, gen_tracing) - gen_events(schema, output_dir, prefix) - gen_introspect(schema, output_dir, prefix, unmask) + try: + klass = getattr(mod, class_name) + except AttributeError: + print(f"module '{module_path}' has no class '{class_name}'", + file=sys.stderr) + sys.exit(1) + + try: + backend = klass() + except Exception as ex: + print(f"backend '{path}' cannot be instantiated: {ex}", + file=sys.stderr) + sys.exit(1) + + if not isinstance(backend, QAPIBackend): + print(f"backend '{path}' must be an instance of QAPIBackend", + file=sys.stderr) + sys.exit(1) + + return backend def main() -> int: @@ -77,6 +83,8 @@ def main() -> int: parser.add_argument('-u', '--unmask-non-abi-names', action='store_true', dest='unmask', help="expose non-ABI names in introspection") + parser.add_argument('-B', '--backend', default=None, + help="Python module name for code generator") # Option --suppress-tracing exists so we can avoid solving build system # problems. TODO Drop it when we no longer need it. @@ -93,12 +101,14 @@ def main() -> int: return 1 try: - generate(args.schema, - output_dir=args.output_dir, - prefix=args.prefix, - unmask=args.unmask, - builtins=args.builtins, - gen_tracing=not args.suppress_tracing) + schema = QAPISchema(args.schema) + backend = create_backend(args.backend) + backend.generate(schema, + output_dir=args.output_dir, + prefix=args.prefix, + unmask=args.unmask, + builtins=args.builtins, + gen_tracing=not args.suppress_tracing) except QAPIError as err: print(err, file=sys.stderr) return 1