From 22569ee6e2e7937b03206f33959840b6c22c6c67 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 29 May 2025 17:29:00 +0100 Subject: [PATCH 1/8] Disable Mooncake on prerelease --- test/ad.jl | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/test/ad.jl b/test/ad.jl index 30cfc13d7..dd2911df9 100644 --- a/test/ad.jl +++ b/test/ad.jl @@ -8,13 +8,22 @@ using Random: Random using StableRNGs: StableRNG using Test using ..Models: gdemo_default -import ForwardDiff, ReverseDiff, Mooncake +import ForwardDiff, ReverseDiff + +# Detect if prerelease version, if so, we skip some tests +const IS_PRERELEASE = !isempty(VERSION.prerelease) +const INCLUDE_MOONCAKE = !IS_PRERELEASE + +if INCLUDE_MOONCAKE + Pkg.add("Mooncake") + using Mooncake: Mooncake +end """Element types that are always valid for a VarInfo regardless of ADType.""" const always_valid_eltypes = (AbstractFloat, AbstractIrrational, Integer, Rational) """A dictionary mapping ADTypes to the element types they use.""" -const eltypes_by_adtype = Dict( +eltypes_by_adtype = Dict( Turing.AutoForwardDiff => (ForwardDiff.Dual,), Turing.AutoReverseDiff => ( ReverseDiff.TrackedArray, @@ -25,8 +34,10 @@ const eltypes_by_adtype = Dict( ReverseDiff.TrackedVecOrMat, ReverseDiff.TrackedVector, ), - Turing.AutoMooncake => (Mooncake.CoDual,), ) +if INCLUDE_MOONCAKE + eltypes_by_adtype[Turing.AutoMooncake] = (Mooncake.CoDual,) +end """ AbstractWrongADBackendError @@ -177,11 +188,10 @@ end """ All the ADTypes on which we want to run the tests. """ -ADTYPES = [ - Turing.AutoForwardDiff(), - Turing.AutoReverseDiff(; compile=false), - Turing.AutoMooncake(; config=nothing), -] +ADTYPES = [Turing.AutoForwardDiff(), Turing.AutoReverseDiff(; compile=false)] +if INCLUDE_MOONCAKE + push!(ADTYPES, Turing.AutoMooncake(; config=nothing)) +end # Check that ADTypeCheckContext itself works as expected. @testset "ADTypeCheckContext" begin From 96efb6c944a6391dceb1311b4765deef00d407c1 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 29 May 2025 17:38:54 +0100 Subject: [PATCH 2/8] Remove Mooncake from environment --- test/Project.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/test/Project.toml b/test/Project.toml index d6ed2c79f..d404618b6 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -21,7 +21,6 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" LogDensityProblems = "6fdf6af0-433a-55f7-b3ed-c6c6e0b8df7c" LogDensityProblemsAD = "996a588d-648d-4e1f-a8f0-a84b347e47b1" MCMCChains = "c7f686f2-ff18-58e9-bc7b-31028e88f75d" -Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" NamedArrays = "86f7a689-2022-50b4-a561-43c23ac3c673" Optim = "429524aa-4258-5aef-a3af-852621145aeb" Optimization = "7f7a1694-90dd-40f0-9382-eb1efda571ba" From c188cc2f076f5bae3eb79d63ee44bb3f42a5eba4 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 29 May 2025 17:56:29 +0100 Subject: [PATCH 3/8] Remove Mooncake compat bound --- test/Project.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/test/Project.toml b/test/Project.toml index d404618b6..e80ce1bdb 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -60,7 +60,6 @@ LinearAlgebra = "1" LogDensityProblems = "2" LogDensityProblemsAD = "1.4" MCMCChains = "5, 6, 7" -Mooncake = "0.4.95" NamedArrays = "0.9.4, 0.10" Optim = "1" Optimization = "3, 4" From 8bf3507208bad2ea1722f8882371002f9eb0eb20 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 29 May 2025 18:16:56 +0100 Subject: [PATCH 4/8] Remove unused imports --- test/mcmc/Inference.jl | 1 - test/mcmc/abstractmcmc.jl | 1 - test/mcmc/gibbs.jl | 1 - test/mcmc/hmc.jl | 1 - test/mcmc/sghmc.jl | 1 - test/optimisation/Optimisation.jl | 2 -- 6 files changed, 7 deletions(-) diff --git a/test/mcmc/Inference.jl b/test/mcmc/Inference.jl index 78d79a548..bc31ebfa9 100644 --- a/test/mcmc/Inference.jl +++ b/test/mcmc/Inference.jl @@ -12,7 +12,6 @@ import MCMCChains import Random import ReverseDiff using StableRNGs: StableRNG -import Mooncake using Test: @test, @test_throws, @testset using Turing diff --git a/test/mcmc/abstractmcmc.jl b/test/mcmc/abstractmcmc.jl index 7651752ba..5dbd89ad3 100644 --- a/test/mcmc/abstractmcmc.jl +++ b/test/mcmc/abstractmcmc.jl @@ -11,7 +11,6 @@ using LogDensityProblems: LogDensityProblems using Random: Random using ReverseDiff: ReverseDiff using StableRNGs: StableRNG -import Mooncake using Test: @test, @test_throws, @testset using Turing using Turing.Inference: AdvancedHMC diff --git a/test/mcmc/gibbs.jl b/test/mcmc/gibbs.jl index 2070c697c..c0b2abba8 100644 --- a/test/mcmc/gibbs.jl +++ b/test/mcmc/gibbs.jl @@ -15,7 +15,6 @@ using DynamicPPL: DynamicPPL using ForwardDiff: ForwardDiff using Random: Random using ReverseDiff: ReverseDiff -import Mooncake using StableRNGs: StableRNG using Test: @inferred, @test, @test_broken, @test_throws, @testset using Turing diff --git a/test/mcmc/hmc.jl b/test/mcmc/hmc.jl index 0649ca8d3..84d0b5823 100644 --- a/test/mcmc/hmc.jl +++ b/test/mcmc/hmc.jl @@ -12,7 +12,6 @@ using LinearAlgebra: I, dot, vec import Random using StableRNGs: StableRNG using StatsFuns: logistic -import Mooncake using Test: @test, @test_logs, @testset, @test_throws using Turing diff --git a/test/mcmc/sghmc.jl b/test/mcmc/sghmc.jl index 6d628ce3c..3796ea915 100644 --- a/test/mcmc/sghmc.jl +++ b/test/mcmc/sghmc.jl @@ -10,7 +10,6 @@ import ForwardDiff using LinearAlgebra: dot import ReverseDiff using StableRNGs: StableRNG -import Mooncake using Test: @test, @testset using Turing diff --git a/test/optimisation/Optimisation.jl b/test/optimisation/Optimisation.jl index cf692cba2..d081fbd0d 100644 --- a/test/optimisation/Optimisation.jl +++ b/test/optimisation/Optimisation.jl @@ -4,9 +4,7 @@ using ..Models: gdemo, gdemo_default using Distributions using Distributions.FillArrays: Zeros using DynamicPPL: DynamicPPL -using ForwardDiff: ForwardDiff using LinearAlgebra: Diagonal, I -using Mooncake: Mooncake using Random: Random using Optimization using Optimization: Optimization From ade78fc8aee46201b5edad695f2722b1358f6a4a Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 29 May 2025 18:34:28 +0100 Subject: [PATCH 5/8] Pkg --- test/ad.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/test/ad.jl b/test/ad.jl index dd2911df9..befef5af3 100644 --- a/test/ad.jl +++ b/test/ad.jl @@ -15,6 +15,7 @@ const IS_PRERELEASE = !isempty(VERSION.prerelease) const INCLUDE_MOONCAKE = !IS_PRERELEASE if INCLUDE_MOONCAKE + import Pkg Pkg.add("Mooncake") using Mooncake: Mooncake end From 0131934035b73db7747dd58eb41abd67736601f5 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Thu, 29 May 2025 22:01:11 +0100 Subject: [PATCH 6/8] Balance tests --- .github/workflows/Tests.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/Tests.yml b/.github/workflows/Tests.yml index 8b1272336..87d78c637 100644 --- a/.github/workflows/Tests.yml +++ b/.github/workflows/Tests.yml @@ -26,16 +26,14 @@ jobs: # not included in the others. - name: "mcmc/gibbs" args: "mcmc/gibbs.jl" - - name: "mcmc/hmc" - args: "mcmc/hmc.jl" - - name: "mcmc/abstractmcmc" - args: "mcmc/abstractmcmc.jl" - name: "mcmc/Inference" args: "mcmc/Inference.jl" - - name: "mcmc/ess" - args: "mcmc/ess.jl" + - name: "ad" + args: "ad.jl" + - name: "stdlib/distributions" + args: "stdlib/distributions.jl" - name: "everything else" - args: "--skip mcmc/gibbs.jl mcmc/hmc.jl mcmc/abstractmcmc.jl mcmc/Inference.jl mcmc/ess.jl" + args: "--skip mcmc/gibbs.jl mcmc/Inference.jl ad.jl stdlib/distributions.jl" runner: # Default - version: '1' From ead777b42e55ccf20c859ca9fed024db34df6bdd Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Fri, 30 May 2025 13:11:30 +0100 Subject: [PATCH 7/8] Bump Julia minimum version to 1.10.2 Closes #2570 --- HISTORY.md | 5 +++++ Project.toml | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index b185134d3..f8ef0e2e5 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -1,3 +1,8 @@ +# Release 0.38.4 + +The minimum Julia version was increased to 1.10.2 (from 1.10.0). +On versions before 1.10.2, `sample()` took an excessively long time to run (probably due to compilation). + # Release 0.38.3 `getparams(::Model, ::AbstractVarInfo)` now returns an empty `Float64[]` if the VarInfo contains no parameters. diff --git a/Project.toml b/Project.toml index 6dbd03e40..8a6e1777e 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "Turing" uuid = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" -version = "0.38.3" +version = "0.38.4" [deps] ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" @@ -83,7 +83,7 @@ Statistics = "1.6" StatsAPI = "1.6" StatsBase = "0.32, 0.33, 0.34" StatsFuns = "0.8, 0.9, 1" -julia = "1.10" +julia = "1.10.2" [extras] DynamicHMC = "bbc10e6e-7c05-544b-b16e-64fede858acb" From 30706a873c201ce353fddc993e9be631c03fe204 Mon Sep 17 00:00:00 2001 From: Penelope Yong Date: Fri, 30 May 2025 13:13:01 +0100 Subject: [PATCH 8/8] lump stdlib/distributions into everything else --- .github/workflows/Tests.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/Tests.yml b/.github/workflows/Tests.yml index 87d78c637..cc348fde1 100644 --- a/.github/workflows/Tests.yml +++ b/.github/workflows/Tests.yml @@ -30,10 +30,8 @@ jobs: args: "mcmc/Inference.jl" - name: "ad" args: "ad.jl" - - name: "stdlib/distributions" - args: "stdlib/distributions.jl" - name: "everything else" - args: "--skip mcmc/gibbs.jl mcmc/Inference.jl ad.jl stdlib/distributions.jl" + args: "--skip mcmc/gibbs.jl mcmc/Inference.jl ad.jl" runner: # Default - version: '1'