From patchwork Tue Feb 21 01:24:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: John Snow X-Patchwork-Id: 13147235 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 95166C61DA3 for ; Tue, 21 Feb 2023 01:25:47 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUHOz-00035u-Py; Mon, 20 Feb 2023 20:25:05 -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 1pUHOy-00035c-5v for qemu-devel@nongnu.org; Mon, 20 Feb 2023 20:25:04 -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 1pUHOv-0005yV-U1 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 20:25:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1676942700; 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; bh=F+/SMaSSHNxiJ4byCsYzyGzIhDzM2iIF5rclO1N3oWY=; b=iIRuHsMAgpqUe4mqPona9xNA36l70R/rRacLQ2SQZC3PuyCmn2Fpp3y5v+viLCUddLqtbN XyLF+WPnLTtXOtlICwyn0gnk2QYv8M2F5my6aYSJyFldEeBTOtpA+8CaptEhjW+YCQFthx 4C8iVD9YDF0dXVrdbOAbpQwhB2dBoP8= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-629-Nl7fFMyNMGKmVJDakbSOBA-1; Mon, 20 Feb 2023 20:24:57 -0500 X-MC-Unique: Nl7fFMyNMGKmVJDakbSOBA-1 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 13EF1101A52E; Tue, 21 Feb 2023 01:24:57 +0000 (UTC) Received: from scv.redhat.com (unknown [10.22.32.134]) by smtp.corp.redhat.com (Postfix) with ESMTP id 654512166B26; Tue, 21 Feb 2023 01:24:56 +0000 (UTC) From: John Snow To: qemu-devel@nongnu.org Cc: Michael Roth , Thomas Huth , qemu-block@nongnu.org, Cleber Rosa , Markus Armbruster , Paolo Bonzini , John Snow , Wainer dos Santos Moschetta , Peter Maydell , Beraldo Leal , Kevin Wolf , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Hanna Reitz , =?utf-8?q?Alex_Benn=C3=A9e?= , Daniel Berrange Subject: [PATCH v3 0/6] Python: Drop support for Python 3.6 Date: Mon, 20 Feb 2023 20:24:50 -0500 Message-Id: <20230221012456.2607692-1-jsnow@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.6 Received-SPF: pass client-ip=170.10.129.124; envelope-from=jsnow@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.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 CI: https://gitlab.com/jsnow/qemu/-/pipelines/783612696 [Updated for v3, still all green.] GL: https://gitlab.com/jsnow/qemu/-/commits/python-require-37 Hi, discussion about this series is ongoing. This series (v3) is not meant to address all of that discussion, but rather is an updated baseline for what we are capable of right now, today, without much additional engineering. It's meant to serve as a reference for further discussion. To my knowledge, the inconveniences caused by this patchset as currently written are: (1) Users of CentOS 8 and OpenSUSE 15.4 would need to install an additional python package that will exist side-by-side with their base platform's Python 3.6 package. "zypper install python39" or "dnf install python38" is enough; configure will do the rest of the work. It's my understanding that this is largely a non-issue. (2) Due to our Sphinx plugin that imports QAPI code from the tree, distro-provided versions of Sphinx that are installed and tied to Python 3.6 will no longer be suitable. Users may forego building docs or install a suitable sphinx using "pip". It's my understanding that this one is "kind of a bummer". I feel that the inconvenience caused by (1) is minimized as is possible; the inconvenience caused by (2) is slightly worse and I concede the workaround has some complexities that I would otherwise seek to avoid. As far as I am aware, the way forward is to work with Paolo to implement a proper venv solution for the build tree that will help mitigate the fallout from (2) by automating the use of a pip-provided Sphinx in the cases where the distro-provided version is insufficient. OK, seeya later! --js John Snow (6): configure: Look for auxiliary Python installations configure: Add courtesy hint to Python version failure message DO-NOT-MERGE: testing: Add Python >= 3.7 to Centos, OpenSuSE DO-NOT-MERGE: testing: add pip-installed sphinx-build to CentOS 8 meson: prefer 'sphinx-build' to 'sphinx-build-3' Python: Drop support for Python 3.6 docs/conf.py | 4 +- docs/meson.build | 2 +- configure | 41 ++++++++++++++----- python/Makefile | 10 ++--- python/setup.cfg | 7 ++-- python/tests/minreqs.txt | 2 +- scripts/qapi/mypy.ini | 2 +- tests/docker/dockerfiles/centos8.docker | 5 +++ tests/docker/dockerfiles/opensuse-leap.docker | 1 + 9 files changed, 50 insertions(+), 24 deletions(-)