Skip to content

Commit ae1c613

Browse files
committed
Restructure package: pure-Julia core, D-VARS extensions, opt-in Python validation
- Remove PyCall/Conda/Plots/Optim/Printf/Integrals from package deps; the package no longer installs a Python stack on 'pkg> add' - Delete deps/build.jl; pip setup moves to test/python_validation/setup.jl - Move varstool comparison tests to test/python_validation/ with their own environment (see its README for how to run them) - Provide D-VARS as package extensions: dvars_sensitivities activates with DataFrames+Surrogates, dvars_sensitivities_robust with DataFrames+BlackBoxOptim; debug output now behind verbose=false; 1-D quadrature via QuadGK - Move pce_sensitivities into examples/sobol_g_dvars.jl (its only caller) - Fix UndefVarError in generate_vars_samples for N == 0 - Stop mutating the global RNG in sampling, G-VARS and bootstrap (local RNGs) - Index info once in vars_analyse/gvars_analyse instead of findall per star/dim: ~150x faster on d=20, N=256, bit-identical results - Add pure-Julia test suite (sampling structure, analytical Ishigami/Sobol-G accuracy, G-VARS, bootstrap, both D-VARS extensions) - Add CI/TagBot/CompatHelper workflows and Documenter docs - Untrack Manifest.toml, add .gitignore, examples/Project.toml - Widen compat to Julia 1.10 LTS; bump version to 0.3.0 - README: fix broken code fence; update Dependencies section for the new optional Python validation and D-VARS extensions
1 parent 5848dfc commit ae1c613

37 files changed

Lines changed: 919 additions & 2472 deletions

.github/workflows/CI.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: CI
2+
on:
3+
push:
4+
branches:
5+
- main
6+
tags: ['*']
7+
pull_request:
8+
workflow_dispatch:
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
12+
jobs:
13+
test:
14+
name: Julia ${{ matrix.version }} - ${{ matrix.os }}
15+
runs-on: ${{ matrix.os }}
16+
timeout-minutes: 60
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
version:
21+
- '1.10'
22+
- '1'
23+
os:
24+
- ubuntu-latest
25+
include:
26+
- version: '1'
27+
os: windows-latest
28+
- version: '1'
29+
os: macOS-latest
30+
steps:
31+
- uses: actions/checkout@v4
32+
- uses: julia-actions/setup-julia@v2
33+
with:
34+
version: ${{ matrix.version }}
35+
- uses: julia-actions/cache@v2
36+
- uses: julia-actions/julia-buildpkg@v1
37+
- uses: julia-actions/julia-runtest@v1
38+
- uses: julia-actions/julia-processcoverage@v1
39+
- uses: codecov/codecov-action@v4
40+
with:
41+
files: lcov.info
42+
docs:
43+
name: Documentation
44+
runs-on: ubuntu-latest
45+
permissions:
46+
contents: write
47+
statuses: write
48+
steps:
49+
- uses: actions/checkout@v4
50+
- uses: julia-actions/setup-julia@v2
51+
with:
52+
version: '1'
53+
- uses: julia-actions/cache@v2
54+
- name: Build and deploy docs
55+
run: |
56+
julia --project=docs -e '
57+
using Pkg
58+
Pkg.develop(PackageSpec(path=pwd()))
59+
Pkg.instantiate()'
60+
julia --project=docs docs/make.jl
61+
env:
62+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
63+
DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}

.github/workflows/CompatHelper.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: CompatHelper
2+
on:
3+
schedule:
4+
- cron: 0 0 * * *
5+
workflow_dispatch:
6+
permissions:
7+
contents: write
8+
pull-requests: write
9+
jobs:
10+
CompatHelper:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Check if Julia is already available in the PATH
14+
id: julia_in_path
15+
run: which julia
16+
continue-on-error: true
17+
- name: Install Julia, but only if it is not already available in the PATH
18+
uses: julia-actions/setup-julia@v2
19+
with:
20+
version: '1'
21+
if: steps.julia_in_path.outcome != 'success'
22+
- name: Use Julia cache
23+
uses: julia-actions/cache@v2
24+
- name: Pkg.add("CompatHelper")
25+
run: julia -e 'import Pkg; Pkg.add("CompatHelper")'
26+
- name: CompatHelper.main()
27+
env:
28+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29+
run: julia -e 'import CompatHelper; CompatHelper.main()'

.github/workflows/TagBot.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: TagBot
2+
on:
3+
issue_comment:
4+
types:
5+
- created
6+
workflow_dispatch:
7+
inputs:
8+
lookback:
9+
default: '3'
10+
permissions:
11+
actions: read
12+
checks: read
13+
contents: write
14+
deployments: read
15+
issues: read
16+
discussions: read
17+
packages: read
18+
pages: read
19+
pull-requests: read
20+
repository-projects: read
21+
security-events: read
22+
statuses: read
23+
jobs:
24+
TagBot:
25+
if: github.event_name == 'workflow_dispatch' || github.actor == 'JuliaTagBot'
26+
runs-on: ubuntu-latest
27+
steps:
28+
- uses: JuliaRegistries/TagBot@v1
29+
with:
30+
token: ${{ secrets.GITHUB_TOKEN }}
31+
ssh: ${{ secrets.DOCUMENTER_KEY }}

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Manifest.toml
2+
docs/build/
3+
*.jl.cov
4+
*.jl.*.cov
5+
*.jl.mem

0 commit comments

Comments
 (0)