Some update broke our project - how to fix faster

Some update of the sciml packages broke our project, see:

Now I want to change `Project.toml to make it work again, but this is very time-consuming, because after the first package that fails to pre-compile, it continues with lots of other packages that also fail.

   6439.4 ms  ✓ OrdinaryDiffEqDifferentiation
           ✗ NonlinearSolveQuasiNewton → NonlinearSolveQuasiNewtonForwardDiffExt
   3151.3 ms  ✓ OrdinaryDiffEqDifferentiation → OrdinaryDiffEqDifferentiationSparseArraysExt
           ✗ ImplicitDiscreteSolve
           ✗ NonlinearSolve
           ✗ VortexStepMethod
           ✗ OrdinaryDiffEqNonlinearSolve
           ✗ VortexStepMethod → VortexStepMethodMakieExt
           ✗ OrdinaryDiffEqSDIRK
 223006.4 ms  ✓ SymbolicUtils
   3227.6 ms  ✓ SymbolicUtils → SymbolicUtilsChainRulesCoreExt
   3452.7 ms  ✓ SymbolicLimits
   3880.2 ms  ✓ SymbolicUtils → SymbolicUtilsDistributionsExt
           ✗ OrdinaryDiffEqBDF
  35451.8 ms  ✓ Symbolics
   4478.9 ms  ✓ DifferentiationInterface → DifferentiationInterfaceSymbolicsExt
   5301.8 ms  ✓ Symbolics → SymbolicsForwardDiffExt
   5515.5 ms  ✓ Symbolics → SymbolicsDistributionsExt
   7003.3 ms  ✓ Symbolics → SymbolicsHypergeometricFunctionsExt
   3675.7 ms  ✓ Symbolics → SymbolicsPreallocationToolsExt
           ✗ ModelingToolkitBase
           ✗ ModelingToolkitBase → MTKChainRulesCoreExt
           ✗ ModelingToolkitTearing
           ✗ ModelingToolkit
           ✗ ModelingToolkit → MTKOrdinaryDiffEqBDFExt
           ✗ SymbolicAWEModels
           ✗ SymbolicAWEModels → SymbolicAWEModelsMakieExt
  70 dependencies successfully precompiled in 512 seconds. 501 already precompiled.

Is there a way to force termination after the first package that fails to pre-compile?

Pkg.test calls Pkg.precompile, which calls Base.Precompilation.precompilepkgs, which calls monitor_background_precompile. The last function has a lot of try-catch and messes around with the terminal. I’m not sure if this is related, but maybe the mediocre error handling there could be a reason? I’m new to Julia so expect this to be false!

1 Like