Changelog
v0.5.0 - 2026-10-07
️ Breaking Changes
Reexports
- Refactored Re-exports: The package has moved away from heavy use of
@reexport. Only the following symbols from other packages are still exported byLyoPronto; others (such as fromConstructionBase,DiffEqCallbacks, andOrdinaryDiffEqNonlinearSolvemust now be explicitly imported.ODEProblemandsolvefromOrdinaryDiffEqRosenbrockremain explicitly exported.- Other
OrdinaryDiffEqRosenbrocksymbols are no longer re-exported, notably algorithms likeRodas3(). - The recommended algorithm for LyoPronto's ODE and DAE systems is now
Rodas5P(AutoForwardDiff(chunksize=2)), which is made public asLyoPronto.odealg_chunk2.
- Other
- From Unitful, the
u""macro,ustrip,uconvert, andNoUnitsremain explicitly exported.
Experimental Data & Fitting
- Experimental Data Handling: The
PrimaryDryFitstructure is now deprecated in favor of a new, modular hierarchy based onExpFitDataandAbstractExpDatum.- Users should migrate from
PrimaryDryFittoExpFitData(e.g., usingTfData,TvwSeriesData, etc.). - For help with migration, see the documentation for
ExpFitDatain the package API, refer to theAbstractExpDatumdocstring, and consult the examples in the documentation.
- Users should migrate from
- Parameter Objects: Model parameters are now documented as handled via structured, typed objects. Tuple-of-tuples data structures are only used for constructing the parameter objects.
- Loss and Residual Functions: the functions
obj_expT,err_expT, anderr_expT!are removed and replaced byobj_exp,err_exp, anderr_exp!, which are more general and can handle multiple experimental data types. - Residual Weighting: The API for residual weighting has been updated to be more consistent across different experimental data types. The functions
loss_weightingandresidual_weightingare now used to specify weighting schemes for residuals in fitting, and these are passed toobj_expanderr_exp!functions. Weights must explicitly specify the units so that they produce a dimensionless quantity when multiplied by the residuals.
Intermediate Simulation Outputs
- Rather than pass a
Val(true)to the ODE RHS functions, to get intermediate calculated outputs, call the functioncalc_md_Qwhich dispatches on the parameter type to decide which model to use. This function returns aNamedTupleof the intermediate outputs, which can be used for plotting or analysis. TheVal(true)argument is no longer accepted by the ODE RHS functions.
Other Breaking Changes
- The function
qrf_integratenow returns aNamedTuplerather than aDictwith string keys. - The fields
AradandalphainParamObjRFare removed, as they were unused.
New Features
Modular Data Framework
- Introduced a robust hierarchy for experimental data:
ExpFitData: Container for multiple experimental datasets.AbstractExpDatum: Base type for specific measurement types includingTfData,TvwSeriesData,TvwEndData, andEndTimeData.
- Added
SolTrimandtrim_solfor precise alignment of model solutions with experimental time grids.
Extensibility Enhancements
🛠️ Refactors & Improvements
- Namespace Cleanup: Reduced namespace pollution by limiting re-exports.
- Error Handling: Improved validation in parameter constructors (e.g., checking units and dimensions).
Previous Versions
A semi-formal changelog for previous versions can be found in the GitHub releases.