DI currently places an upper bound on Mooncake, which has caused significant downstream disruption for multiple packages, including SciML and Turing.jl. This constraint propagates through the dependency graph, so it affects environments even when Mooncake is not used directly via DI (e.g. in Turing.jl), leading to unnecessary version conflicts and reduced composability.
One contributing factor is that maintaining compatibility with DI’s test suite—particularly for less universally supported types such as StaticArrays—can impose a nontrivial maintenance burden on AD backends like Mooncake.
If this cost is disproportionate, one viable option would be for DI to drop support for Mooncake entirely. A clean separation would avoid recurring breakages and simplify dependency management, rather than relying on tight version bounds that impact unrelated users.
Alternatively, if support is retained, it may be worth reconsidering the scope of the test suite and clarifying expectations around supported types, so that compatibility requirements are both explicit and realistically maintainable.
DI currently places an upper bound on Mooncake, which has caused significant downstream disruption for multiple packages, including SciML and Turing.jl. This constraint propagates through the dependency graph, so it affects environments even when Mooncake is not used directly via DI (e.g. in Turing.jl), leading to unnecessary version conflicts and reduced composability.
One contributing factor is that maintaining compatibility with DI’s test suite—particularly for less universally supported types such as StaticArrays—can impose a nontrivial maintenance burden on AD backends like Mooncake.
If this cost is disproportionate, one viable option would be for DI to drop support for Mooncake entirely. A clean separation would avoid recurring breakages and simplify dependency management, rather than relying on tight version bounds that impact unrelated users.
Alternatively, if support is retained, it may be worth reconsidering the scope of the test suite and clarifying expectations around supported types, so that compatibility requirements are both explicit and realistically maintainable.