From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 67FEE158170 for ; Fri, 19 Jul 2024 15:04:37 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 12EBF2BC01F; Fri, 19 Jul 2024 15:04:33 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id A6E2EE2A20 for ; Fri, 19 Jul 2024 15:04:32 +0000 (UTC) From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= To: gentoo-dev@lists.gentoo.org Cc: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Subject: [gentoo-dev] [PATCH 0/6] distutils-r1.eclass: Enable wheel reuse by default and add `distutils_enable_tests import-check` Date: Fri, 19 Jul 2024 16:56:00 +0200 Message-ID: <20240719150427.133877-1-mgorny@gentoo.org> X-Mailer: git-send-email 2.45.2 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Archives-Salt: 3db48e34-409a-4d8e-a39b-b45f4b6c1bfa X-Archives-Hash: e947bd2a3be8aac8ce391c1168ef994f Hello, Here's another batch of changes to distutils-r1. Its focused on two topics: 1. Enabling the new wheel reuse code (added 2024-05-20) by default. This means that whenever possible, the eclass will invoke the PEP517 build system just once and install the resulting wheel for all suitable implementations. This is NFC if you have only a single target enabled. If you enable multiple targets, this gives a major performance boost, as most of the time we don't need to spend significant time repeatedly invoking slowtools, I mean setuptools. It also means that for Python packages using the stable API, we don't build roughly identical C or Rust extensions multiple times. 2. Adding `distutils_enable_tests import-check` option. This is meant as a "last resort" for packages that don't feature test suites at all. It uses dev-python/pytest-import-check plugin to verify that all installed modules (both .py and .so) are at least importable. I'm including three example uses of that. Since it's implemented on top of pytest, EPYTEST_DESELECT can be used to skip modules that don't meant to be importable. Pull request: https://github.com/gentoo/gentoo/pull/37187 (note that it's failing because of keywords on pytest-import-check) Michał Górny (6): distutils-r1.eclass: Fix QA to ignore non-generic "pure" wheels distutils-r1.eclass: Allow wheel reuse by default distutils-r1.eclass: Add distutils_enable_tests import-check dev-python/ytmusicapi: Enable import-check testing (sample) dev-python/pymountboot: Enable import-check testing (sample) dev-python/miniupnpc: Enable import-check testing (sample) dev-python/miniupnpc/miniupnpc-2.2.8.ebuild | 1 + .../pymountboot/pymountboot-0.2.3-r1.ebuild | 2 ++ dev-python/ytmusicapi/ytmusicapi-1.7.5.ebuild | 2 +- eclass/distutils-r1.eclass | 16 +++++++++++++--- 4 files changed, 17 insertions(+), 4 deletions(-) -- 2.45.2