From 4524f2d3d012f7956ab35005740eaf8e9e9b0910 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Thu, 4 Jun 2026 20:16:53 +0530 Subject: [PATCH 1/3] Update HISTORY.md and bump to 0.8.0 --- HISTORY.md | 21 +++++++++++++++++++++ Project.toml | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/HISTORY.md b/HISTORY.md index d96cb6c53..32239135c 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,24 @@ +# Release 0.8 + +## Migration to the AbstractPPL evaluator interface + +AdvancedVI no longer depends on `DifferentiationInterface`. Automatic differentiation is now routed through AbstractPPL's evaluator interface (`AbstractPPL.prepare` / `AbstractPPL.value_and_gradient!!`), introduced in AbstractPPL 0.15. + +For users, the consequence is that the AD backend package must be loaded so that its `AbstractPPL.prepare` method is available: + + - `AutoForwardDiff` works with `using ForwardDiff`. + - `AutoMooncake` works with `using Mooncake`. + - Other backends routed through DifferentiationInterface (for example `AutoReverseDiff` and `AutoEnzyme`) additionally require `using DifferentiationInterface` alongside the concrete backend package. + +`AutoReverseDiff(; compile=true)` is now rejected with an `ArgumentError`. Compiled tapes freeze captured values at preparation time, so reusing a prepared evaluator across optimization iterations would differentiate against stale data and silently produce incorrect gradients. Use `AutoReverseDiff(; compile=false)`, or a reverse-mode backend such as `AutoMooncake` or `AutoEnzyme`, instead. + +## Compatibility bounds + + - `AbstractPPL` is now a dependency, bounded to `0.15`. + - `DynamicPPL` is bumped from `0.40, 0.41` to `0.42`. + - `Mooncake` is bumped from `0.4, 0.5` to `0.5.31`. + - `DifferentiationInterface` is removed from the dependencies. + # Release 0.7 ## Removal of special treatment to `Bijectors.TransformedDistribution` diff --git a/Project.toml b/Project.toml index 5999f0ee1..6e22df1b5 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "AdvancedVI" uuid = "b5ca4192-6429-45e5-a2d9-87aec30a685c" -version = "0.7.0" +version = "0.8.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" From 2cb5905a8c3de93a7a4092cba8da708f609a6ec7 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Thu, 4 Jun 2026 20:21:56 +0530 Subject: [PATCH 2/3] Allow AdvancedVI 0.8 in bench and docs compat --- bench/Project.toml | 2 +- docs/Project.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bench/Project.toml b/bench/Project.toml index a5fc803e1..a03cbc68a 100644 --- a/bench/Project.toml +++ b/bench/Project.toml @@ -19,7 +19,7 @@ StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" [compat] ADTypes = "1" -AdvancedVI = "0.7, 0.6" +AdvancedVI = "0.8, 0.7, 0.6" BenchmarkTools = "1" DifferentiationInterface = "0.6, 0.7" Distributions = "0.25.111" diff --git a/docs/Project.toml b/docs/Project.toml index ddd05fdd8..c51ca6bc3 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -25,7 +25,7 @@ StatsFuns = "4c63d2b9-4356-54db-8cca-17b64c39e42c" ADTypes = "1" AbstractPPL = "0.15" Accessors = "0.1" -AdvancedVI = "0.7, 0.6" +AdvancedVI = "0.8, 0.7, 0.6" Bijectors = "0.15, 0.16" DataFrames = "1" Distributions = "0.25" From f5b94b18892f8e4570ac12a4ff1f86230fb5e990 Mon Sep 17 00:00:00 2001 From: Shravan Goswami Date: Sun, 7 Jun 2026 15:40:36 +0530 Subject: [PATCH 3/3] Release together as 0.7.0 instead of 0.8.0 --- HISTORY.md | 22 ++++++++++------------ Project.toml | 2 +- bench/Project.toml | 2 +- docs/Project.toml | 2 +- 4 files changed, 13 insertions(+), 15 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 32239135c..49db4e8d2 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,4 +1,13 @@ -# Release 0.8 +# Release 0.7 + +## Removal of special treatment to `Bijectors.TransformedDistribution` + +Previously, `KLMinRepGradDescent`, `KLMinRepGradProxDescent`, `KLMinScoreGradDescent` only required the support of the target log-density problem to match that of `q`. +This was implemented by giving a special treatment to `q <: Bijectors.TransformedDistribution` through the `Bijectors` extension. +This, however, resulted in a multiplicative complexity in maintaining the relevant bits. +Since this is not the only way to deal with constrained supports, `Bijectors` extension is now removed. +In addition, `KLMinRepGradDescent`, `KLMinRepGradProxDescent`, `KLMinScoreGradDescent` now expect an unconstrained target log-density problem. +Instead, a tutorial has been added to the documentation on how to deal with a target log-density problem with constrained support. ## Migration to the AbstractPPL evaluator interface @@ -19,17 +28,6 @@ For users, the consequence is that the AD backend package must be loaded so that - `Mooncake` is bumped from `0.4, 0.5` to `0.5.31`. - `DifferentiationInterface` is removed from the dependencies. -# Release 0.7 - -## Removal of special treatment to `Bijectors.TransformedDistribution` - -Previously, `KLMinRepGradDescent`, `KLMinRepGradProxDescent`, `KLMinScoreGradDescent` only required the support of the target log-density problem to match that of `q`. -This was implemented by giving a special treatment to `q <: Bijectors.TransformedDistribution` through the `Bijectors` extension. -This, however, resulted in a multiplicative complexity in maintaining the relevant bits. -Since this is not the only way to deal with constrained supports, `Bijectors` extension is now removed. -In addition, `KLMinRepGradDescent`, `KLMinRepGradProxDescent`, `KLMinScoreGradDescent` now expect an unconstrained target log-density problem. -Instead, a tutorial has been added to the documentation on how to deal with a target log-density problem with constrained support. - # Release 0.6.2 Some subtle bugs in the implementations of `KLMinWassFwdBwd`, `KLMinNaturalGradDescent`, `KLMinSqrtNaturalGradDescent` have been fixed. diff --git a/Project.toml b/Project.toml index 6e22df1b5..5999f0ee1 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "AdvancedVI" uuid = "b5ca4192-6429-45e5-a2d9-87aec30a685c" -version = "0.8.0" +version = "0.7.0" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" diff --git a/bench/Project.toml b/bench/Project.toml index a03cbc68a..a5fc803e1 100644 --- a/bench/Project.toml +++ b/bench/Project.toml @@ -19,7 +19,7 @@ StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" [compat] ADTypes = "1" -AdvancedVI = "0.8, 0.7, 0.6" +AdvancedVI = "0.7, 0.6" BenchmarkTools = "1" DifferentiationInterface = "0.6, 0.7" Distributions = "0.25.111" diff --git a/docs/Project.toml b/docs/Project.toml index c51ca6bc3..ddd05fdd8 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -25,7 +25,7 @@ StatsFuns = "4c63d2b9-4356-54db-8cca-17b64c39e42c" ADTypes = "1" AbstractPPL = "0.15" Accessors = "0.1" -AdvancedVI = "0.8, 0.7, 0.6" +AdvancedVI = "0.7, 0.6" Bijectors = "0.15, 0.16" DataFrames = "1" Distributions = "0.25"