Skip to content

Releases: TuringLang/JuliaBUGS.jl

JuliaBUGS-v0.13.0

30 Mar 04:34
21fffbd

Choose a tag to compare

JuliaBUGS JuliaBUGS-v0.13.0

Diff since JuliaBUGS-v0.12.3

Breaking changes

  • Bump AbstractPPL to 0.14

Merged pull requests:

Closed issues:

  • Imcompatibility of the latest DynamicPPL and JuliaBUGS (#442)

JuliaBUGS-v0.12.3

13 Mar 14:35
807888c

Choose a tag to compare

JuliaBUGS JuliaBUGS-v0.12.3

Diff since JuliaBUGS-v0.12.2

Merged pull requests:

  • CompatHelper: bump compat for MetaGraphsNext to 0.8 for package JuliaBUGS, (keep existing compat) (#425) (@github-actions[bot])
  • fix serializing BUGSmodel and add tests (#435) (@hardik-xi11)
  • CI: consolidate test matrix, fix benchmark fork permissions, misc cleanup (#438) (@sunxd3)
  • Add codecov.yml for multi-upload coverage (#440) (@sunxd3)
  • Release v0.12.3 (#441) (@sunxd3)

Closed issues:

  • Distributed AbstractMCMC.sample fails (#333)
  • CI improvements: consolidate test matrix, fix benchmark fork permissions, misc cleanup (#437)

JuliaBUGS-v0.12.2

09 Mar 19:46
06dc4e3

Choose a tag to compare

JuliaBUGS JuliaBUGS-v0.12.2

Diff since JuliaBUGS-v0.12.1

Merged pull requests:

Closed issues:

  • math on docs page not rendering correctly (#429)
  • DomainError during leapfrog integration (#433)

JuliaBUGS-v0.12.1

28 Jan 18:13
56849f1

Choose a tag to compare

JuliaBUGS JuliaBUGS-v0.12.1

Diff since JuliaBUGS-v0.12.0

Add support for TensorBoardLogger.jl via AbstractMCMC.mcmc_callbaks. See here.

Merged pull requests:

JuliaBUGS-v0.12.0

19 Jan 21:00
12d2ddd

Choose a tag to compare

JuliaBUGS JuliaBUGS-v0.12.0

Diff since JuliaBUGS-v0.11.1

Breaking changes

This release brings major improvements to gradient-based inference with DifferentiationInterface.jl replacing LogDensityProblemsAD, and automatic marginalization of discrete parameters.

Highlights

  • DifferentiationInterface.jl for gradient computation (#397): Gradient computation now uses DifferentiationInterface.jl instead of LogDensityProblemsAD. Pass an adtype parameter to compile() to get a gradient-enabled model.

    • Example: model = compile(model_def, data; adtype=AutoReverseDiff())
    • Supports AutoReverseDiff, AutoForwardDiff, AutoMooncake
  • Auto-marginalization for discrete parameters (#385): Automatically marginalize discrete latent variables to enable gradient-based inference on models with discrete parameters.

    • Example: model = set_evaluation_mode(settrans(compile(model_def, data), true), UseAutoMarginalization())
    • Supports models where discrete parameters have finite support (e.g., Categorical, Bernoulli)
  • On-demand log density function generation (#416): Log density functions are now generated on-demand when set_evaluation_mode(model, UseGeneratedLogDensityFunction()) is called, rather than at compile time. All models start with UseGraph() mode.

Breaking Changes

  • LogDensityProblemsAD.ADgradient is no longer supported. Use compile(...; adtype=...) or BUGSModelWithGradient(model, adtype) instead.

Migration Notes

With on-demand generation (#416), some internal options from 0.10.x are no longer needed:

  • skip_source_generation parameter removed from compile() - no longer necessary since functions are generated lazily.
  • regenerate_log_density kwarg removed from condition() - conditioned models start in UseGraph mode; call set_evaluation_mode(model, UseGeneratedLogDensityFunction()) when needed.
  • regenerate_log_density_function() removed - use set_evaluation_mode(model, UseGeneratedLogDensityFunction()) instead.

Improvements

  • Expanded support for generated log density functions via dependence vectors (#390)
  • Julia 1.12 compatibility improvements (#404)

Merged pull requests:

Closed issues:

  • Add Aqua tests (#285)
  • Extend Code Generation to Support Models with Cyclic Dependencies (e.g., Time Series) (#290)
  • Remove type piracy methods (#312)
  • Simplify the workflow for computing model gradients (#380)
  • chain_type argument is not respected in sample calls (#381)

JuliaBUGS-v0.11.1

02 Dec 09:47
d2865ad

Choose a tag to compare

JuliaBUGS JuliaBUGS-v0.11.1

Diff since JuliaBUGS-v0.11.0

Merged pull requests:

  • DoodleBUGS: Make zooming smooth (#360) (#384) (@Govindggupta)
  • Add DoodleBUGS PR Preview cleanup workflow (#387) (@Copilot)
  • Use dependence vectors to support generating Julia code for more models (#390) (@sunxd3)
  • DoodleBUGS: Implement Undo/Redo functionality (#398) (@kundangosavii)
  • CompatHelper: bump compat for JSON to 1 for package JuliaBUGS, (keep existing compat) (#399) (@github-actions[bot])
  • Use invokelatest in tests (because of Julia 1.12) (#404) (@sunxd3)
  • DoodleBUGS: fix Dependabot security alerts (#407) (@shravanngoswamii)
  • DoodleBUGS: Use PrimeVue for UI & Implement “Figma-like” Layout & Model Sharing Feature (#408) (@shravanngoswamii)
  • DoodleBUGS: fix sharing model with validation errors (#410) (@shravanngoswamii)
  • DoodleBUGS: Remove node only when Alt/Option (⌥) is pressed (#413) (@shravanngoswamii)

Closed issues:

  • Compile to JAX to enable GPU/TPU acceleration and vmap. (#209)
  • DoodleBUGS: Add GHA for PR Preview cleanup (#342)
  • DoodleBUGS: Backend (#355)
  • DoodleBUGS: Allow plate resizing (#358)
  • DoodleBUGS: Undo/Redo Functionality (#359)
  • DoodleBUGS: Make zooming smooth (#360)
  • JuliaBUGS: Plates not supported in plotting (#412)

JuliaBUGS-v0.11.0

19 Nov 16:56
0b9ead6

Choose a tag to compare

JuliaBUGS JuliaBUGS-v0.11.0

Diff since JuliaBUGS-v0.10.5

v0.11.0 Breaking Changes

Simplified sampling API in AbstractPPL.evaluate!!: Replaced sample_all and respect_observed (added in 0.10.5) kwargs with sample_observed.

Migration:

  • From 0.10.5: Default behavior unchanged (samples latents, keeps observed fixed)
    • sample_all=true, respect_observed=falsesample_observed=true
    • Other uses → remove (now default)
  • From 0.10.4 or earlier: Default behavior changed
    • Old default sampled all nodes including observed
    • New default keeps observed fixed; use sample_observed=true for old behavior

Merged pull requests:

  • Simplify sampling API: replace sample_all and respect_observed with sample_observed (#406) (@sunxd3)

JuliaBUGS-v0.10.5

17 Nov 08:19
43fdaac

Choose a tag to compare

JuliaBUGS JuliaBUGS-v0.10.5

Diff since JuliaBUGS-v0.10.4

Merged pull requests:

  • Add a kwarg to allow respecting observed values when sampling with evaluate_with_rng!! (#405) (@sunxd3)

JuliaBUGS-v0.10.4

07 Nov 11:35
870c2f1

Choose a tag to compare

JuliaBUGS JuliaBUGS-v0.10.4

Diff since JuliaBUGS-v0.10.3

Merged pull requests:

  • DoodleBUGS: Now works in WebKit broswers (Safari, all iPad/iOS browsers) (#402) (@shravanngoswamii)
  • Allow disabling source generation during compilation (#403) (@sunxd3)

Closed issues:

  • DoodleBUGS: Make it work for iPad (#350)
  • example 6 does not compile (#400)

JuliaBUGS-v0.10.3

23 Sep 12:40
53fd7bb

Choose a tag to compare

JuliaBUGS JuliaBUGS-v0.10.3

Diff since JuliaBUGS-v0.10.2

Merged pull requests:

  • Formatting some code and adjust formatting configs (#396) (@sunxd3)