Skip to content

Releases: PyAutoLabs/PyAutoFit

v2026.5.8.2

08 May 19:07

Choose a tag to compare

⚠️ v2026.5.8.2 is a no-op re-release of v2026.5.8.1 — same code, second release dispatched the same day to validate updated release-pipeline gates. The full set of changes shipped on 2026-05-08 follows.

PyAutoFit v2026.5.8.2

What's New

Breaking Changes

  • feat: add BlackJAXNUTS first-class non-linear search (#1256)
  • Visualizer.visualize_combined: accept quick_update kwarg (#1254)
    • Tiny additive signature change on a single method. Visualizer.visualize_combined now declares quick_update: bool = False so callers may pass it (the factor-graph dispatch always does). Default no-op behaviour is preserved; subclasses that already override the method without **kwargs get unblocked. See full details below.
  • Fix AnalysisFactor.visualize_combined dispatch in FactorGraph (#1253)
  • Support fixed Array elements through the EP fitting pipeline (#1250)
  • Add EPAnalysisFactor for cavity-message injection (#1248)
    • Added af.EPAnalysisFactor — an AnalysisFactor subclass with a set_cavity_dist(cavity_dist) hook that the EP optimiser invokes before every fit, attaching the cavity MeanField to analysis._cavity_mean_field so the user's log_likelihood_function can read per-variable cavity messages (.mean, .sigma) at evaluation time. No symbols removed, renamed, or behaviour-changed for existing factors. See full details below.

Bug Fixes

  • fix: populate NUTS samples_info keys under test-mode bypass (#1260)

Internal

  • fix: stop passing dataset=None to fit_cls when sensitivity Job is complete (#1259)
  • refactor: replace os.path with pathlib (#1258)
  • Refresh cached SearchUpdater when AbstractSearch.paths is reassigned (#1252)
  • docs: update workspace prose refs from README.rst to README.md (#1251)
  • docs: convert remaining prose .rst to MyST .md (pass 2) (#1249)
  • test: delete jax-using unit tests (moved to autofit_workspace_test) (#1247)
  • docs: convert prose .rst files to MyST .md (#1246)

Full changelog: 2026.5.1.4...2026.5.8.2

v2026.5.8.1

08 May 18:20

Choose a tag to compare

PyAutoFit v2026.5.8.1

What's New

Breaking Changes

  • feat: add BlackJAXNUTS first-class non-linear search (#1256)
  • Visualizer.visualize_combined: accept quick_update kwarg (#1254)
    • Tiny additive signature change on a single method. Visualizer.visualize_combined now declares quick_update: bool = False so callers may pass it (the factor-graph dispatch always does). Default no-op behaviour is preserved; subclasses that already override the method without **kwargs get unblocked. See full details below.
  • Fix AnalysisFactor.visualize_combined dispatch in FactorGraph (#1253)
  • Support fixed Array elements through the EP fitting pipeline (#1250)
  • Add EPAnalysisFactor for cavity-message injection (#1248)
    • Added af.EPAnalysisFactor — an AnalysisFactor subclass with a set_cavity_dist(cavity_dist) hook that the EP optimiser invokes before every fit, attaching the cavity MeanField to analysis._cavity_mean_field so the user's log_likelihood_function can read per-variable cavity messages (.mean, .sigma) at evaluation time. No symbols removed, renamed, or behaviour-changed for existing factors. See full details below.

Bug Fixes

  • fix: populate NUTS samples_info keys under test-mode bypass (#1260)

Internal

  • fix: stop passing dataset=None to fit_cls when sensitivity Job is complete (#1259)
  • refactor: replace os.path with pathlib (#1258)
  • Refresh cached SearchUpdater when AbstractSearch.paths is reassigned (#1252)
  • docs: update workspace prose refs from README.rst to README.md (#1251)
  • docs: convert remaining prose .rst to MyST .md (pass 2) (#1249)
  • test: delete jax-using unit tests (moved to autofit_workspace_test) (#1247)
  • docs: convert prose .rst files to MyST .md (#1246)

Full changelog: 2026.5.1.4...2026.5.8.1

v2026.5.1.4

01 May 11:35

Choose a tag to compare

PyAutoFit v2026.5.1.4

Highlights

Python 3.9–3.13 supported, 3.12 / 3.13 recommended

This release expands supported Python versions to 3.9 through 3.13 (#1244). 3.12 and 3.13 are first-class recommended; 3.9, 3.10, 3.11 are supported but emit a loud (bypassable) banner on import. Silence the banner via version.python_version_check: False in your workspace's config/general.yaml. Python 3.14 is not yet supported (parked on a known FactorGraphModel iteration bug).

Key impacts for users:

  • requires-python = ">=3.9" in pyproject.toml (lower floor than before)
  • Classifiers now cover 3.9, 3.10, 3.11, 3.12, 3.13
  • JAX is now an optional extra: pip install autofit[jax], gated on python_version >= '3.11'. Plain pip install autofit no longer pulls JAX as a transitive dep.
  • Analysis(use_jax=True) falls back to numpy with a UserWarning when JAX isn't installed, instead of failing at import time.

JAX-jitted likelihoods in Dynesty (use_jax_jit)

Dynesty searches now support JAX-jitted likelihood evaluation via the new use_jax_jit option (#1243). For likelihood-bound runs, this can deliver substantial speedups by JIT-compiling the likelihood once instead of evaluating it interpretively per sample.

Bug Fixes

  • compute_latent_samples now skips samples that raised a FitException instead of crashing the whole computation (#1233)

Internal / Cleanup

  • Remove unused pyprojroot dependency (#1242) — pip install autofit no longer pulls pyprojroot
  • Delete jax-using unit tests; cross-xp checks live in autofit_workspace_test (#1247) — keeps the library's unit suite numpy-only

Upstream Changes

PyAutoConf

  • Support Python 3.9–3.13, first-class 3.12/3.13 (PyAutoConf#102)
  • Soften Python version check with general.yaml bypass (PyAutoConf#96)

Full changelog: 2026.4.13.6...2026.5.1.4

v2026.4.13.6

13 Apr 09:46

Choose a tag to compare

PyAutoFit v2026.4.13.6

What's New

Bug Fixes

  • fix: pin autoconf dependency version and update homepage URL (#1206)

Full changelog: 2026.4.13.5...2026.4.13.6

v2026.4.13.5

13 Apr 09:31

Choose a tag to compare

PyAutoFit v2026.4.13.5

What's New

Bug Fixes

  • fix: pin autoconf dependency version and update homepage URL (#1206)

Full changelog: 2026.4.13.3...2026.4.13.5

v2026.4.13.3

13 Apr 08:35

Choose a tag to compare

PyAutoFit v2026.4.13.3

What's New

Breaking Changes

  • fix: guard interpolator and grid search against edge cases (#1201)

New Features

  • docs: update Python version to 3.12-3.13 (#1199)

Bug Fixes

  • fix: bump scipy cap to <=1.15.2 (#1196)

Internal

  • refactor: replace search YAML config with explicit Python defaults (#1202)
  • build: add Python 3.13 support (#1198)
  • build: raise scipy cap, relax threadpoolctl and SQLAlchemy pins (#1197)
  • refactor: separate PYAUTOFIT_TEST_MODE into distinct PYAUTO_* env vars (#1195)

Full changelog: 2026.4.5.3...2026.4.13.3

v2026.4.5.3

05 Apr 18:59

Choose a tag to compare

PyAutoFit v2026.4.5.3

What's New

New Features

  • Flatten plot API: replace Plotter classes with module-level functions (#1174)

Bug Fixes

  • fixes to figure of merit (#1166)

Internal

  • Drop Python 3.9-3.11, add 3.13 (#1177)
  • Make search logging JAX-aware (#1176)
  • Add expanded model mapping unit tests (#1172)
  • feature/jax_cpu_jit (#1170)
  • feature/jax_cpu_batch_size_1 (#1169)
  • feature/samples_summary_failsafe (#1168)

Full changelog: 2025.5.10.1...2026.4.5.3

May 2025

07 May 20:44

Choose a tag to compare

  • Remove Analysis summing API, replacing all dataset combinations with AnalysisFactor and FactorGraphModel API used for graphical modeling:

https://github.com/Jammy2211/autofit_workspace/blob/main/notebooks/cookbooks/multiple_datasets.ipynb

  • Results workflow API, which generates .csv, .png and .fits files of large libraries of results for quick and efficient inspection:

https://github.com/Jammy2211/autolens_workspace/tree/main/notebooks/results/workflow

  • Latent variable API bug fixes and now used in some test example scripts.

January 2025

18 Jan 12:45

Choose a tag to compare

This update is mostly bug fixes and small improvements, with no major new functionality added.

What's Changed

Full Changelog: 2024.11.13.2...2025.1.18.7

November 2024 update

13 Nov 16:59

Choose a tag to compare

Garbage collection and other things to improve memory use.