Skip to content

Fix NeuralPDE downstream groups#1259

Merged
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:agent/update-neuralpde-downstream-group
Jul 12, 2026
Merged

Fix NeuralPDE downstream groups#1259
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:agent/update-neuralpde-downstream-group

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

This PR should be ignored until reviewed by @ChrisRackauckas.

Request

SciML/NeuralPDE.jl#1084 update Optimization.jl's downstream workflow instead

Summary

  • Replace Optimization.jl's obsolete NeuralPDE NNPDE downstream job with separate NNPDE1 and NNPDE2 jobs.
  • Add a QA regression test that locks the NeuralPDE group names used by the downstream workflow.

Root cause

NeuralPDE now declares folder-mode groups NNPDE1 and NNPDE2. Optimization.jl still requested the removed aggregate NNPDE group, so SciMLTesting rejected the downstream job before running NeuralPDE tests. The caller should request the groups NeuralPDE currently exposes instead of adding a compatibility alias to NeuralPDE, as proposed in the now-closed SciML/NeuralPDE.jl#1084.

Impact

Optimization's downstream CI now exercises both halves of NeuralPDE's NNPDE suite in independent jobs. NeuralPDE's own test runner and generated CI matrix remain unchanged.

Local verification

  • GROUP=QA julia +1.12 --startup-file=no --project=. -e 'using Pkg; Pkg.test(; coverage=false)'
    • observed QA | 18 pass, 1 broken, 19 total
    • final output: Testing Optimization tests passed
    • the broken item is the pre-existing declared no_implicit_imports QA check
  • Reproduced SciML/.github/.github/workflows/downstream.yml@v1 locally against NeuralPDE master bfcbae6ab850b6e785e33d7972cbba787eac97e9, with Pkg.develop(PackageSpec(path=".")) selecting this Optimization checkout:
    • GROUP=NNPDE1 julia +1.12 --startup-file=no --project=downstream -e 'using Pkg; Pkg.develop(PackageSpec(path=".")); Pkg.update(); Pkg.test(; coverage=false)'
      • all 8 selected files passed; final output: Testing NeuralPDE tests passed
    • GROUP=NNPDE2 julia +1.12 --startup-file=no --project=downstream -e 'using Pkg; Pkg.develop(PackageSpec(path=".")); Pkg.update(); Pkg.test(; coverage=false)'
      • all 6 selected files passed; final output: Testing NeuralPDE tests passed
  • julia +1.12 --startup-file=no --project=.runic-env -m Runic --check .
  • actionlint .github/workflows/Downstream.yml
  • ruby -e 'require "yaml"; YAML.load_file(".github/workflows/Downstream.yml"); puts "YAML parsed successfully"'
  • git diff --check

Copy link
Copy Markdown
Member Author

Execution log / scratchpad

  1. Inspected the closed NeuralPDE PR Fix OptimizationMadNLP version #1084 and its proposed compatibility alias.
  2. Verified NeuralPDE master currently declares NNPDE1 and NNPDE2, while Optimization's downstream workflow requested only obsolete NNPDE.
  3. Synced the fork's master to upstream/master, created agent/update-neuralpde-downstream-group, and changed only the downstream matrix plus its QA regression test.
  4. Committed the focused change as e9456cf15 (Fix NeuralPDE downstream groups).
  5. Ran the repository QA group, repo-wide Runic, actionlint/YAML validation, and local equivalents of both reusable downstream jobs. QA passed (18 pass, 1 pre-existing broken), and all 8 NNPDE1 plus all 6 NNPDE2 files passed against the local Optimization checkout.

No test was skipped, disabled, silenced, or loosened.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

CI downstream checkpoint for commit e9456cf:

  • NeuralPDE.jl / NNPDE1 passed in 53m18s.
  • NeuralPDE.jl / NNPDE2 passed in 1h13m32s.
  • DiffEqFlux downstream passed in 22m4s.

The Julia prerelease Core failure was independently reproduced on clean upstream master b10c52b and reduced to Enzyme plus Julia LinearAlgebra; it is unrelated to this workflow patch and is being investigated separately. Upstream master has since advanced, so I am rebasing and will rerun local checks.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Rebased onto current upstream master 0c663b6 and updated the branch with a lease-protected push. New patch commit: 65e8b3c.

Post-rebase local verification:

  • GROUP=QA with Julia 1.12: 19 pass, 1 pre-existing broken, 20 total; Pkg.test reported Optimization tests passed.
  • Runic v1.7.0 check: exit 0.
  • actionlint on Downstream.yml: exit 0.
  • Ruby YAML parse: successful.
  • git diff --check: exit 0.
  • Worktree: clean.

The earlier focused-head CI results for NNPDE1 and NNPDE2 remain recorded above. Separate master-failure investigation: #1260.

Comment thread test/qa/qa.jl Outdated
@ChrisRackauckas
ChrisRackauckas marked this pull request as ready for review July 12, 2026 08:44
@ChrisRackauckas
ChrisRackauckas merged commit d7c95a3 into SciML:master Jul 12, 2026
10 of 11 checks passed
@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Current-head verification after @ChrisRackauckas applied commit 376ca38, removing the QA workflow-text assertion:

  • GROUP=QA with Julia 1.12: 18 pass, 1 pre-existing broken, 19 total; Pkg.test reported Optimization tests passed.
  • Runic v1.7.0 check: exit 0.
  • actionlint on Downstream.yml: exit 0.
  • Ruby YAML parse: successful.
  • git diff --check: exit 0.
  • Worktree: clean and synchronized with the remote PR head.

The functional downstream coverage remains the local NNPDE1/NNPDE2 runs and the passing CI results recorded above. Fresh workflows are running for this exact head.

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member Author

Current-head downstream results for 376ca38:

  • NeuralPDE.jl / NNPDE1 passed in 1h4m36s.
  • NeuralPDE.jl / NNPDE2 passed in 54m46s.
  • DiffEqFlux downstream passed in 24m39s.

Documentation and every completed applicable workflow are green. ModelingToolkit downstream is still running. The sole test failure remains the independently reproduced Julia 1.13-rc1 / Enzyme 0.13.182 base issue tracked in #1260; stable Core, LTS Core, and QA all 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