Add Downgrade CI lane (containerized Core downgrade)#158
Merged
ChrisRackauckas merged 1 commit intoJul 5, 2026
Conversation
FEniCS.jl is a PyCall wrapper around the Python FEniCS/DOLFIN FEM stack; its Core tests only load and run inside the cmhyett/julia-fenics:latest container (which the existing CI already uses). It nonetheless has real registry Julia dependencies with compat floors (PyCall, SpecialFunctions, ADTypes, OrdinaryDiffEq, OrdinaryDiffEqSDIRK, SciMLTesting), so a downgrade lane is meaningful. Route it through the centralized reusable workflow with the same container so the floors are actually build+tested against the Python runtime. Validated locally inside the container at Julia 1.10 (lts) with julia-downgrade-compat v2.6.1 floors: resolve + buildpkg + GROUP=Core test all green (Core 35/35 pass). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
FEniCS.jl had no Downgrade CI lane (audit: "wrapper; missing downgrade — confirm intentional or add a minimal one"). It's a PyCall wrapper around the Python FEniCS/DOLFIN FEM stack, so it looks exempt — but it still has real registry Julia dependencies with compat floors (
PyCall,SpecialFunctions,ADTypes,OrdinaryDiffEq,OrdinaryDiffEqSDIRK,SciMLTesting). A downgrade lane is therefore meaningful, and the centralized reusabledowngrade.ymlsupports acontainer:input precisely for Python-stack packages — the same container (cmhyett/julia-fenics:latest) the existingCI.ymlalready uses. So this is not a legitimate skip; it's a genuinely missing lane that can be added.This PR adds
.github/workflows/Downgrade.ymlrouted throughSciML/.github/.github/workflows/downgrade.yml@v1withgroup: Coreandcontainer: cmhyett/julia-fenics:latest.Validation (local, inside the real container)
Ran the centralized-workflow steps by hand inside
cmhyett/julia-fenics:latestat Julia 1.10 (lts, the downgrade default), usingjulia-actions/julia-downgrade-compatv2.6.1 indepsmode:downgrade.jlresolved minimal versions cleanly — PyCall 1.96.0, SpecialFunctions 1.6.1, Requires 1.0.0, ADTypes 1.7.1, OrdinaryDiffEq 6.80.0, OrdinaryDiffEqSDIRK 1.1.0, SciMLTesting 1.0.0.Pkg.build(PyCall linked to the container's/usr/bin/python3FEniCS) succeeded.GROUP=Core Pkg.testat floors: Core 35/35 pass (2m52s; the FEM examples JIT-compile and run against the real DOLFIN runtime).No source or compat-floor changes were needed — the existing floors are already downgrade-clean; the lane was simply absent.
Please ignore until reviewed by @ChrisRackauckas.
🤖 Generated with Claude Code