Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
286 commits
Select commit Hold shift + click to select a range
db5a42f
more definite t1map file wildcard
lsaca05 Apr 29, 2024
fe41766
rename test file VFA input, wildcard to catch .gz in preference input…
lsaca05 Apr 29, 2024
8771f4e
change runner cmd, remove wildcard from run_dce_auto since it can be …
lsaca05 Apr 29, 2024
3fc05db
pref file path fix attempt, rename run_dce_auto->run_dce_cli, fix run…
lsaca05 Apr 29, 2024
7f92962
cut down BIDS test files to 1 slice, update run_DCE.yml
lsaca05 Apr 29, 2024
17cbb67
update run_DCE.yml, add force use preference relaxivity, add date to …
lsaca05 Apr 29, 2024
ba2d7e6
swap DCE CLI arg positions, fix test DCE json
lsaca05 Apr 29, 2024
b5aeac9
ditto, conflict fix
lsaca05 Apr 29, 2024
957fdb4
update run_DCE.yml, maybe fix .fig->.png, rename test files
lsaca05 Apr 29, 2024
a4f7a13
one last run_DCE.yml fix (swap DCE args)
lsaca05 Apr 29, 2024
34c1078
upload-artifact@v4 made artifacts immutable so add matrix release to …
lsaca05 Apr 30, 2024
4f72fc7
oop forgor to add os before release
lsaca05 Apr 30, 2024
b6c9783
add more json fields to get time res from, iterate RUNA if chopped to…
lsaca05 May 29, 2024
db06f42
throw specific error if AIF voxels removed in RUNA
lsaca05 Jun 4, 2024
0b3180b
preserve Adata tr/fa/blood_t1 into RUNB, add import AIF signal intens…
lsaca05 Jun 4, 2024
d4d687c
use fit instead of lsqcurvefit in AIFbiexpcon + weighting support, mi…
lsaca05 Jun 21, 2024
48b6947
use more robust str2double instead of str2num, turns out they used mu…
lsaca05 May 21, 2025
17095e1
misc changes
lsaca05 May 21, 2025
23bde9f
determine institute from machine if no institution field
lsaca05 May 23, 2025
13ded65
replace deprecated ubuntu-20.04 runner with ubuntu-22.04
lsaca05 Jun 17, 2025
a6fd1db
set site to unknown if JSON fields not found
lsaca05 Jun 17, 2025
f5b356b
add logic to prevent NaN from blank str2double input (str2num did not…
lsaca05 Jul 2, 2025
b120076
robust AIF fit, RUNE in CLI, some misc fixes and support for that
lsaca05 Sep 22, 2025
912a774
ANIMAL - add gpufit weights from spreadsheet, change data loading in …
lsaca05 Sep 22, 2025
bbb65ef
convergence failures are now NaN since negative values are now valid
lsaca05 Oct 3, 2025
0f8afc3
add new find t_end/end_ss brute force method
lsaca05 Oct 22, 2025
5226b65
Add algorithm test suite, parity baselines, and synthetic fixtures
ironictoo Feb 14, 2026
9182040
Skip heavy T1 mapping step on pull requests
ironictoo Feb 14, 2026
65a3753
Speed up PR CI with single-matrix synthetic DCE smoke run
ironictoo Feb 14, 2026
0a140f6
Fix workflow syntax by splitting push and PR CI jobs
ironictoo Feb 14, 2026
689aa95
Add Python contract runner for MATLAB baseline parity checks
ironictoo Feb 14, 2026
0a69051
Port model_tofts_cfit to Python with baseline parity checks
ironictoo Feb 14, 2026
5980903
Port model_patlak_cfit to Python and extend parity checks
ironictoo Feb 14, 2026
ba67d36
Add venv deps and port core DCE/DSC/parametric Python models
ironictoo Feb 14, 2026
0ebf6f5
Document Python porting status and update roadmap
ironictoo Feb 14, 2026
aa1e3c1
Port DSC sSVD model and close parity baseline gap
ironictoo Feb 14, 2026
b989c13
Expand DCE parity through FXR and document CLI scope
ironictoo Feb 14, 2026
e255f1f
Document CLI scope decisions for DCE port
ironictoo Feb 14, 2026
5592c60
Update scope: keep xls, drop ImageJ roi input
ironictoo Feb 14, 2026
09aa1e3
Implement real DCE Stage D pipeline and end-to-end tests
ironictoo Feb 14, 2026
9fc88ee
Support 2D single-slice maps in Stage A real mode
ironictoo Feb 14, 2026
d6c6297
Align DCE Stage A/D behavior with MATLAB parity
ironictoo Feb 14, 2026
36e4b6d
Add DCE Ktrans parity fixtures and MATLAB baseline generator
ironictoo Feb 14, 2026
9c968bd
Add Python CI parity checks and committed DCE fixtures
ironictoo Feb 14, 2026
c52d4fc
Normalize CI fixture JSON file modes
ironictoo Feb 14, 2026
b3160ed
Broaden DCE dataset parity to include Tofts ve map
ironictoo Feb 14, 2026
e080d6c
Add tiny DCE settings matrix tests and MATLAB preferences bridge
ironictoo Feb 14, 2026
049b123
feat(python): add DCE GUI v1 and unify CLI config/events
ironictoo Feb 15, 2026
b7b93cd
add file browse to GUI
ironictoo Feb 15, 2026
0e437f4
docs: refresh python dce/gui status and option semantics
ironictoo Feb 15, 2026
71a539a
tests: mask Tofts ve parity to measurable Ktrans voxels
ironictoo Feb 15, 2026
5dbbaeb
python: improve auto backend probe and cpufit fallback
ironictoo Feb 15, 2026
7816fab
python: add acceleration installer and update setup docs
ironictoo Feb 16, 2026
c18ac39
Update installer release selection and acceleration install checks
ironictoo Feb 16, 2026
9c9dbda
Add Stage-D acceleration fallback from gpufit to cpufit
ironictoo Feb 16, 2026
2912bf0
Auto-select CUDA-matched acceleration asset in installer
ironictoo Feb 16, 2026
d59c492
Add Phase-1 Python reliability tests and portability CI
ironictoo Feb 16, 2026
1ed2258
Expand Stage-D acceleration wiring and multi-model parity scaffolding
ironictoo Feb 16, 2026
0c41240
Update docs and roadmap status notes
ironictoo Feb 16, 2026
827715f
improved install script, moved python readme and roadmap
ironictoo Feb 17, 2026
bf34155
Update installer tests for driver-first CUDA selection
ironictoo Feb 17, 2026
74bf1ad
Improve parity runner UX and VE-only Ktrans masking
ironictoo Feb 17, 2026
5352404
Harden DCE parity gating and Patlak robustness
ironictoo Feb 17, 2026
abf9ace
Improve DCE parity tuning and refresh MATLAB baselines
ironictoo Feb 18, 2026
b9ef0ad
benchmark
ironictoo Feb 18, 2026
5ccc44a
install script sets up gpufit for matlab
ironictoo Feb 18, 2026
17727d0
Add missing benchmark script
ironictoo Feb 18, 2026
3327417
tests: migrate Python suite to pytest baseline
ironictoo Feb 19, 2026
cba784e
tests: add coverage gate and pytest parity runner
ironictoo Feb 19, 2026
0443e38
tests: finish parity optionization and docs
ironictoo Feb 19, 2026
64be540
docs: record parity and portability gate status
ironictoo Feb 19, 2026
e890f04
tests: finalize pytest migration cleanup and parity CLI ergonomics
ironictoo Feb 19, 2026
2f90900
Add OSIPI reliability datasets, tests, and summary artifacts
ironictoo Feb 19, 2026
fd85583
Split OSIPI backend tests and enable default core reliability runs
ironictoo Feb 19, 2026
7966841
Reorganize test assets under tests/data and update references
ironictoo Feb 19, 2026
60ae937
Unify 2cxm path and speed up DCE forward fits
ironictoo Feb 19, 2026
95d0ed5
Fix OSIPI fp units in summary and fast backend checks
ironictoo Feb 19, 2026
65cfae4
Add script-option audit and expand DCE parity coverage
ironictoo Feb 19, 2026
05cafd4
tests: improve parity runners and move contract tooling
ironictoo Feb 20, 2026
383010e
Add GNU GPL v3 license
ironictoo Feb 20, 2026
9970875
docs: consolidate python transition and test guidance
ironictoo Feb 20, 2026
4a7c749
Add OSIPI SI2Conc merge-gate reporting and DCE edge-case regressions
ironictoo Feb 20, 2026
816148d
Tighten primary DCE OSIPI gates and add backend consistency checks
ironictoo Feb 20, 2026
397ff36
Add parametric T1 GUI v1 and update transition status docs
ironictoo Feb 20, 2026
dcb5bf6
Add BIDS-based parametric T1 naming/integrity regression tests
ironictoo Feb 20, 2026
adb4eec
Commit parametric pipeline, OSIPI SI2Conc assets, and nonlinear parit…
ironictoo Feb 20, 2026
5e21456
Add nonlinear and two-point fit support to parametric pipeline
ironictoo Feb 20, 2026
37fea44
Add parametric T1 B1-map support with tests and docs
ironictoo Feb 20, 2026
3775096
Add parametric TR fallback from script preferences
ironictoo Feb 20, 2026
18dd149
Start Python Part E post-fit analysis core with tests
ironictoo Feb 20, 2026
7f18e2d
Add Part E analysis artifact writers for ROI and voxel outputs
ironictoo Feb 20, 2026
33a7e21
Add T1 odd-echo/smoothing workflow and Part E plot summaries
ironictoo Feb 20, 2026
177e26a
Add BIDS qualification workflow and CPUfit handoff repro
ironictoo Feb 20, 2026
5308a8c
Harden DCE qualification and stabilize accelerated ex-tofts
ironictoo Feb 22, 2026
1273265
Add phantom GT qualification diagnostics and BIDS test derivatives
ironictoo Feb 23, 2026
9399ff2
Add phantom GT scatter plots for GT-vs-fit review
ironictoo Feb 24, 2026
e9e5817
Add selectable DCE baseline auto-detection methods
ironictoo Feb 24, 2026
74943e1
added high temporal res datasets
ironictoo Feb 25, 2026
48cec65
Merge branch 'dev' into codex/algorithm-test-suite
ironictoo Feb 25, 2026
9d7948e
Merge pull request #36 python port and test code
ironictoo Feb 25, 2026
1949d08
add pipeline folder arg to BIDS discovery (most datasets may have der…
lsaca05 Feb 25, 2026
53d79c0
don't skip cpufit tests when cuda is available
ironictoo Feb 27, 2026
1838c2b
update CI testing
ironictoo Feb 27, 2026
d803188
Update matlab parse preference and add test
ironictoo Feb 27, 2026
34bcf6b
CI bugfixes
ironictoo Feb 27, 2026
8f2b941
Update readme
ironictoo Feb 27, 2026
a4f4340
docs: add MkDocs Pages site and migrate wiki content
ironictoo Mar 1, 2026
f786dcf
delete old test file structure
lsaca05 Feb 26, 2026
4eedf6f
docs: enhance README with batch processing instructions and output st…
lsaca05 Mar 3, 2026
153cb78
docs: update TODO, PORTING_STATUS, and ROADMAP with recent DCE config…
lsaca05 Mar 3, 2026
cb92ecf
feat: add DCE file discovery and batch processing scripts for BIDS da…
lsaca05 Mar 3, 2026
ab31a89
Merge remote-tracking branch 'origin/dev' into new-aif-fitting-and-RUNE
lsaca05 Mar 3, 2026
8ef4988
Merge branch 'new-aif-fitting-and-RUNE' into dev
lsaca05 Mar 3, 2026
4ff3988
refactor: remove temp weight loading code and streamline function par…
lsaca05 Mar 4, 2026
e8d0607
Improved python batch parity.
ironictoo Mar 4, 2026
a9bbd89
reorganized documents, updated accelerator installer, fix one test bug
ironictoo Mar 6, 2026
5bd039b
feat: add Python BIDS batch runner for parametric T1 mapping; update …
lsaca05 Mar 6, 2026
8f9d70a
add gpufit/cpufit acceleration for T1 mapping t1_fa_fit
lsaca05 Mar 6, 2026
27ec509
add parametric bids batching script
lsaca05 Mar 6, 2026
3cdf769
update script_preferences audit references
lsaca05 Mar 6, 2026
f5ef0a1
use latest checkout action (v6)
lsaca05 Mar 7, 2026
acd6a65
update actions to use new test data paths
lsaca05 Mar 7, 2026
2698bbe
fix actions matlab paths again
lsaca05 Mar 7, 2026
9d82171
fix: update ROI checks to use greater than zero condition
lsaca05 Mar 7, 2026
c40125d
one more ROI check
lsaca05 Mar 7, 2026
45d4231
something about new AIF fit method or sam change caused test data tor…
lsaca05 Mar 9, 2026
dbab95b
add end of baseline and start of biexp to aif fitting alg, tests: iso…
lsaca05 Mar 11, 2026
2d84a6d
feat: enhance DCE and T1 workflows with runtime parity tests and conf…
lsaca05 Mar 18, 2026
81f084d
feat: add support for 'fit_transition_times' timing method in AIF bie…
lsaca05 Mar 18, 2026
e3a71d3
Strengthen MATLAB<->Python parity testing
ironictoo Jul 2, 2026
2a86556
ascii art and version number
ironictoo Jul 8, 2026
2806551
Rework DCE parity: GM/WM regions, RMSE+CI metrics, ROI-only fit mode
ironictoo Jul 10, 2026
2bce8fc
Remove --run-parity/--run-full-parity; roi_xls parity default-on
ironictoo Jul 10, 2026
9cff785
Phantom GT: real Python CIs, GT-in-CI coverage metric, BIDS data docs
ironictoo Jul 10, 2026
077c863
new t1 gm roi, notes
ironictoo Jul 10, 2026
8cd2cb2
Consolidate test fixtures into BIDS_test; remove ci_fixtures
ironictoo Jul 11, 2026
5192cd1
docs: reconcile parity/preferences/fixture changes; ignore RUNNER_DATA
ironictoo Jul 12, 2026
9244803
OSIPI: gate on official tolerances, make peer spread reproducible
ironictoo Jul 13, 2026
25a5c83
OSIPI: multi-backend verification + backend-agnostic multi-start (2CU…
ironictoo Jul 13, 2026
86d9704
OSIPI: adopt Gpufit-harness random multi-start; correct 2CXM root cause
ironictoo Jul 13, 2026
62ba659
OSIPI: reparameterize accelerated 2CXM/2CUM to E=Ktrans/Fp (analytic …
ironictoo Jul 14, 2026
3fd2676
Update all fp lower limits to 1e-4
ironictoo Jul 14, 2026
1f96a68
OSIPI finished patched in gpufit, remove xfail
ironictoo Jul 14, 2026
775d294
Upgrade GitHub Actions versions in docs workflow
lsaca05 Jul 14, 2026
6d9758a
Upgrade GitHub actions to latest versions
lsaca05 Jul 14, 2026
9a91c74
Fix runtime parity bug
ironictoo Jul 15, 2026
72719a8
Fix CI paths left stale by BIDS_test fixture consolidation
ironictoo Jul 15, 2026
313d3b6
Refresh sub-10bbbdownsample MATLAB parity baseline maps
ironictoo Jul 15, 2026
3c17ff3
Add AIF-sidecar SteadyStateEndTimeIndex mechanism; default auto-detec…
ironictoo Jul 15, 2026
66fd795
Switch sub-10bbbdownsample parity fixture to always auto-detect stead…
ironictoo Jul 15, 2026
3abdc0c
Remove dead _baseline_window function
ironictoo Jul 15, 2026
b3f5a6a
Add MATLAB region-parity baseline drift guard (sub-10bbbdownsample)
ironictoo Jul 15, 2026
6140e1d
Migrate settings-matrix test and DCE benchmark to the AIF sidecar mec…
ironictoo Jul 15, 2026
e5a7554
Migrate phantom GT baseline alignment to the AIF sidecar mechanism
ironictoo Jul 15, 2026
4022173
Fix matlabref drift guard: gate on correlation, not max-abs-diff
ironictoo Jul 15, 2026
0daf3a4
feat: Consolidate Stage-D fitting backend for Patlak model
ironictoo Jul 17, 2026
910c307
feat: Migrate Tofts and Extended Tofts models to shared Stage-D fit m…
ironictoo Jul 17, 2026
14f3b01
Refactor DCE model fitting to utilize shared backend machinery
ironictoo Jul 17, 2026
75db58d
Refactor DCE fitting pipeline to unify model fitting and improve erro…
ironictoo Jul 17, 2026
cb0cc68
Enhance Patlak candidate assembly and consistently clamp initial para…
ironictoo Jul 17, 2026
276e4f2
update agents file
ironictoo Jul 17, 2026
8ddec76
Fix Stage-D unit-scaling and CI/guard regressions found in self-review
ironictoo Jul 22, 2026
ddc35c0
Switch MATLAB region-parity drift guard to Spearman correlation
ironictoo Jul 22, 2026
19b0818
Merge pull request #39 from petmri/parity-testing-improvements
ironictoo Jul 22, 2026
16e54fc
Added compare end ss tool
ironictoo Jul 22, 2026
a9d78b6
Changed end_ss default to 'tv' algorithm
ironictoo Jul 22, 2026
49cbe34
Update Ktrans checks to use Spearman correlation for improved robustn…
ironictoo Jul 22, 2026
aa9889b
comment out old leftover gpufit weighting, t1 mapping nans now -1 the…
lsaca05 Apr 16, 2026
60c43da
Regenerate sub-10bbbdownsample MATLAB parity maps with CPU confidence…
ironictoo Jul 23, 2026
3e6ca01
Add QoF + large-data-distribution project docs; trim batch_parity status
ironictoo Jul 23, 2026
4f86423
Add per-voxel quality-of-fit (reduced chi2) and wire into DCE parity …
ironictoo Jul 23, 2026
6ea2322
update prefs file to reflect corrected BIDS filenames
lsaca05 Jul 23, 2026
0771ff0
QoF: eBayes σ variance moderation (inverse-gamma shrink + clamp) + do…
ironictoo Jul 24, 2026
3134e1e
QoF: native pipeline hook writes sigma/chi2nu/reliable maps (opt-in)
ironictoo Jul 24, 2026
d863e1a
docs: record RUNNER_DATA QoF validation (real-data cross-backend dive…
ironictoo Jul 24, 2026
192d3c1
QoF: update injection window parameters to auto-detect for consistenc…
ironictoo Jul 24, 2026
4d5a57e
docs: add detailed analysis of Stage-B AIF fitting differences betwee…
ironictoo Jul 25, 2026
0ffdfd4
Fix MATLAB/Python Stage-B AIF fitting parity
ironictoo Jul 26, 2026
955bea5
Add biexp_fit to the detector harness; fix L3 fit_success false negative
ironictoo Jul 26, 2026
2148603
Refactor/Simplify AIF fitting logic to use fit_pass parameter; update…
ironictoo Jul 27, 2026
bd6b77c
Default to tv for baseline-end detection; aif_Robust off; fix tv thre…
ironictoo Jul 28, 2026
b34a146
Close and archive the DCE batch-parity project
ironictoo Jul 28, 2026
51986d6
Merge branch 'aif-fitting-parity' into dev
ironictoo Jul 28, 2026
aafbd95
Consolidate mask/AIF fixture names onto the label- BIDS convention
ironictoo Jul 28, 2026
fa7e7bc
Fix force_cpu parity guard blocking CI on CUDA-less runners
ironictoo Jul 28, 2026
94382f2
Record a brief-comment standard in AGENTS.md; fix a misleading CI ste…
ironictoo Jul 28, 2026
cc4c833
Close parity testing gaps A and B: Stage-B AIF contract + backend equ…
ironictoo Jul 29, 2026
1019602
CI: enforce the backend-equivalence gate by installing pyCpufit/pyGpufit
ironictoo Jul 29, 2026
30bd606
Unify the DCE parity gate: one rule, no per-model/param/region except…
ironictoo Jul 29, 2026
d068ce9
Normalize file paths to use placeholder convention; remove user-speci…
ironictoo Jul 29, 2026
0b4d413
Add vectorization to DCE pipeline to improve performance
ironictoo Jul 30, 2026
fc8cfe2
Fix bug in runtime_parity, fix bugs in run_dce_benchmark.py
ironictoo Jul 31, 2026
e849683
Fix Tp reconstruction for tissue_uptake post-fit residuals
ironictoo Aug 1, 2026
05c1aa5
Simplify on dce_pipeline.py
ironictoo Aug 2, 2026
d20a121
simplify dce_models and backends
ironictoo Aug 2, 2026
ba44ccf
Hoist loop-invariant work out of the DCE forward-model residuals
ironictoo Aug 2, 2026
7b10090
Collapse 2CXM to one implementation on the 0.1 s dense grid
ironictoo Aug 3, 2026
c820d18
Log 2CXM fit-performance follow-ups as feature requests
ironictoo Aug 3, 2026
3933a6d
Correct the analytic-Jacobian note: GPUfit has them, python has none
ironictoo Aug 3, 2026
858e9f5
Record the cpufit/gpufit 2CXM profile
ironictoo Aug 3, 2026
da74d8b
simplify on dce_pipeline
ironictoo Aug 8, 2026
a599f9f
Merge branch 'simplify/python-port' into dev
ironictoo Aug 10, 2026
b714554
Defaults single-source, phases 0-1: the file, the resolver, the anti-…
ironictoo Aug 12, 2026
4b9cb1e
Defaults single-source, phase 2: cut dce_pipeline over to the default…
ironictoo Aug 12, 2026
fe07577
Defaults single-source, phase 3: backends and models read the default…
ironictoo Aug 12, 2026
0df9098
Defaults single-source, phase 4: an AST guard against defaults re-gro…
ironictoo Aug 12, 2026
8beacc6
Defaults single-source, phase 5: MATLAB values, docs, and a guard tha…
ironictoo Aug 12, 2026
6110cb5
doc clean up
ironictoo Aug 12, 2026
aa03d74
Drop references to the deleted MaxFunEvals comparison harness
ironictoo Aug 13, 2026
d87a55f
Regenerate the MATLAB parity reference, and gate on fit quality as we…
ironictoo Aug 13, 2026
471a99c
Merge branch 'defaults/single-source' into dev
ironictoo Aug 13, 2026
dc15b83
Relax version contraints on requirements, remove stale qualification …
ironictoo Aug 13, 2026
f125a0d
Merge branch 'master' into dev
ironictoo Aug 13, 2026
e575ef2
Add partial BIDS input discovery alongside the strict variant
ironictoo Aug 17, 2026
f8183b9
Prune the example run configs and split the smoke test off from them
ironictoo Aug 17, 2026
5668550
Drop aif_mode=auto; it read as a promise the pipeline never made
ironictoo Aug 17, 2026
1de1335
Rework the DCE GUI: legibility, progressive disclosure, auto-find
ironictoo Aug 17, 2026
8a120b3
Read the AIF sidecar baseline end in acquired-frame coordinates
ironictoo Aug 17, 2026
e05e728
Retire duplicate DCE preference spellings, rename the Stage-B fit window
ironictoo Aug 17, 2026
493f7c8
Collapse duplicate-unit DCE preferences onto one spelling each
ironictoo Aug 17, 2026
2c81dcc
Collapse the AIF curve mode onto the top-level aif_mode field
ironictoo Aug 17, 2026
6a85423
Move the DCE GUI onto tabs: Inputs, CLI Output, QC Figures, Results
ironictoo Aug 17, 2026
1b39901
Fill in the Results tab with a slice viewer for maps and dynamics
ironictoo Aug 17, 2026
412c2a6
Retire the script preferences audit and stop publishing archived notes
ironictoo Aug 17, 2026
139977e
Rewrite the documentation site for end users and add a model reference
ironictoo Aug 21, 2026
278f0bf
Rename the installer to install.py and give it a GUI launcher
ironictoo Aug 21, 2026
7969a2c
Publish an OSIPI conformance badge from the accelerated CI job
ironictoo Aug 21, 2026
c0d27d1
Fix three defects that stopped ordinary CLI and batch runs
ironictoo Aug 23, 2026
8109e50
Make a run config mean one thing across the CLI, GUI and batch
ironictoo Aug 23, 2026
4922145
Render run progress for people, and stamp runs with the build
ironictoo Aug 24, 2026
23cc1f8
Give parametric T1 a single source for its defaults
ironictoo Aug 24, 2026
559b64c
Give a parametric T1 run the QC figures it never had
ironictoo Aug 24, 2026
6cba00e
Extract the front end the two GUIs share
ironictoo Aug 24, 2026
d1e223c
Rebuild the parametric GUI on the shared front end
ironictoo Aug 24, 2026
b3ea757
Document the parametric T1 options, and close out the GUI work
ironictoo Aug 24, 2026
4913320
Write one GUI launcher per interface, and name both after install
ironictoo Aug 24, 2026
95e6bab
Add new feature requests for parametric functions and enhance test ca…
ironictoo Aug 24, 2026
d109759
Update documentation and configuration files for DCEasy theme integra…
ironictoo Aug 26, 2026
a38c794
Add new scripts for running DCE and parametric T1 cases via Python CLI
lsaca05 Aug 27, 2026
65f02e4
couple more wrappers for cases/DCEPrep
lsaca05 Aug 27, 2026
f3944c4
fixes to stale py API wrappers
lsaca05 Aug 27, 2026
e7b0fd9
Add DCEasy branding assets and update configuration for site deployment
ironictoo Aug 27, 2026
eb6205b
fix defaults loading
lsaca05 Aug 28, 2026
94797d9
update more stale API refs
lsaca05 Aug 28, 2026
3b01556
Add dynamic sidecar handling and extend argument parsing for DCE meta…
lsaca05 Aug 28, 2026
bdc1b77
Move project-management out of docs/
ironictoo Aug 28, 2026
34d912d
Use American spelling
ironictoo Aug 28, 2026
d163dd2
Build the docs with Zensical
ironictoo Aug 28, 2026
9f8c0d8
Give the home page a title again
ironictoo Aug 28, 2026
cc59ce4
Take the theme variant from the shared config
ironictoo Aug 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 11 additions & 0 deletions .claude/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"version": "0.0.1",
"configurations": [
{
"name": "docs",
"runtimeExecutable": ".venv/bin/mkdocs",
"runtimeArgs": ["serve", "--dev-addr", "127.0.0.1:8127"],
"port": 8127
}
]
}
57 changes: 57 additions & 0 deletions .github/scripts/osipi_badge_summary.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#!/usr/bin/env python3
"""Summarize a pytest JUnit XML run of the OSIPI suite into shields.io badge fields.

Writes `message`, `color` and `failed` as GitHub Actions step outputs (stdout, meant to
be redirected into `$GITHUB_OUTPUT`).

Skipped tests are excluded from the count rather than counted as passes. Six of the
OSIPI tests skip on a GitHub-hosted runner even with the acceleration wheels installed,
because they need real CUDA hardware; counting those as passes would advertise a
conformance level that was never measured.
"""

from __future__ import annotations

import sys
import xml.etree.ElementTree as ET
from pathlib import Path
from typing import Dict


def _totals(results_path: Path) -> Dict[str, int]:
root = ET.parse(results_path).getroot()
suites = [root] if root.tag == "testsuite" else list(root.iter("testsuite"))
totals = {"tests": 0, "failures": 0, "errors": 0, "skipped": 0}
for suite in suites:
for key in totals:
totals[key] += int(suite.get(key) or 0)
return totals


def main(argv: list[str]) -> int:
if len(argv) != 2:
print(f"usage: {Path(argv[0]).name} <junit-xml>", file=sys.stderr)
return 2

totals = _totals(Path(argv[1]))
failed = totals["failures"] + totals["errors"]
ran = totals["tests"] - totals["skipped"]
passed = ran - failed

if ran <= 0:
message = "no tests run"
color = "lightgrey"
else:
message = f"{passed}/{ran} passing"
if totals["skipped"]:
message += f" ({totals['skipped']} skipped)"
color = "brightgreen" if failed == 0 else "red"

print(f"message={message}")
print(f"color={color}")
print(f"failed={failed}")
return 0


if __name__ == "__main__":
raise SystemExit(main(sys.argv))
78 changes: 78 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: docs

# Builds the ROCKETSHIP site with Zensical and publishes it to GitHub Pages.
#
# Zensical replaces Material for MkDocs, which reaches end of life on
# 5 November 2026. It reads the same mkdocs.yml and inherits the shared DCEasy
# theme from dceasy-base.yml, so the config here is unchanged by the switch.
#
# No CNAME file: this is a project site, and it inherits the custom domain from
# the organization site (petmri/petmri.github.io), which is where dceasy.org is
# configured. Adding one here would give the two copies a chance to disagree.
#
# Action majors are kept current because GitHub retires the Node runtime they
# run on, not because this workflow needs new features. Every action below is on
# node24; upload-pages-artifact pins upload-artifact internally.

on:
push:
branches:
- main
- master
# Docs currently live on dev, so dev publishes the site. Remove this once
# dev merges, otherwise main and dev race for the Pages deployment and the
# last push wins.
- dev
pull_request:
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

# Deployments must not cancel each other. A push and a pull_request run can fire
# for the same commit; with cancel-in-progress the later one kills the former, and
# since deploy only runs on push, the site silently never updates. Matches DCEPrep
# and GitHub's own Pages starter workflow.
concurrency:
group: pages
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7

- name: Setup Python
uses: actions/setup-python@v7
with:
python-version: "3.12"

- name: Install docs dependencies
run: pip install -r requirements-docs.txt

- name: Build docs
run: zensical build --strict

- name: Configure Pages
uses: actions/configure-pages@v6

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v5
with:
path: site

deploy:
if: github.event_name == 'push'
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5
Loading
Loading