commit: bd21cbc2b2fa4e7761463136c5aaf88304272e68 Author: Arthur Zamarin <arthurzam <AT> gentoo <DOT> org> AuthorDate: Thu Aug 1 19:40:27 2024 +0000 Commit: Arthur Zamarin <arthurzam <AT> gentoo <DOT> org> CommitDate: Thu Aug 1 19:40:27 2024 +0000 URL: https://gitweb.gentoo.org/proj/pkgcore/pkgcheck.git/commit/?id=bd21cbc2
EmptyGlobalAssignment: ignore empty KEYWORDS Resolves: https://github.com/pkgcore/pkgcheck/issues/695 Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org> src/pkgcheck/checks/codingstyle.py | 9 +++++++-- .../MetadataVarCheck/EmptyGlobalAssignment/expected.json | 1 - 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/pkgcheck/checks/codingstyle.py b/src/pkgcheck/checks/codingstyle.py index cfc7f8da..42bd0004 100644 --- a/src/pkgcheck/checks/codingstyle.py +++ b/src/pkgcheck/checks/codingstyle.py @@ -634,6 +634,8 @@ class MetadataVarCheck(Check): # mapping between registered variables and verification methods known_variables = {} + empty_vars_whitelist = frozenset({"KEYWORDS"}) + @verify_vars("HOMEPAGE", "KEYWORDS") def _raw_text(self, var, node, value, pkg): matches = [] @@ -710,8 +712,11 @@ class MetadataVarCheck(Check): value_str = self.canonicalize_assign(pkg.node_str(value_node)) if value_node else "" if name in pkg.eapi.eclass_keys: if not value_str: - lineno, _ = node.start_point - yield EmptyGlobalAssignment(line=pkg.node_str(node), lineno=lineno + 1, pkg=pkg) + if name not in self.empty_vars_whitelist: + lineno, _ = node.start_point + yield EmptyGlobalAssignment( + line=pkg.node_str(node), lineno=lineno + 1, pkg=pkg + ) elif pkg.node_str(value_node.prev_sibling) == "=": for var_node, _ in bash.var_query.captures(value_node): if ( diff --git a/testdata/data/repos/standalone/MetadataVarCheck/EmptyGlobalAssignment/expected.json b/testdata/data/repos/standalone/MetadataVarCheck/EmptyGlobalAssignment/expected.json index 7cab9376..c5c90f2d 100644 --- a/testdata/data/repos/standalone/MetadataVarCheck/EmptyGlobalAssignment/expected.json +++ b/testdata/data/repos/standalone/MetadataVarCheck/EmptyGlobalAssignment/expected.json @@ -1,3 +1,2 @@ {"__class__": "EmptyGlobalAssignment", "category": "DescriptionCheck", "package": "BadDescription", "version": "1", "line": "DESCRIPTION=\"\"", "lineno": 1} -{"__class__": "EmptyGlobalAssignment", "category": "MetadataVarCheck", "package": "MultipleKeywordsLines", "version": "0", "line": "KEYWORDS=\"\"", "lineno": 8} {"__class__": "EmptyGlobalAssignment", "category": "MetadataVarCheck", "package": "ReferenceInMetadataVar", "version": "3", "line": "LICENSE=\"\"", "lineno": 4}
