Skip to content

Conversation

ChrisRackauckas
Copy link
Member

Summary

  • Adds comprehensive downgrade CI testing for all sublibraries
  • Tests the main package (.) and all 10 sublibraries in
  • Each sublibrary is tested individually with downgraded dependencies
  • Uses julia-downgrade-compat@v2 with ALLOW_RERESOLVE: false

Sublibraries Covered

Main package:

10 Sublibraries:

Benefits

  • Ensures compatibility across the entire package ecosystem
  • Catches dependency issues early for each sublibrary
  • Provides comprehensive downgrade testing coverage
  • Maintains lean testing with focused sublibrary-specific tests

Test plan

  • Verify workflow triggers correctly on PRs and pushes
  • Confirm each sublibrary builds and tests successfully
  • Check that downgrade testing works for all projects
  • Validate matrix strategy runs all combinations

🤖 Generated with Claude Code

This adds a comprehensive downgrade CI workflow that tests compatibility
for the main package and all 10 sublibraries in the lib/ directory:

Main package: .
Sublibraries: BracketingNonlinearSolve, NonlinearSolveBase, NonlinearSolveFirstOrder, NonlinearSolveHomotopyContinuation, NonlinearSolveQuasiNewton, NonlinearSolveSciPy, NonlinearSolveSpectralMethods, SCCNonlinearSolve, SciMLJacobianOperators, SimpleNonlinearSolve

Each sublibrary is tested individually with downgraded dependencies
to ensure compatibility across the ecosystem.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>
@ChrisRackauckas ChrisRackauckas merged commit 8b1ddf1 into master Jul 30, 2025
13 of 19 checks passed
@ChrisRackauckas ChrisRackauckas deleted the add-sublibrary-downgrade-ci branch July 30, 2025 10:43
@ChrisRackauckas
Copy link
Member Author

Fix for Reexport dependency conflict

I've pushed a fix for the downgrade CI failure. The issue was:

Problem:

  • When running with ALLOW_RERESOLVE: false in the downgrade CI, Julia's package resolver cannot automatically update dependencies
  • The project files had Reexport = "1" or Reexport = "1.2" which gets pinned to exactly v1.2.0
  • However, OrdinaryDiffEqTsit5 v1.2.0 requires Reexport v1.2.2
  • This created an unsatisfiable constraint

Solution:
Updated all Reexport version constraints to "1.2.2" across all 8 Project.toml files:

  • Main project
  • All 7 sublibraries that depend on Reexport

This ensures compatibility with OrdinaryDiffEqTsit5's requirements when running the downgrade CI tests.

🤖 Generated with Claude Code

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