Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 2 additions & 25 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,29 +11,6 @@ on:
paths-ignore:
- 'docs/**'
jobs:
test:
strategy:
fail-fast: false
matrix:
group:
- Core
- AD
- nopre
version:
- '1'
- 'lts'
- 'pre'
exclude:
# AD tests crash with SIGSEGV on Julia 1.12+ (Zygote/Mooncake issue)
- group: AD
version: '1'
- group: AD
version: 'pre'
# nopre tests (JET) should not run on pre-release or LTS Julia versions
- group: nopre
version: 'pre'
uses: "SciML/.github/.github/workflows/tests.yml@v1"
with:
julia-version: "${{ matrix.version }}"
group: "${{ matrix.group }}"
tests:
uses: "SciML/.github/.github/workflows/grouped-tests.yml@v1"
secrets: "inherit"
6 changes: 1 addition & 5 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ IntegralsZygoteExt = ["Zygote", "ChainRulesCore"]

[compat]
ADTypes = "1.22.0"
Aqua = "0.8"
Arblib = "1"
ArrayInterface = "7.9.0"
ChainRulesCore = "1.18"
Expand All @@ -54,7 +53,6 @@ Cuba = "2.2"
Cubature = "1.5"
DifferentiationInterface = "0.7"
Distributions = "0.25.87"
ExplicitImports = "1.14.0"
FastGaussQuadrature = "0.5,1"
FastTanhSinhQuadrature = "2.1"
FiniteDiff = "2.12"
Expand All @@ -79,14 +77,12 @@ julia = "1.10"

[extras]
ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b"
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
Arblib = "fb37089c-8514-4489-9461-98f9c8763369"
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
Cuba = "8a292aeb-7a57-582c-b821-06e4c11590b1"
Cubature = "667455a9-e2ce-5579-9412-b964f529a492"
DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63"
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7"
FastGaussQuadrature = "442a2c76-b920-505d-bb47-c5924d526838"
FastTanhSinhQuadrature = "b650e0df-f744-4436-b963-b44034668c57"
FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41"
Expand All @@ -101,4 +97,4 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"

[targets]
test = ["ADTypes", "Aqua", "Arblib", "StaticArrays", "FiniteDiff", "SafeTestsets", "Test", "Distributions", "ForwardDiff", "Zygote", "ChainRulesCore", "FastGaussQuadrature", "FastTanhSinhQuadrature", "Cuba", "Cubature", "MCIntegration", "Mooncake", "ExplicitImports", "DifferentiationInterface", "Pkg", "HAdaptiveIntegration"]
test = ["ADTypes", "Arblib", "StaticArrays", "FiniteDiff", "SafeTestsets", "Test", "Distributions", "ForwardDiff", "Zygote", "ChainRulesCore", "FastGaussQuadrature", "FastTanhSinhQuadrature", "Cuba", "Cubature", "MCIntegration", "Mooncake", "DifferentiationInterface", "Pkg", "HAdaptiveIntegration"]
16 changes: 0 additions & 16 deletions test/explicit_imports_tests.jl

This file was deleted.

7 changes: 0 additions & 7 deletions test/nopre/Project.toml

This file was deleted.

15 changes: 0 additions & 15 deletions test/qa.jl

This file was deleted.

17 changes: 17 additions & 0 deletions test/qa/Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[deps]
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7"
Integrals = "de52edbc-65ea-441a-8357-d3a637375a31"
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[sources]
Integrals = {path = "../.."}

[compat]
Aqua = "0.8"
ExplicitImports = "1.14.0"
JET = "0.9, 0.10, 0.11.3"
Integrals = "5"
Test = "1.10"
julia = "1.10"
29 changes: 29 additions & 0 deletions test/nopre/jet_tests.jl → test/qa/qa.jl
Original file line number Diff line number Diff line change
@@ -1,6 +1,35 @@
using Integrals
using Aqua
using ExplicitImports
using JET
using Test
using LinearAlgebra: norm

@testset "Aqua" begin
Aqua.find_persistent_tasks_deps(Integrals)
Aqua.test_ambiguities(Integrals, recursive = false)
Aqua.test_deps_compat(Integrals)
Aqua.test_piracies(
Integrals,
treat_as_own = [IntegralProblem, SampledIntegralProblem]
)
Aqua.test_project_extras(Integrals)
Aqua.test_stale_deps(Integrals)
Aqua.test_unbound_args(Integrals)
Aqua.test_undefined_exports(Integrals)
end

@testset "ExplicitImports" begin
@test check_no_implicit_imports(Integrals) === nothing
# Note: norm is used in default parameters in included files (algorithms.jl)
# which ExplicitImports may not detect properly, so we ignore it
@test check_no_stale_explicit_imports(
Integrals; ignore = (
:norm, :AbstractVerbositySpecifier, :MessageLevel,
:DebugLevel, :Detailed, :ErrorLevel, :Minimal, :None, :Standard, :All,
)
) === nothing
end

@testset "JET static analysis" begin
@testset "QuadGKJL" begin
Expand Down
20 changes: 12 additions & 8 deletions test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,19 @@ using Test

const GROUP = get(ENV, "GROUP", "All")

function activate_nopre_env()
Pkg.activate("nopre")
Pkg.develop(PackageSpec(path = dirname(@__DIR__)))
# QA (Aqua + ExplicitImports + JET) runs in an isolated environment (test/qa) so
# its tooling deps never enter the main test target's resolve. On Julia < 1.11
# the [sources] table is ignored, so develop the package by path to test the PR
# branch code.
function activate_qa_env()
Pkg.activate(joinpath(@__DIR__, "qa"))
if VERSION < v"1.11.0-DEV.0"
Pkg.develop(PackageSpec(path = dirname(@__DIR__)))
end
return Pkg.instantiate()
end

if GROUP == "All" || GROUP == "Core"
@time @safetestset "Explicit Imports" include("explicit_imports_tests.jl")
@time @safetestset "Quality Assurance" include("qa.jl")
@time @safetestset "Interface Tests" include("interface_tests.jl")
@time @safetestset "Infinite Integral Tests" include("inf_integral_tests.jl")
@time @safetestset "Gaussian Quadrature Tests" include("gaussian_quadrature_tests.jl")
Expand All @@ -28,7 +32,7 @@ if GROUP == "All" || GROUP == "AD"
@time @safetestset "Nested AD Tests" include("nested_ad_tests.jl")
end

if GROUP == "nopre"
activate_nopre_env()
@time @safetestset "JET Static Analysis" include("nopre/jet_tests.jl")
if GROUP == "QA"
activate_qa_env()
@time @safetestset "Quality Assurance" include("qa/qa.jl")
end
16 changes: 16 additions & 0 deletions test/test_groups.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Root Integrals.jl test-group matrix, consumed by the reusable
# grouped-tests.yml@v1 caller (.github/workflows/CI.yml). Each group runs on
# every Julia version it lists; runtests.jl dispatches on GROUP.

[Core]
versions = ["lts", "1", "pre"]

# AD tests crash with SIGSEGV on Julia 1.12+ (Zygote/Mooncake issue), so only
# the LTS channel is exercised.
[AD]
versions = ["lts"]

# Aqua + ExplicitImports + JET, isolated in test/qa/Project.toml. JET is not
# compatible with the prerelease channel.
[QA]
versions = ["lts", "1"]
Loading