Add lint warnings to the package page
This commit is contained in:
parent
514933db47
commit
d3254dddb6
3 changed files with 101 additions and 3 deletions
|
|
@ -3,7 +3,8 @@
|
||||||
#:use-module (guix-data-service model utils)
|
#:use-module (guix-data-service model utils)
|
||||||
#:export (lint-warnings-data->lint-warning-ids
|
#:export (lint-warnings-data->lint-warning-ids
|
||||||
insert-guix-revision-lint-warnings
|
insert-guix-revision-lint-warnings
|
||||||
lint-warnings-for-guix-revision))
|
lint-warnings-for-guix-revision
|
||||||
|
select-lint-warnings-by-revision-package-name-and-version))
|
||||||
|
|
||||||
(define (lint-warnings-data->lint-warning-ids
|
(define (lint-warnings-data->lint-warning-ids
|
||||||
conn
|
conn
|
||||||
|
|
@ -94,3 +95,40 @@ INNER JOIN lint_warning_messages
|
||||||
,@(if message-query
|
,@(if message-query
|
||||||
(list message-query)
|
(list message-query)
|
||||||
'()))))
|
'()))))
|
||||||
|
|
||||||
|
(define (select-lint-warnings-by-revision-package-name-and-version conn
|
||||||
|
commit-hash
|
||||||
|
name version)
|
||||||
|
(define query "
|
||||||
|
SELECT lint_warnings.id, lint_checkers.name, lint_checkers.description,
|
||||||
|
lint_checkers.network_dependent,
|
||||||
|
locations.file, locations.line, locations.column_number,
|
||||||
|
lint_warning_messages.message
|
||||||
|
FROM lint_warnings
|
||||||
|
INNER JOIN lint_checkers
|
||||||
|
ON lint_checkers.id = lint_warnings.lint_checker_id
|
||||||
|
INNER JOIN packages
|
||||||
|
ON lint_warnings.package_id = packages.id
|
||||||
|
LEFT OUTER JOIN locations
|
||||||
|
ON lint_warnings.location_id = locations.id
|
||||||
|
INNER JOIN lint_warning_message_sets
|
||||||
|
ON lint_warning_message_sets.id = lint_warning_message_set_id
|
||||||
|
INNER JOIN lint_warning_messages
|
||||||
|
ON lint_warning_messages.locale = 'en_US.utf8'
|
||||||
|
AND lint_warning_messages.id = ANY (lint_warning_message_sets.message_ids)
|
||||||
|
WHERE packages.id IN (
|
||||||
|
SELECT package_derivations.package_id
|
||||||
|
FROM package_derivations
|
||||||
|
INNER JOIN guix_revision_package_derivations
|
||||||
|
ON package_derivations.id =
|
||||||
|
guix_revision_package_derivations.package_derivation_id
|
||||||
|
INNER JOIN guix_revisions
|
||||||
|
ON guix_revision_package_derivations.revision_id = guix_revisions.id
|
||||||
|
WHERE guix_revisions.commit = $1
|
||||||
|
)
|
||||||
|
AND packages.name = $2
|
||||||
|
AND packages.version = $3")
|
||||||
|
|
||||||
|
(exec-query conn
|
||||||
|
query
|
||||||
|
(list commit-hash name version)))
|
||||||
|
|
|
||||||
|
|
@ -301,7 +301,13 @@
|
||||||
version))
|
version))
|
||||||
(git-repositories
|
(git-repositories
|
||||||
(git-repositories-containing-commit conn
|
(git-repositories-containing-commit conn
|
||||||
commit-hash)))
|
commit-hash))
|
||||||
|
(lint-warnings
|
||||||
|
(select-lint-warnings-by-revision-package-name-and-version
|
||||||
|
conn
|
||||||
|
commit-hash
|
||||||
|
name
|
||||||
|
version)))
|
||||||
(case (most-appropriate-mime-type
|
(case (most-appropriate-mime-type
|
||||||
'(application/json text/html)
|
'(application/json text/html)
|
||||||
mime-types)
|
mime-types)
|
||||||
|
|
@ -330,6 +336,7 @@
|
||||||
metadata
|
metadata
|
||||||
derivations
|
derivations
|
||||||
git-repositories
|
git-repositories
|
||||||
|
lint-warnings
|
||||||
#:header-text header-text
|
#:header-text header-text
|
||||||
#:header-link header-link)
|
#:header-link header-link)
|
||||||
#:extra-headers http-headers-for-unchanging-content)))))
|
#:extra-headers http-headers-for-unchanging-content)))))
|
||||||
|
|
|
||||||
|
|
@ -290,6 +290,7 @@
|
||||||
(define* (view-revision-package-and-version revision-commit-hash name version
|
(define* (view-revision-package-and-version revision-commit-hash name version
|
||||||
package-metadata
|
package-metadata
|
||||||
derivations git-repositories
|
derivations git-repositories
|
||||||
|
lint-warnings
|
||||||
#:key header-text
|
#:key header-text
|
||||||
header-link)
|
header-link)
|
||||||
(layout
|
(layout
|
||||||
|
|
@ -375,7 +376,59 @@
|
||||||
(td (a (@ (href ,file-name))
|
(td (a (@ (href ,file-name))
|
||||||
,(display-store-item-short file-name)))
|
,(display-store-item-short file-name)))
|
||||||
(td ,(build-status-span status)))))
|
(td ,(build-status-span status)))))
|
||||||
derivations)))))))))
|
derivations)))))
|
||||||
|
(div
|
||||||
|
(@ (class "row"))
|
||||||
|
(div
|
||||||
|
(@ (class "col-sm-12"))
|
||||||
|
(h3 "Lint warnings")
|
||||||
|
(table
|
||||||
|
(@ (class "table"))
|
||||||
|
(thead
|
||||||
|
(tr
|
||||||
|
(th "Linter")
|
||||||
|
(th "Message")
|
||||||
|
(th "Location")))
|
||||||
|
(tbody
|
||||||
|
,@(map
|
||||||
|
(match-lambda
|
||||||
|
((id lint-checker-name lint-checker-description
|
||||||
|
lint-checker-network-dependent
|
||||||
|
file line-number column-number
|
||||||
|
message)
|
||||||
|
`(tr
|
||||||
|
(td (span (@ (style "font-family: monospace; display: block;"))
|
||||||
|
,lint-checker-name)
|
||||||
|
(p (@ (style "font-size: small; margin: 6px 0 0px;"))
|
||||||
|
,lint-checker-description))
|
||||||
|
(td ,message)
|
||||||
|
(td
|
||||||
|
,@(if (and file (not (string-null? file)))
|
||||||
|
`((ul
|
||||||
|
,@(map
|
||||||
|
(match-lambda
|
||||||
|
((id label url cgit-url-base)
|
||||||
|
(let ((output
|
||||||
|
`(,file
|
||||||
|
" "
|
||||||
|
(span
|
||||||
|
(@ (style "white-space: nowrap"))
|
||||||
|
"(line: " ,line-number
|
||||||
|
", column: " ,column-number ")"))))
|
||||||
|
(if
|
||||||
|
(and cgit-url-base
|
||||||
|
(not (string-null? cgit-url-base)))
|
||||||
|
`(li
|
||||||
|
(a (@ (href
|
||||||
|
,(string-append
|
||||||
|
cgit-url-base "tree/"
|
||||||
|
file "?id=" revision-commit-hash
|
||||||
|
"#n" line-number)))
|
||||||
|
,@output))
|
||||||
|
`(li ,@output)))))
|
||||||
|
git-repositories)))
|
||||||
|
'())))))
|
||||||
|
lint-warnings)))))))))
|
||||||
|
|
||||||
(define (view-revision/git-repositories git-repositories-and-branches
|
(define (view-revision/git-repositories git-repositories-and-branches
|
||||||
commit-hash)
|
commit-hash)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue