Skip to content

Conversation

@devmotion
Copy link
Member

@devmotion devmotion commented Nov 12, 2025

As #1338 shows, tests currently fail on master.

The PR fixes the following test sets:

  • Core (lts, 1, pre): Problem with DynamicSS?
  • Extensions (1, pre): Caused by a bug in Arblib, fixed in Arblib >= 1.6.0 but tests use Arblib 1.4.0
  • Hybrid (lts, 1, pre): Incorrect checks of solution return code + numerical issues (caused by ForwardDiff@1?)
  • Spatial (only pre)

@devmotion devmotion mentioned this pull request Nov 12, 2025
5 tasks
@isaacsas
Copy link
Member

@TorkelE @devmotion let's use this as a PR to work in to get tests working and docs building. Once that is all fixed I am happy to make a release, but I don't want to make one while tests are failing and/or docs don't build.

sint = init(sprob, ImplicitEM(); save_everystep = false)
jint = init(jprob, SSAStepper())
nint = init(nprob, NewtonRaphson(); save_everystep = false)
@test_broken ssint = init(ssprob, DynamicSS(Tsit5()); save_everystep = false) # https://github.com/SciML/SciMLBase.jl/issues/660
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@TorkelE this doesn't return a boolean or error, so the test is not broken. I assume you meant this as a flag that there is an issue, but it seems to work now. Note though that ssint is not used anymore throughout the tests, so nothing is really being tested for it now beyond init.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has been fine for 16 months, so I presume that something has changed underneath. I will update to ... false # ..., which should make things run for now. Then when we do the MTK fixes I will go through all of the changes and implications proiperly again.

@devmotion
Copy link
Member Author

AFAICT we're stuck with Arblib 1.4 which does not work on Julia >= 1.12 (fixed in Arblib >= 1.6) due to interactions with StructuralIdentifiability which is in the same environment for the Extensions tests: StructuralIdentifiability depends on FLINT_jll as well through Nemo, and Nemo pins FLINT_jll quite strictly; however, recent versions of StructuralIdentifiability which support recent versions of Nemo and hence recent versions of FLINT_jll only support MTK@10.

Breaking up the Extensions environment in smaller environments with presumable less conflicts of dependencies could be a solution; alternatively, one could maybe try to backport support for recent versions of Nemo to older MTK@9 compatible releases of StructuralIdentifiability.

@isaacsas
Copy link
Member

It's surprising they could update StructuralIdentifiability to MTK10 without making a breaking release.

@TorkelE
Copy link
Member

TorkelE commented Nov 12, 2025

Think SI just really uses MTK as an interface for declaring a model, so it wouldn't surprise me if no workflows have actually changed. If there has been package updates that means that things no longer work, we should introduce (as liberal as possible) compat bounds to ensure that thinsg actually works.

@isaacsas
Copy link
Member

I think the bigger issue might be that fundamentally we won't work on 1.12 with MTK9 and the versions of the extensions that work with it. It might be that we should just cap testing to 1.11 and put a note on the Catalyst homepage that we currently only support 1.11, with 1.12 support projected in the next breaking release.

@isaacsas
Copy link
Member

The hybrid test failure is a real issue that I'm trying to debug. There was a typo in the test, and once fixed the test fails as the callback is never triggered. I haven't been able to figure out why that is happening yet though.

@isaacsas
Copy link
Member

Not sure though why tests were previously passing with that typo.

@devmotion
Copy link
Member Author

Maybe due to an upstream fix?

@devmotion
Copy link
Member Author

It might be that we should just cap testing to 1.11 and put a note on the Catalyst homepage that we currently only support 1.11, with 1.12 support projected in the next breaking release.

It's really not a Catalyst issue IMO. Previous versions of Arblib had a bug. It's a problem of Arblib and a problem you'll always run into if you use Arblib < 1.6 on Julia 1.12. I don't think it should be Catalyst's responsibility to warn users about a bug caused by Arblib.

To unbreak the tests, we could also try to backport this Arblib fix to a backport release of Arblib (probably 1.4.1?).

@devmotion
Copy link
Member Author

I asked for the possibility of a backport release of Arblib: kalmarek/Arblib.jl#220 (comment)

@isaacsas
Copy link
Member

I marked the blocking test as broken but other hybrid tests are still failing locally and I think it is due to continuous event handling. They used to pass when we last released so something seems to have changed to cause them to be broken now in MTK or lower.

@isaacsas
Copy link
Member

Anyways I can't work more on this till next week now as I have some deadlines the next few days, but I can circle back next week hopefully to investigate the hybrid tests (or perhaps @TorkelE can look into it). It seems that continuous events no longer properly trigger for jumps over ODEProblem, which definitely worked at one point, so will require some work to investigate what is going one and where changes happened.

@TorkelE
Copy link
Member

TorkelE commented Nov 12, 2025

I will try to do what I can, but the hybrid stuff looks like it can be a rather deep rabbit hole (but definitely one require solving. The issue with

@test_broken ssint = init(ssprob, DynamicSS(Tsit5()); save_everystep = false) # https://github.com/SciML/SciMLBase.jl/issues/660

is simply that the broken test have now been fixed (as confirmed by the link issue).

@test_broken error("")

passes as any other broken test, but as init(ssprob, DynamicSS(Tsit5()); save_everystep = false) no longer thorws an error, the test correctly notes that it is no longer broken (although I agree that the logic is a bit weird, and if there had been a @test_unintended_error` or similar, that would have been more appropriate).

There are a couple of downstream tests on ssint that we couldn't do (because we couldn't create it), I will see if I can reenable them now as well.

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.

4 participants