Gentoo Archives: gentoo-portage-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-portage-dev@l.g.o
Cc: "Michał Górny" <mgorny@g.o>
Subject: [gentoo-portage-dev] [PATCH] Emit QA notices for setuptools warnings
Date: Sat, 29 May 2021 10:18:33
Message-Id: 20210529101824.308892-1-mgorny@gentoo.org
1 Emit QA notices for setuptools warnings such as:
2
3 * QA Notice: setuptools warnings detected:
4 *
5 * Usage of dash-separated 'build-requires' will not be supported in future versions. Please use the underscore name 'build_requires' instead
6 * Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead
7 * Usage of dash-separated 'upload-dir' will not be supported in future versions. Please use the underscore name 'upload_dir' instead
8
9 Signed-off-by: Michał Górny <mgorny@g.o>
10 ---
11 lib/portage/package/ebuild/doebuild.py | 14 ++++++++++++++
12 1 file changed, 14 insertions(+)
13
14 diff --git a/lib/portage/package/ebuild/doebuild.py b/lib/portage/package/ebuild/doebuild.py
15 index 86c1d40b4..b1557edd7 100644
16 --- a/lib/portage/package/ebuild/doebuild.py
17 +++ b/lib/portage/package/ebuild/doebuild.py
18 @@ -1863,6 +1863,10 @@ def _check_build_log(mysettings, out=None):
19 re.compile(r'g?make\[\d+\]: warning: jobserver unavailable:')
20 make_jobserver = []
21
22 + # we deduplicate these since they is repeated for every setup.py call
23 + setuptools_warn = set()
24 + setuptools_warn_re = re.compile(r'.*\/setuptools\/.*: UserWarning: (.*)')
25 +
26 def _eerror(lines):
27 for line in lines:
28 eerror(line, phase="install", key=mysettings.mycpv, out=out)
29 @@ -1892,6 +1896,10 @@ def _check_build_log(mysettings, out=None):
30 if make_jobserver_re.match(line) is not None:
31 make_jobserver.append(line.rstrip("\n"))
32
33 + m = setuptools_warn_re.match(line)
34 + if m is not None:
35 + setuptools_warn.add(m.group(1))
36 +
37 except (EOFError, zlib.error) as e:
38 _eerror(["portage encountered a zlib error: '%s'" % (e,),
39 "while reading the log file: '%s'" % logfile])
40 @@ -1945,6 +1953,12 @@ def _check_build_log(mysettings, out=None):
41 msg.extend("\t" + line for line in make_jobserver)
42 _eqawarn(msg)
43
44 + if setuptools_warn:
45 + msg = [_("QA Notice: setuptools warnings detected:")]
46 + msg.append("")
47 + msg.extend("\t" + line for line in sorted(setuptools_warn))
48 + _eqawarn(msg)
49 +
50 f.close()
51 if f_real is not None:
52 f_real.close()
53 --
54 2.31.1