repo/gentoo:master commit in: dev-python/coverage/

Michał Górny <[email protected]> Mon, 03 Aug 2026 02:22:38 +0000 (UTC)
Newsgroups gmane.linux.gentoo.cvs
Message-ID <1785723730.1f130f5c451a61337d3a3dbfc2fe14c5eb07b3ba.mgorny@gentoo>
commit:     1f130f5c451a61337d3a3dbfc2fe14c5eb07b3ba
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Aug  3 01:36:16 2026 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Aug  3 02:22:10 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1f130f5c

dev-python/coverage: Bump to 7.15.3

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/coverage/Manifest               |  2 +
 dev-python/coverage/coverage-7.15.3.ebuild | 98 ++++++++++++++++++++++++++++++
 2 files changed, 100 insertions(+)

diff --git a/dev-python/coverage/Manifest b/dev-python/coverage/Manifest
index 24789064457c..9705c4b65b44 100644
--- a/dev-python/coverage/Manifest
+++ b/dev-python/coverage/Manifest
@@ -2,3 +2,5 @@ DIST coverage-7.14.3.tar.gz 924398 BLAKE2B 8f1699e1c4b6c93ae22f5799df40843ff9ff3
 DIST coverage-7.14.3.tar.gz.provenance 9907 BLAKE2B c1876fbc3b147afa865812c8f09d1595f317f62b4c07f644f4bacf450d4c21bc45e8de8cdb001d0f497967d7aa77dd4340877457462bed39006ebfd72b856fa6 SHA512 13702b5009e3a416e341bb6db12d9b2251d832650595f6439e2aeaf212994624a37047f1eb34c1473e65c7fac597658e6ada02788fef4526a0b60e410bdedbbd
 DIST coverage-7.15.2.tar.gz 927741 BLAKE2B 61b652d900901b1e2cb2b192ba95f757e5d9da830ab54d26ae1fca9c717e73f86f8e2aeeea6ab8664020d5d0c6883b051bdcc848a326282ac5a0172d6e8cdea0 SHA512 578cf91905d525343eee636fc24dbf70e0d0d249b0fd4228d750de3feef3cab344a3f24cb73cfa0af7a34d7e651e56b539b512d2cbf4ff59dce95eb03509e575
 DIST coverage-7.15.2.tar.gz.provenance 10044 BLAKE2B b4b740dad204628ab76ca8697ad816a60dd7bf73ebbc8a1682575c8dc84240fb1338e85db5a2e2c804c7a7f255188de1b14269b5f72f5024ebd7f8f7b4e1d06b SHA512 5114b7cd42289ebe32923a80f575f3badd881e7b38e17b0a9b99faf60b0aa1048239b852109b39c8435da3016f13c5d01599e18bbd843da54264595242fa7f78
+DIST coverage-7.15.3.tar.gz 935592 BLAKE2B 1174736867b69cbaf15b1bb2d67a4b14d6be5261c37cfc7e7215cf906c1aa6ec319e50e615c3fbb5760554de88798e50a672bfd2324a14f363dceeee4bfd70db SHA512 c378ae771b9809f0b4b9ab290eb75879d78eb0f08bdd5a2e20df12b7129922423cc40eeaa66a7542e96b4dc5205b0deaa29ecdc5d3ec0718a7bf249e6019a26a
+DIST coverage-7.15.3.tar.gz.provenance 9954 BLAKE2B 00ff30929f7cd75953e954eff9ef23877251d891fbab117d1820cb15e83299013a659ea3364fd0c8d672917908b5bb3d7b71bb68f6d860e04f7fcd21a48dd92e SHA512 9bbbe345954e12c2d9689b4001fed02cb31ec6722e1617bf647e3ccf04109d722a1a7287162dc7b95f0e00f7f84e6a0e1ce02006ad1753122c7c64728def1f97

diff --git a/dev-python/coverage/coverage-7.15.3.ebuild b/dev-python/coverage/coverage-7.15.3.ebuild
new file mode 100644
index 000000000000..b85fe2c52eef
--- /dev/null
+++ b/dev-python/coverage/coverage-7.15.3.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYPI_VERIFY_REPO=https://github.com/coveragepy/coveragepy
+PYTHON_COMPAT=( python3_{12..15} python3_{14,15}t )
+PYTHON_REQ_USE="threads(+),sqlite(+)"
+
+inherit distutils-r1 multiprocessing pypi
+
+DESCRIPTION="Code coverage measurement for Python"
+HOMEPAGE="
+	https://coverage.readthedocs.io/en/latest/
+	https://github.com/coveragepy/coveragepy/
+	https://pypi.org/project/coverage/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="+native-extensions"
+
+BDEPEND="
+	test? (
+		>=dev-python/unittest-mixins-1.4[${PYTHON_USEDEP}]
+	)
+"
+
+EPYTEST_PLUGINS=( hypothesis pytest-{rerunfailures,xdist} )
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_compile() {
+	if ! use native-extensions; then
+		local -x COVERAGE_DISABLE_EXTENSION=1
+	fi
+
+	distutils-r1_python_compile
+}
+
+test_tracer() {
+	local -x COVERAGE_CORE=${1}
+	einfo "  Testing with the ${COVERAGE_CORE} core ..."
+	nonfatal epytest -o addopts= "${@:2}" tests ||
+		die "Tests failed with ${EPYTHON}, ${COVERAGE_CORE} core"
+}
+
+python_test() {
+	local EPYTEST_DESELECT=(
+		# broken because of pytest plugins explicity loaded
+		tests/test_debug.py::ShortStackTest::test_short_stack{,_skip}
+		# these expect specific availability of C extension matching
+		# COVERAGE_CORE (which breaks testing pytracer on CPython)
+		tests/test_cmdline.py::CmdLineStdoutTest::test_version
+		tests/test_debug.py::DebugTraceTest::test_debug_sys_ctracer
+		# packaging tests, fragile to setuptools version
+		tests/test_setup.py
+	)
+	local EPYTEST_IGNORE=(
+		# pip these days insists on fetching build deps from Internet
+		tests/test_venv.py
+	)
+
+	"${EPYTHON}" igor.py zip_mods || die
+
+	local -x COVERAGE_TESTING=True
+	# TODO: figure out why they can't be imported inside test env
+	local -x COVERAGE_NO_CONTRACTS=1
+
+	local jobs=${EPYTEST_JOBS:-$(makeopts_jobs)}
+	local xdist_args=()
+	if [[ ${jobs} -gt 1 ]]; then
+		# required upstream to avoid cross-test conflicts
+		xdist_args+=( --dist=loadgroup )
+	fi
+
+	local prev_opt=$(shopt -p nullglob)
+	shopt -s nullglob
+	local c_ext=( "${BUILD_DIR}/install$(python_get_sitedir)"/coverage/*.so )
+	${prev_opt}
+
+	if [[ -n ${c_ext} ]]; then
+		cp "${c_ext}" coverage/ || die
+		test_tracer ctrace "${xdist_args[@]}"
+	fi
+
+	test_tracer pytrace "${xdist_args[@]}"
+
+	# available since Python 3.12
+	test_tracer sysmon "${xdist_args[@]}"
+
+	if [[ -n ${c_ext} ]]; then
+		rm coverage/*.so || die
+	fi
+}