Skip to content

Commit 508da79

Browse files
committed
DescriptionCheck: check for description repeating package name
Signed-off-by: Michał Górny <mgorny@gentoo.org>
1 parent 3c9508b commit 508da79

5 files changed

Lines changed: 23 additions & 1 deletion

File tree

NEWS.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ pkgcheck 0.10.40 (unreleased)
1717
- DescriptionCheck: check for descriptions ending with a full-stop (Arthur
1818
Zamarin, Michał Górny, #472)
1919

20+
- DescriptionCheck: check for descriptions repeating package name (Michał
21+
Górny, #2021)
22+
2023

2124
**Packaging:**
2225

src/pkgcheck/checks/metadata.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1523,10 +1523,15 @@ class DescriptionCheck(Check):
15231523
def feed(self, pkg):
15241524
desc: str = pkg.description
15251525
s = desc.lower()
1526+
lower_pn = pkg.package.lower()
15261527
if s.startswith("based on") and "eclass" in s:
15271528
yield BadDescription("generic eclass defined description", pkg_desc=desc, pkg=pkg)
1528-
elif s in (pkg.package.lower(), pkg.key.lower()):
1529+
elif s in (lower_pn, pkg.key.lower()):
15291530
yield BadDescription("generic package description", pkg_desc=desc, pkg=pkg)
1531+
elif s.startswith(lower_pn) and s.removeprefix(lower_pn).startswith(
1532+
(" is", " -", ":", ",")
1533+
):
1534+
yield BadDescription("repeats package name", pkg_desc=desc, pkg=pkg)
15301535
elif desc.endswith(tuple(".,:;")) and not desc.lower().endswith(
15311536
("etc.", "co.", "inc.", "ltd.", "...")
15321537
):

testdata/data/repos/standalone/DescriptionCheck/BadDescription/expected.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
{"__class__": "BadDescription", "category": "DescriptionCheck", "package": "BadDescription", "version": "2", "msg": "under 10 chars in length", "pkg_desc": "bad desc"}
44
{"__class__": "BadDescription", "category": "DescriptionCheck", "package": "BadDescription", "version": "3", "msg": "generic package description", "pkg_desc": "BadDescription"}
55
{"__class__": "BadDescription", "category": "DescriptionCheck", "package": "BadDescription", "version": "4", "msg": "over 80 chars in length", "pkg_desc": null}
6+
{"__class__": "BadDescription", "category": "DescriptionCheck", "package": "BadDescription", "version": "5", "msg": "repeats package name", "pkg_desc": "badDESCRIPTION is a test ebuild"}

testdata/data/repos/standalone/DescriptionCheck/BadDescription/fix.patch

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,12 @@ diff -Naur standalone/DescriptionCheck/BadDescription/BadDescription-4.ebuild fi
4242
HOMEPAGE="https://github.com/pkgcore/pkgcheck"
4343
LICENSE="BSD"
4444
SLOT="0"
45+
diff -Naur standalone/DescriptionCheck/BadDescription/BadDescription-5.ebuild fixed/DescriptionCheck/BadDescription/BadDescription-5.ebuild
46+
--- standalone/DescriptionCheck/BadDescription/BadDescription-5.ebuild 2019-11-28 00:33:38.457040594 -0700
47+
+++ fixed/DescriptionCheck/BadDescription/BadDescription-5.ebuild 2019-11-28 00:34:59.065514420 -0700
48+
@@ -1,4 +1,4 @@
49+
-DESCRIPTION="badDESCRIPTION is a test ebuild"
50+
+DESCRIPTION="Test ebuild"
51+
HOMEPAGE="https://github.com/pkgcore/pkgcheck"
52+
LICENSE="BSD"
53+
SLOT="0"
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
DESCRIPTION="badDESCRIPTION is a test ebuild"
2+
HOMEPAGE="https://github.com/pkgcore/pkgcheck"
3+
LICENSE="BSD"
4+
SLOT="0"

0 commit comments

Comments
 (0)