Skip to content

Release v0.3.3: SciML kwarg routing + SciMLBase 3 support - #23

Merged
mmogib merged 7 commits into
mainfrom
feature-dev
Jun 9, 2026
Merged

Release v0.3.3: SciML kwarg routing + SciMLBase 3 support#23
mmogib merged 7 commits into
mainfrom
feature-dev

Conversation

@mmogib

@mmogib mmogib commented Jun 9, 2026

Copy link
Copy Markdown
Owner

Release v0.3.3 — SciML integration + dependency maintenance

Backward-compatible patch. Six commits on feature-dev:

User-facing

  1. SciMLBase 3.x support (3728d84) — compat "2.53""2.53, 3";
    CI-verified across the full matrix. v2.53+ retained.
  2. Full SciML common-solver keyword routing (6cd8521) — solve now
    honors reltol, maxtime, verbose (in addition to abstol/maxiters)
    and gracefully absorbs all other standard keywords
    (termination_condition, internalnorm, alias_u0, tracing). New
    DFProjection fields reltol = 0.0, maxtime = Inf. solve warns on a
    non-Success exit unless verbose = false (SciML convention). Default
    stopping unchanged when neither reltol nor maxtime is set.
    262 → 291 tests.

Docs

  1. verbose = false on three @example blocks that intentionally
    demonstrate early-exit retcodes (59ddde4).

CI / dependency hygiene

  1. Enabled the repo policy and scoped the CompatHelper workflow token to
    least privilege, fixing the recurring CompatHelper 403 (a483f6c).
  2. Standardized Julia dependency automation on CompatHelper; dropped the
    duplicate Dependabot julia ecosystem (f43da65).

Tests

291/291 passing locally (Julia 1.12.6); CI matrix already green on the
SciMLBase-3 bump (originally surfaced as CompatHelper #21, consolidated here).

🤖 Generated with Claude Code

mmogib and others added 7 commits June 9, 2026 04:54
Add an explicit permissions block (contents: write, pull-requests: write) to CompatHelper.yml, narrowing this workflow's token from the repo-wide write default. Complements enabling the repo policy 'Allow GitHub Actions to create and approve pull requests' (Settings > Actions > General), which was the actual fix for the recurring CompatHelper 403 on PR creation.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Widen SciMLBase from "2.53" to "2.53, 3". CI-verified compatible: the full 262-test suite plus docs build pass against SciMLBase 3.x across Julia 1.10/1.12/pre on x64+x86 (CompatHelper PR #21). The package's SciMLBase usage is limited to stable API (NonlinearProblem, isinplace, ReturnCode, NLStats, build_solution, __solve), unaffected by the 2.x -> 3.x major bump.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CompatHelper and Dependabot's julia ecosystem were both managing Julia dependencies, producing duplicate PRs (e.g. the same SciMLBase bump as #16 and #21). Standardize on CompatHelper (registry-aware, the Julia-ecosystem norm). Keep the github-actions ecosystem, which CompatHelper does not cover.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Records the SciMLBase = "2.53, 3" widening (commit 3728d84) as the entry-in-waiting for the next release. CI/dependabot hygiene commits are intentionally omitted from the package changelog (dev-infra, not user-facing).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…kwargs

DFProjection now honors the full set of SciMLBase common solver options that map onto its callback-based stopping system, closing the gap where reltol (and others) were silently ignored:

- reltol  -> RelResidualTol  (new DFProjection field reltol::Float64 = 0.0)
- maxtime -> MaxTime         (new DFProjection field maxtime::Float64 = Inf)
- verbose -> warns on non-Success exit unless false (SciML convention)
- abstol/maxiters unchanged

All other standard keywords (termination_condition, internalnorm, alias_u0, show_trace, store_trace, trace_level) are accepted and absorbed without error. An internal auto_stopping flag preserves an explicit stopping= rule across solve-time overrides (warns rather than clobbers).

Default stopping is byte-identical for code that sets neither reltol nor maxtime. 262 -> 291 tests (new SciML keyword-routing testset).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
solve() now warns on a non-Success exit (SciML convention), so three @example blocks demonstrating early-exit retcodes would render a stray warning. The retcode is shown programmatically, so the warning adds nothing -- pass verbose=false on those:

- quickstart.md  : the maxiters=2 MaxIters demo
- tutorial.md §4 : the MaxTime(0.05) capped-budget demo
- tutorial.md §6 : the comparative sweep

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 97.22222% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 90.85%. Comparing base (114f7ef) to head (df66097).

Files with missing lines Patch % Lines
src/algorithm.jl 92.85% 1 Missing ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #23      +/-   ##
==========================================
+ Coverage   90.81%   90.85%   +0.04%     
==========================================
  Files          12       12              
  Lines         675      700      +25     
==========================================
+ Hits          613      636      +23     
- Misses         62       64       +2     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mmogib
mmogib merged commit 826f1cb into main Jun 9, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants