Skip to content

Commit ed8c935

Browse files
committed
diag: capture real Uno failure + rmumps version on Windows
1 parent f44fe1e commit ed8c935

2 files changed

Lines changed: 62 additions & 0 deletions

File tree

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Diagnose Uno on Windows
2+
3+
# Throwaway diagnostic: install the DNLP stack on a Windows runner and capture
4+
# Uno's REAL error (verbose), plus the actual rmumps version present. Manual
5+
# trigger only -- not part of the publish pipeline.
6+
7+
on:
8+
workflow_dispatch:
9+
10+
jobs:
11+
diagnose:
12+
runs-on: windows-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- uses: r-lib/actions/setup-r@v2
17+
with:
18+
r-version: release
19+
use-public-rspm: true
20+
21+
- uses: r-lib/actions/setup-r-dependencies@v2
22+
with:
23+
packages: |
24+
any::CVXR
25+
any::Uno
26+
any::sparsediff
27+
any::rmumps
28+
any::highs
29+
30+
- name: Run Uno diagnostic
31+
run: Rscript scripts/diag_uno.R

scripts/diag_uno.R

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Diagnostic: capture Uno's ACTUAL failure mode on this platform.
2+
# Run by .github/workflows/diagnose-uno-windows.yml (workflow_dispatch only).
3+
4+
options(warn = 1)
5+
6+
cat("===== installed versions =====\n")
7+
for (p in c("rmumps", "Uno", "sparsediff", "CVXR", "highs")) {
8+
v <- tryCatch(as.character(packageVersion(p)),
9+
error = function(e) "NOT INSTALLED")
10+
cat(sprintf("%-12s %s\n", p, v))
11+
}
12+
13+
cat("\n===== rmumps loadable? =====\n")
14+
cat("requireNamespace('rmumps'):",
15+
requireNamespace("rmumps", quietly = TRUE), "\n")
16+
17+
library(CVXR)
18+
19+
cat("\n===== convex solve via UNO (verbose = TRUE) =====\n")
20+
x <- Variable(2)
21+
prob <- Problem(Minimize(sum_squares(x - c(1, 2))))
22+
res <- tryCatch(
23+
psolve(prob, nlp = TRUE, solver = "UNO", verbose = TRUE),
24+
error = function(e) {
25+
cat("CAUGHT ERROR:\n", conditionMessage(e), "\n")
26+
NULL
27+
}
28+
)
29+
cat("\n----- result -----\n")
30+
print(res)
31+
cat("\n===== done =====\n")

0 commit comments

Comments
 (0)