Skip to content

Commit d551c8f

Browse files
Merge pull request #65 from SciML/qa-run-qa-v16-explicit-imports
QA: run_qa v1.6 form + ExplicitImports
2 parents 8abb568 + fef43cf commit d551c8f

4 files changed

Lines changed: 29 additions & 27 deletions

File tree

Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
1313
AMD = "0.5"
1414
ForwardDiff = "1"
1515
KLU = "0.6"
16+
LinearAlgebra = "1"
1617
MuladdMacro = "0.2.4"
1718
PrecompileTools = "1"
1819
Random = "1"

src/PureKLU.jl

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,16 @@ ordering is currently approximated by natural ordering; blocks of size
1414
"""
1515
module PureKLU
1616

17-
using SparseArrays
18-
using SparseArrays: SparseMatrixCSC
19-
using LinearAlgebra
17+
using SparseArrays: SparseArrays, SparseMatrixCSC
18+
using LinearAlgebra: LinearAlgebra, Adjoint, Transpose
2019
using MuladdMacro: @muladd # kept for future opt-in FMA; see src/Kernel.jl
21-
# Full `using` (not a selective `using PrecompileTools: ...`) so the bare
22-
# `PrecompileTools` name is in scope: the `@setup_workload`/`@compile_workload`
23-
# macro expansion in PrecompileTools 1.0.x references it directly, so a
24-
# selective import breaks loading on the lower compat bound (see Downgrade CI).
25-
using PrecompileTools
20+
# The bare `PrecompileTools` name must stay in scope: the
21+
# `@setup_workload`/`@compile_workload` macro expansion in PrecompileTools 1.0.x
22+
# references it directly, so importing the macros without the module name breaks
23+
# loading on the lower compat bound (see Downgrade CI).
24+
using PrecompileTools: PrecompileTools, @setup_workload, @compile_workload
2625
import SparseArrays: nnz, nonzeros
27-
import Base: (\), size, getproperty, setproperty!, propertynames, show
26+
import Base: size, getproperty, setproperty!, show
2827

2928
export klu, klu!
3029
export klu_factor!, klu_refactor!, klu_analyze!, solve!

test/qa/Project.toml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
33
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
44
PureKLU = "0c0d3e7f-3a8b-4f7e-b6f1-9a4d2e7c1f01"
5-
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
65
SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283"
76
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
87

@@ -12,7 +11,6 @@ PureKLU = {path = "../.."}
1211
[compat]
1312
Aqua = "0.8"
1413
JET = "0.9,0.10,0.11"
15-
SafeTestsets = "0.1, 1"
16-
SciMLTesting = "1"
14+
SciMLTesting = "1.6"
1715
Test = "1"
1816
julia = "1.10"

test/qa/qa.jl

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
1-
using PureKLU
2-
using Aqua
1+
using SciMLTesting, PureKLU, Test
32
using JET
4-
using Test
53

6-
@testset "Aqua" begin
7-
Aqua.test_all(PureKLU; stale_deps = false, deps_compat = false)
8-
# Genuine Aqua findings, marked broken pending fix — see
9-
# https://github.com/SciML/PureKLU.jl/issues/62
10-
@test_broken false # stale_deps: ForwardDiff declared in [deps] but unused — see https://github.com/SciML/PureKLU.jl/issues/62
11-
@test_broken false # deps_compat: missing [compat] for LinearAlgebra — see https://github.com/SciML/PureKLU.jl/issues/62
12-
@test_broken false # deps_compat: missing [compat] for extra Pkg — see https://github.com/SciML/PureKLU.jl/issues/62
13-
end
14-
15-
@testset "JET" begin
16-
@test_broken false # JET: toplevel error at src/PureKLU.jl:27 — parens around (\) in `import Base` — see https://github.com/SciML/PureKLU.jl/issues/62
17-
end
4+
run_qa(
5+
PureKLU;
6+
explicit_imports = true,
7+
ei_kwargs = (;
8+
no_stale_explicit_imports = (;
9+
# `@muladd` is imported from MuladdMacro but currently unused; kept as a
10+
# deliberate dependency for future opt-in FMA (see src/Kernel.jl).
11+
ignore = (Symbol("@muladd"),),
12+
),
13+
all_qualified_accesses_are_public = (;
14+
# Cross-package non-public names accessed qualified and needed:
15+
# AdjointFactorization / TransposeFactorization (LinearAlgebra) are
16+
# used under `isdefined` guards for cross-version compatibility.
17+
# RefValue (Base) is used as a struct field type.
18+
ignore = (:AdjointFactorization, :TransposeFactorization, :RefValue),
19+
),
20+
),
21+
)

0 commit comments

Comments
 (0)