aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-10-10 17:21:43 +0100
committerChristopher Baines <mail@cbaines.net>2023-10-10 17:21:43 +0100
commitab7695dcb23c0265cc3095b7de645d408bb0f9b2 (patch)
tree58e76ec690d73044e0e41812e1d4f98d6b82bfcb
parent373c887b0f4d47f60a63d1b699c4fe80d0054a60 (diff)
downloadqa-frontpage-ab7695dcb23c0265cc3095b7de645d408bb0f9b2.tar
qa-frontpage-ab7695dcb23c0265cc3095b7de645d408bb0f9b2.tar.gz
Improve error reporting around branches
-rw-r--r--guix-qa-frontpage/guix-data-service.scm4
-rw-r--r--guix-qa-frontpage/view/branch.scm62
-rw-r--r--guix-qa-frontpage/view/shared.scm14
3 files changed, 63 insertions, 17 deletions
diff --git a/guix-qa-frontpage/guix-data-service.scm b/guix-qa-frontpage/guix-data-service.scm
index 2af4b46..8de4e21 100644
--- a/guix-qa-frontpage/guix-data-service.scm
+++ b/guix-qa-frontpage/guix-data-service.scm
@@ -75,8 +75,10 @@
((string-contains message
"yet to process revision")
'yet-to-process-revision)
+ ((string=? message "unknown commit")
+ 'unknown-commit)
(else
- 'unknown))))))))))
+ 'unknown-error))))))))))
(assoc-ref
(guix-data-service-error-response-body exn)
"query_parameters")))))
diff --git a/guix-qa-frontpage/view/branch.scm b/guix-qa-frontpage/view/branch.scm
index 1bddbba..3170b06 100644
--- a/guix-qa-frontpage/view/branch.scm
+++ b/guix-qa-frontpage/view/branch.scm
@@ -18,7 +18,9 @@
up-to-date-with-master
master-branch-systems-with-low-substitute-availability)
(define derivation-changes-counts
- (assq-ref derivation-changes 'counts))
+ (if (assq-ref derivation-changes 'exception)
+ derivation-changes
+ (assq-ref derivation-changes 'counts)))
(layout
#:title (simple-format #f "Branch ~A" branch)
@@ -61,20 +63,50 @@ td.bad {
,@(cond
((assq-ref up-to-date-with-master 'exception)
- `((p (@ (style ,(string-join
- '("text-align: center;"
- "font-weight: bold;"
- "padding: 1rem;"
- "max-width: 46rem;"
- "border-width: 0.35em;"
- "border-style: dashed;"
- "border-color: red"))))
- "Exception checking changes between "
- (a (@ (href ,(string-append
- "https://data.qa.guix.gnu.org/revision/"
- (assq-ref revisions 'base))))
- "merge base")
- " and master.")))
+ (let ((base-commit-err
+ (assq-ref
+ (assoc-ref
+ (assq-ref up-to-date-with-master 'invalid_query_parameters)
+ "base_commit")
+ 'error))
+ (target-commit-err
+ (assq-ref
+ (assoc-ref
+ (assq-ref up-to-date-with-master 'invalid_query_parameters)
+ "target_commit")
+ 'error)))
+ `((p (@ (style ,(string-join
+ '("text-align: center;"
+ "font-weight: bold;"
+ "padding: 1rem;"
+ "max-width: 46rem;"
+ "border-width: 0.35em;"
+ "border-style: dashed;"
+ "border-color: red"))))
+ ,@(cond
+ ((member base-commit-err '(unknown-commit
+ failed-to-process-revision
+ yet-to-process-revision))
+ `("Unable to check changes between " branch " and master."
+ (br)
+ (a (@ (href ,(string-append
+ "https://data.qa.guix.gnu.org/revision/"
+ (assq-ref revisions 'base))))
+ "Merge base")
+ ,(cond
+ ((eq? base-commit-err 'unknown-commit)
+ " is not a commit known to the data service.")
+ ((eq? base-commit-err 'failed-to-process-revision)
+ " was not processed successfully by the data service.")
+ ((eq? base-commit-err 'yet-to-process-revision)
+ " has not be processed by the data service yet."))))
+ (else
+ `("Exception checking changes between "
+ (a (@ (href ,(string-append
+ "https://data.qa.guix.gnu.org/revision/"
+ (assq-ref revisions 'base))))
+ "merge base")
+ " and master.")))))))
((assq-ref up-to-date-with-master 'up-to-date?)
'())
(else
diff --git a/guix-qa-frontpage/view/shared.scm b/guix-qa-frontpage/view/shared.scm
index d12fded..3411224 100644
--- a/guix-qa-frontpage/view/shared.scm
+++ b/guix-qa-frontpage/view/shared.scm
@@ -520,6 +520,12 @@
'base
'target)))))
,(cond
+ ((eq? error 'unknown-commit)
+ (string-append
+ (if (string=? param "base_commit")
+ "Base revision "
+ "Target revision ")
+ "unknown to the data service."))
((member error
'(yet-to-process-revision
failed-to-process-revision))
@@ -530,6 +536,12 @@
"Failed")
(if (string=? param "base_commit")
"base revision (from master branch)"
- "target revision")))))))))))
+ "target revision")))
+ (else
+ (string-append
+ "Error with "
+ (if (string=? param "base_commit")
+ "base revision."
+ "target revision.")))))))))))
params)))
'()))))))))