Skip to content

Releases: PyAutoLabs/PyAutoLens

v2026.7.1.646

Choose a tag to compare

@Jammy2211 Jammy2211 released this 01 Jul 06:26

PyAutoLens v2026.7.1.646

No direct changes in this release.


Full changelog: 2026.6.30.644...2026.7.1.646

v2026.6.30.644

Choose a tag to compare

@Jammy2211 Jammy2211 released this 30 Jun 06:11

PyAutoLens v2026.6.30.644

No direct changes in this release.


Full changelog: 2026.6.29.643...2026.6.30.644

v2026.6.29.643

Choose a tag to compare

@Jammy2211 Jammy2211 released this 29 Jun 06:46

PyAutoLens v2026.6.29.643

No direct changes in this release.


Full changelog: 2026.6.26.642...2026.6.29.643

v2026.6.26.642

Choose a tag to compare

@Jammy2211 Jammy2211 released this 26 Jun 06:11

PyAutoLens v2026.6.26.642

No direct changes in this release.

Upstream Changes

PyAutoArray

  • Add optional arcsecond double-prime tick labels (#350)

Full changelog: 2026.6.25.641...2026.6.26.642

v2026.6.25.641

Choose a tag to compare

@Jammy2211 Jammy2211 released this 25 Jun 06:08

PyAutoLens v2026.6.25.641

What's New

Breaking Changes

  • feat: datacube shared-state for AnalysisInterferometer via curvature preloads (#566)
  • Honour PYAUTO_TEST_MODE in LOSSampler to fix los_halos simulator timeouts (#559)
    • autolens.lens.los.negative_kappa_from gains two optional keyword arguments, quad_limit=50 and quad_epsrel=1.49e-8 (both scipy's own quad defaults), threaded into its inner and outer integrals. Existing callers are unaffected. LOSSampler.galaxies_from now reads autoconf.test_mode.is_test_mode() internally; its signature is unchanged. No removals or renames. See full details below.

New Features

  • docs: add signpost llms.txt + consolidate agent instructions into AGENTS.md (#570)
  • test: regression guard for HowToLens tutorial_3 NaN axis-limits crash (#560)

Bug Fixes

  • fix(jax): defensive pytree dedup in imaging/interferometer analyses (#561)

Internal

  • main.yml → thin caller to Pulse reusable lib-tests (Stage 4 Phase A) (#572)
  • Remove url_check.yml: URL hygiene centralised in PyAutoPulse (#571)
  • docs: consolidate agent instructions into canonical AGENTS.md (#569)
  • refactor(latent): LatentLens class + declare Analysis.Latent (Phase 2) (#568)
  • Feature/positions threshold (#507)

Upstream Changes

PyAutoFit

  • main.yml → thin caller to Pulse reusable lib-tests (Stage 4 Phase A) (#1322)
  • Remove url_check.yml: URL hygiene centralised in PyAutoPulse (#1321)
  • docs: add signpost llms.txt + consolidate agent instructions into AGENTS.md (#1320)
  • docs: consolidate agent instructions into canonical AGENTS.md (#1319)
  • refactor(latent): migrate af.ex.Analysis + cookbook docs to the Latent class (#1318)
  • fix: skip latent computation without keys (#1317)
  • refactor(latent): first-class Latent class + engine extraction (Phase 1) (#1315)
  • fix: expand bypass-mode fake samples (#1314)
  • test: skip NSS tests without optional dependency (#1312)
  • fix(latent): degenerate latent edge cases (quantile n=1, latent exceptions, anti-correlated NaNs) (#1311)
  • fix(latent): global masking in compute_latent_samples to prevent KeyError on per-batch NaN drops (#1310)
  • feat: cross-Analysis shared per-evaluation state in FactorGraphModel (#1308)
  • chore(deps): allow anesthetic>=2.9.0 to unblock jax>=0.7 / numpy>=2 resolution (#1306)
  • fix(nss): chunked algo.init follow-up to #1303 (#1305)
  • feat(nss): chunk_size kwarg for inversion-heavy A100 likelihoods (#1303)
  • fix(jax): structural defense against cached_property pytree/dict leaks (#1302)

PyAutoArray

  • main.yml → thin caller to Pulse reusable lib-tests (Stage 4 Phase A) (#349)
  • Remove url_check.yml: URL hygiene centralised in PyAutoPulse (#348)
  • docs: add signpost llms.txt + consolidate agent instructions into AGENTS.md (#347)
  • docs: consolidate agent instructions into canonical AGENTS.md (#346)
  • feat: Preloads API for reusing channel-invariant inversion quantities (#344)
  • fix(jax): exclude cached_property descriptors from pytree flatten paths (#343)

PyAutoGalaxy

  • main.yml → thin caller to Pulse reusable lib-tests (Stage 4 Phase A) (#476)
  • Remove url_check.yml: URL hygiene centralised in PyAutoPulse (#475)
  • docs: add signpost llms.txt + consolidate agent instructions into AGENTS.md (#474)
  • docs: consolidate agent instructions into canonical AGENTS.md (#473)
  • refactor(latent): LatentGalaxy class + declare Analysis.Latent (Phase 2) (#472)
  • Lensing potential for elliptical/spherical dark-matter profiles (NFW/gNFW) + NFWSph fix (#470)
  • fix(jax): defensive pytree dedup in imaging/interferometer analyses (#468)
  • fix(mass): convergence_func on PowerLawBroken, PowerLawMultipole, cNFW family (#467)

Full changelog: 2026.5.29.4...2026.6.25.641

v2026.5.29.4

Choose a tag to compare

@Jammy2211 Jammy2211 released this 29 May 10:25

PyAutoLens v2026.5.29.4

What's New

Breaking Changes

  • Honour PYAUTO_TEST_MODE in LOSSampler to fix los_halos simulator timeouts (#559)
    • autolens.lens.los.negative_kappa_from gains two optional keyword arguments, quad_limit=50 and quad_epsrel=1.49e-8 (both scipy's own quad defaults), threaded into its inner and outer integrals. Existing callers are unaffected. LOSSampler.galaxies_from now reads autoconf.test_mode.is_test_mode() internally; its signature is unchanged. No removals or renames. See full details below.
  • fix: effective_einstein_radius falls back to NumPy when jax_zero_contour missing (#558)
    • Behaviour change (no signature change): on the JAX path (xp is not np), effective_einstein_radius now detects whether jax_zero_contour is importable. If yes — unchanged JIT path. If no — falls through to the existing NumPy einstein_radius_from(grid) branch with a one-time-per-process warning. NumPy callers are unaffected. New private helper _jax_zero_contour_available and module-level flag _JAX_ZERO_CONTOUR_FALLBACK_WARNED.
  • fix: raw-flux latents + soft-fail magzero-required µJy (#557)
  • feat: first-class lensing latent variable API in PyAutoLens (#534)
    • New public module autolens.analysis.latent exposing the five latent functions + LATENT_FUNCTIONS registry + latent_keys_enabled() reader. AnalysisImaging gains LATENT_KEYS @property and compute_latent_variables(parameters, model). New autolens/config/latent.yaml (all keys default false). Helpers ab_mag_via_flux_from / flux_mujy_via_ab_mag_from are imported from autogalaxy.imaging.model.latent (shipped in PyAutoGalaxy #441). No PyAutoFit changes. Latents take a generic fit argument and use APIs shared between FitImaging and FitInterferometer, so a future AnalysisInterferometer wiring can reuse the registry without duplication.
  • fix(viz): make _compute_critical_curve_lines failures loud, not silent (#527)
    • _compute_critical_curve_lines is a private helper — no public API surface changes. Behavioural change: unexpected exceptions now emit a WARNING log with traceback before falling back to no-overlay rendering, instead of being silently swallowed.

New Features

  • test: regression guard for HowToLens tutorial_3 NaN axis-limits crash (#560)
  • Add placeholder subplot_fit_quick for weak lensing and combined fits (#553)
  • Add subplot_fit_quick for point source quick updates (#552)
  • Simplify subplot_fit_quick: use fit properties directly (#551)
  • Add subplot_fit_quick for interferometer quick updates (#549)
  • perf: cache expensive @Property on Fit classes (#548)
  • Add subplot_fit_quick for faster quick-update rendering (#546)
  • feat: SimulatorInterferometer.via_tracer_from auto-default xp from parent use_jax (#540)
  • feat: SimulatorImaging.via_tracer_from auto-default xp from parent use_jax (#539)
  • feat: PointSolver(use_jax=True) + autolens.jax.register_tracer_classes (#538)

Bug Fixes

  • fix(jax): defensive pytree dedup in imaging/interferometer analyses (#561)
  • test: lock down WeakDataset json round-trip (paired with PyAutoArray fix) (#555)
  • Fix subplot_fit_quick styling: arcsecond axes, source plane, code reuse (#550)

Internal

  • Fast subplot_fit_quick: sub-second rendering for quick updates (#547)
  • feat: batched_simulate_substructure via jax.vmap (#545)
  • feat: simulate_substructure end-to-end jittable simulator (#544)
  • feat: scan-based multi-plane ray-tracing for substructure (#543)
  • fix: total_source_flux_mujy wrong value for linear light profiles (#536)
  • docs: add autolens_assistant prototype callout to README and docs index (#530)
  • refactor(model_util): replace simulator_start_here_model_from with direct random_galaxies_for_simulation_from (#529)
  • refactor: archive quantity package to autolens_workspace_developer/legacy (#528)

Upstream Changes

PyAutoFit

  • chore(deps): allow anesthetic>=2.9.0 to unblock jax>=0.7 / numpy>=2 resolution (#1306)
  • fix(nss): chunked algo.init follow-up to #1303 (#1305)
  • feat(nss): chunk_size kwarg for inversion-heavy A100 likelihoods (#1303)
  • fix(jax): structural defense against cached_property pytree/dict leaks (#1302)
  • fix(jax): keep parameterization cache off ModelInstance + auto-register pytrees (#1300)
  • Cache model.parameterization; try interactive matplotlib backends (#1299)
  • Prefer fit_quick.png in quick-update display candidates (#1298)
  • Remove use_jax_for_visualization; add visualization warmup (#1297)
  • fix: skip _compute_latent_samples in PYAUTO_TEST_MODE (#1294) (#1295)
  • Add live_visual_update flag for opt-in on-the-fly visualization (#1293)
  • fix: PYAUTO_TEST_MODE should write to a separate output dir (#1292)
  • feat(quick_update): IPython.display.update_display for live Jupyter cells (#1290)
  • feat(analysis): LATENT_BATCH_MODE attribute (vmap default, jit option) (#1288)
  • Fix Sample.kwargs mixed string/tuple key bug (#1287)
  • nss extras: strip git+https URLs to unblock PyPI uploads (#1286)

PyAutoArray

  • fix(jax): exclude cached_property descriptors from pytree flatten paths (#343)
  • fix: VectorYX2DIrregular from_dict round-trip (missing values property) (#342)
  • perf: cache expensive @Property on Fit classes (#341)
  • fix: make Array2D.native jit-traceable for JAX simulator path (#339)
  • fix: raise ValueError on xp=np + jnp-backed-grid mismatch (#337)
  • feat: SimulatorInterferometer(use_jax=True) + xp-aware preprocess Gaussian noise (#336)
  • feat: SimulatorImaging(use_jax=True) + xp-aware preprocess noise (#335)
  • TransformerNUFFT: add chunk_size knob to cap nufftax gather buffer (#330)
  • interferometer: enable sparse_operator for nufftax TransformerNUFFT (#329)

PyAutoGalaxy

  • fix(jax): defensive pytree dedup in imaging/interferometer analyses (#468)
  • fix(mass): convergence_func on PowerLawBroken, PowerLawMultipole, cNFW family (#467)
  • fix(mass): wire convergence_func on dPIE family for MGE decomposition (#466)
  • fix: soft-fail jax_zero_contour callers in lens_calc to NaN/[] (#465)
  • fix: raw-flux latent + soft-fail magzero-required µJy (#463)
  • perf: cache expensive @Property on Fit classes (#462)
  • perf: vectorize MGE potential over components (#461)
  • fix: elliptical MGE potential via deflection line integral (#460)
  • fix: use xp.sqrt in NFWSph.potential_func_sph (#458)
  • fix: add xp=np to convergence_func across all mass profiles (#457)
  • feat: vmapped_deflections_from for batched subhalo deflections (#455)
  • fix: cNFWSph deflection boundary bug and MCR validation (#451) (#454)
  • docs: LaTeX docstrings for all mass profile classes (#453)
  • feat: MGE/CSE fallback for zero-retu...
Read more

v2026.5.21.1

Choose a tag to compare

@Jammy2211 Jammy2211 released this 21 May 09:47

PyAutoLens v2026.5.21.1

What's New

Breaking Changes

  • docs(api): sync mass.rst with full al.mp namespace + lmp / lmp_linear (#520)
  • feat: redesign subplot_fit panels �� add Source Plane (Mid Zoom) (#518)
      • _plot_source_plane(...) and plane_image_from(...) gain a zoom_extent_scale kwarg. plane_image_from also gains a zoom_extent_bounds kwarg.
      • subplot_fit and subplot_fit_log10 produce the new 12-panel layout — same panel count, different ordering, one renamed panel ("Source Plane (Zoomed)" → "Source Plane (Max Zoom)"), one new panel ("Source Plane (Mid Zoom)"), one removed panel ("Data (Source Scale)").
  • docs(api): sync light profile reference with PyAutoGalaxy (#516)
  • fix: AnalysisPoint.init kwargs passthrough (#506)
    • al.AnalysisPoint.__init__ gains a **kwargs passthrough — strictly additive. Any caller that previously worked is unaffected. New: callers can now pass use_jax_for_visualization=True (or any other kwarg accepted by the autofit base Analysis) without TypeError.

New Features

  • feat: re-export galaxy_model_csv helpers under al.* (#526)
  • feat(weak): FitWeak class + plotters (#524) (#525)
  • feat(weak): aplt plotters for WeakDataset shear catalogues (#496) (#523)
  • docs(api): list SersicMultipole and GaussianMultipole in autosummary (#515)

Bug Fixes

  • docs: audit-driven URL fixes across docs, READMEs, and docstrings (#509)

Internal

  • feat(AnalysisImaging): plumb dataset_model into adapt_images_via_instance_from (#512)
  • ci: add live URL audit (weekly cron) + grandfather current broken URLs (#510)
  • added maximum threshold (#505)

Upstream Changes

PyAutoFit

  • nss extras: strip git+https URLs to unblock PyPI uploads (#1286)
  • perf: direct-ndtr fast path for TruncatedGaussianPrior.value_for (#1285)
  • fix: coerce figure_of_metric return to Python float for Drawer + JAX (#1283)
  • ci: split NSS tests into parallel job (handley-lab blackjax fork ≠ mainline) (#1281)
  • revert: default use_jax_for_visualization to False (reverts #1278) (#1280)
  • feat: default use_jax_for_visualization to follow use_jax in Analysis.init (#1278)
  • feat: autofit[nss] install extra (Phase 4 of nss_first_class_sampler) (#1277)
  • feat: af.NSS checkpoint/resume + on-the-fly visualization (Phases 2-3) (#1274)
  • feat: af.NSS NonLinearSearch wrapper for Nested Slice Sampling (Phase 1 of nss_first_class_sampler) (#1272)
  • fix: dedupe number_of_cores in Drawer for from_dict round-trip (#1270)
  • fix: log_prior_from_value sign convention — density form across Prior subclasses (#1269)
  • ci: add live URL audit (weekly cron) + grandfather current broken URLs (#1268)
  • fix: add quick_update kwarg to VisualizerExample.visualize_combined (#1267)
  • docs: audit-driven URL fixes across docs, READMEs, and docstrings (#1265)
  • Disable model.graph output by default (#1264)
  • feat: JAX-native priors — xp dispatch on value_for / log_prior_from_value / vector_from_unit_vector (#1263)
  • fix: exclude exclude_identifier_fields attrs from model.info (#1261)

PyAutoArray

  • Pin nufftax >=0.4.0,<0.5.0 on Python 3.12+ (#328)
  • feat(grids): add respect_small_datasets kwarg to Grid2D.uniform (#327)
  • fix(mask): cap radius under PYAUTO_SMALL_DATASETS (#325)
  • feat: add zoom_extent_scale to Mapper.extent_from for Mid Zoom panel (#324)
  • feat: RectangularRotatedAdaptImage — PCA rotation fixes multi-source ghost-peak failure (#323)
  • fix(inversion): make AbstractMeshGeometry picklable (xp module → _use_jax bool + property) (#321)
  • Reduce critical curves and caustics overlay linewidth from 2 to 1 (#319)
  • Add KNNBarycentric mesh: JAX-native Delaunay-class interpolator (#318)
  • fix(interferometer): correct sparse curvature for Pmax > 1 (Delaunay) (#316)
  • fix(interferometer-sparse): guard against Delaunay mappers (issue #314) (#315)
  • fix(hilbert): support offset-centre circular masks (#313)
  • feat(DatasetModel): add grid_rotation_angle for multi-band rotation (#312)
  • feat(interferometer): from_fits accepts raise_error_dft_visibilities_limit (#311)
  • ci: add live URL audit (weekly cron) + grandfather current broken URLs (#310)
  • docs: audit-driven URL fixes across docs, READMEs, and docstrings (#309)
  • feat: add aa.interp_2d (NumPy + JAX bilinear interpolation) (#308)

PyAutoGalaxy

  • Pin jax_zero_contour >=2.0.0,<3.0.0 in [jax] extras (#432)
  • fix(lens_calc): preserve evaluation_grid extent under PYAUTO_SMALL_DATASETS=1 (#431)
  • fix: handle r=0 in NFWSph deflections (#430)
  • fix(csv): preserve TuplePrior on af.Model built from tuple-param rows (#429)
  • feat(galaxy): named-galaxy CSV reader/writer for full model round-trips (#428)
  • fix: EllipseMultipoleScaled JAX-traceable via deferred derivation (#427)
  • fix: Basis.image_2d_from and dPIEPotential.convergence_2d_from return wrong wrapper types (#425)
  • config: add prior defaults for ExternalPotential (#423)
  • feat(mass): add ExternalPotential mass profile (Powell 2022 Eq 4) (#422)
  • refactor(light): split multipole module + add ag.lp_linear variants (#421)
  • feat(light): add SersicMultipole and GaussianMultipole profiles (#420)
  • feat(AdaptImages): rotate cached mesh grid with DatasetModel transforms (#416)
  • ci: add live URL audit (weekly cron) + grandfather current broken URLs (#415)
  • fix: add quick_update kwarg to VisualizerImaging.visualize_combined (#414)
  • docs: audit-driven URL fixes across docs, READMEs, and docstrings (#413)
  • feat: AnalysisEllipse.fit_from + JAX pytree registration (keystone) (#412)
  • refactor: unify FitEllipse perimeter sampling; add JAX support (#410)
  • refactor: parameterise Ellipse + EllipseMultipole math on xp (#408)
  • feat: replace Ludlow16 colossus pure_callback with JAX-native impl (#403) (#406)
  • fix: register DatasetModel pytree in _register_fit_quantity_pytrees (#405)
  • feat: wire ag.VisualizerQuantity through fit_for_visualization (#404)
  • docs(research): Ludlow16 JAX concentration feasibility study (#397) (#402)
  • feat: pytree registration for FitEllipse + FitQuantity (Phase 0c) (#401)
  • fix: ag.AnalysisInterferometer.init kwargs passthrough (#399)
  • refactor: DatasetInterp delegates to aa.interp_2d; expose xp (#398)

Full changelog: https://github.com/PyAutoLabs/PyAutoLens/co...

Read more

v2026.5.14.2

Choose a tag to compare

@Jammy2211 Jammy2211 released this 14 May 15:10

PyAutoLens v2026.5.14.2

What's New

Breaking Changes

  • fix: AnalysisPoint.init kwargs passthrough (#506)
    • al.AnalysisPoint.__init__ gains a **kwargs passthrough — strictly additive. Any caller that previously worked is unaffected. New: callers can now pass use_jax_for_visualization=True (or any other kwarg accepted by the autofit base Analysis) without TypeError.
  • feat: re-export galaxy_table CSV helpers from autogalaxy (#502)
    • Three new namespace exports on autolens, all pointing at the autogalaxy implementations from PyAutoGalaxy#392:
      • al.GalaxyTable
  • fix: AnalysisInterferometer.init kwargs passthrough (#500)
    • al.AnalysisInterferometer.__init__ gains a **kwargs passthrough — strictly additive. Any caller that previously worked is unaffected. New: callers can now pass use_jax_for_visualization=True (or any other kwarg accepted by the autofit base Analysis) without TypeError.

New Features

  • docs: add nufftax + FINUFFT citation guidance (#503)

Bug Fixes

  • fix: AnalysisImaging.log_likelihood_function CPU branch returns figure_of_merit (not log_likelihood) (#504)

Internal

  • feat: re-export TransformerNUFFTPyNUFFT (legacy pynufft NUFFT) (#501)
  • fix: tracer_util JAX-safe for traced subhalo redshifts (#498) (#499)

Upstream Changes

PyAutoFit

  • fix: populate NUTS samples_info keys under test-mode bypass (#1260)
  • fix: stop passing dataset=None to fit_cls when sensitivity Job is complete (#1259)

PyAutoArray

  • feat: add aa.interp_2d (NumPy + JAX bilinear interpolation) (#308)
  • perf: batched transform_mapping_matrix in TransformerNUFFT (single nufft2d2 call) (#305)
  • fix(inversion): regularization_weights_mapper_dict uses correct linear_obj_list index (#304)
  • feat: nufftax-backed TransformerNUFFT as default; rename pynufft variant to TransformerNUFFTPyNUFFT (#303)
  • Make use_mixed_precision actually emit fp32 FFT for light profiles (#302)
  • feat: honor PYAUTO_SMALL_DATASETS in Imaging.from_fits (#301)

PyAutoGalaxy

  • feat: replace Ludlow16 colossus pure_callback with JAX-native impl (#403) (#406)
  • fix: register DatasetModel pytree in _register_fit_quantity_pytrees (#405)
  • feat: wire ag.VisualizerQuantity through fit_for_visualization (#404)
  • docs(research): Ludlow16 JAX concentration feasibility study (#397) (#402)
  • feat: pytree registration for FitEllipse + FitQuantity (Phase 0c) (#401)
  • fix: ag.AnalysisInterferometer.init kwargs passthrough (#399)
  • refactor: DatasetInterp delegates to aa.interp_2d; expose xp (#398)
  • docs: add nufftax + FINUFFT citation guidance (#396)
  • test: pin FitEllipse masked-points-loop behaviour (#395)
  • feat: add galaxy_table CSV reader/writer for galaxy populations (#393)
  • feat: re-export TransformerNUFFTPyNUFFT (legacy pynufft NUFFT) (#391)
  • feat: dispatch autogalaxy visualizers via fit_for_visualization (#390)

Full changelog: 2026.5.8.2...2026.5.14.2

v2026.5.8.2

Choose a tag to compare

@Jammy2211 Jammy2211 released this 08 May 19:07

⚠️ 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.

PyAutoLens v2026.5.8.2

What's New

Breaking Changes

  • Add VisualizerInterferometer combined plotter for datacube fits (#494)
  • fix: synthetic PositionsLH under skip_checks + test_mode (#490)
  • feat(weak-lensing): add WeakDataset + SimulatorShearYX (step 1) (#473)

Internal

  • fix: tracer_util JAX-safe for traced subhalo redshifts (#498) (#499)
  • refactor: replace os.path with pathlib (#497)
  • docs: update workspace prose refs from README.rst to README.md (#493)
  • docs: convert remaining prose .rst to MyST .md (pass 2) (#492)
  • Fix mapper-index lookup in source_plane_inversion_centre_from (#491)
  • test: move sparse-operator parity check to autolens_workspace_test (#489)
  • test: clean up jax false positives in test_autolens/ (#488)
  • docs: convert prose .rst files to MyST .md (#487)

Upstream Changes

PyAutoFit

  • fix: populate NUTS samples_info keys under test-mode bypass (#1260)
  • fix: stop passing dataset=None to fit_cls when sensitivity Job is complete (#1259)
  • refactor: replace os.path with pathlib (#1258)
  • feat: add BlackJAXNUTS first-class non-linear search (#1256)
  • Visualizer.visualize_combined: accept quick_update kwarg (#1254)
  • Fix AnalysisFactor.visualize_combined dispatch in FactorGraph (#1253)
  • Refresh cached SearchUpdater when AbstractSearch.paths is reassigned (#1252)
  • docs: update workspace prose refs from README.rst to README.md (#1251)
  • Support fixed Array elements through the EP fitting pipeline (#1250)
  • docs: convert remaining prose .rst to MyST .md (pass 2) (#1249)
  • Add EPAnalysisFactor for cavity-message injection (#1248)
  • test: delete jax-using unit tests (moved to autofit_workspace_test) (#1247)
  • docs: convert prose .rst files to MyST .md (#1246)

PyAutoArray

  • feat: honor PYAUTO_SMALL_DATASETS in Imaging.from_fits (#301)
  • refactor: replace os.path with pathlib (#300)
  • docs: convert remaining prose .rst to MyST .md (pass 2) (#298)
  • Fix subplot_of_mapper crash on interferometer data_subtracted (#297)
  • fix OOB read in psf_precision_value_from causing NaN sparse-CPU log_evidence (#296)
  • test: remove jax-using unit tests; assertions moved to autolens_workspace_test (#295)
  • docs: convert index.rst to MyST .md (#294)

PyAutoGalaxy

  • refactor: replace os.path with pathlib (#388)
  • docs: update workspace prose refs from README.rst to README.md (#387)
  • docs: convert remaining prose .rst to MyST .md (pass 2) (#386)
  • fix: xp-gate jax.scipy.special.factorial in shapelets/exponential.py (#385)
  • test: remove jax from unit tests (moved to autogalaxy_workspace_test) (#384)
  • docs: convert prose .rst files to MyST .md (#383)

Full changelog: 2026.5.1.4...2026.5.8.2

v2026.5.8.1

Choose a tag to compare

@Jammy2211 Jammy2211 released this 08 May 18:22

PyAutoLens v2026.5.8.1

What's New

Breaking Changes

  • Add VisualizerInterferometer combined plotter for datacube fits (#494)
  • fix: synthetic PositionsLH under skip_checks + test_mode (#490)
  • feat(weak-lensing): add WeakDataset + SimulatorShearYX (step 1) (#473)

Internal

  • fix: tracer_util JAX-safe for traced subhalo redshifts (#498) (#499)
  • refactor: replace os.path with pathlib (#497)
  • docs: update workspace prose refs from README.rst to README.md (#493)
  • docs: convert remaining prose .rst to MyST .md (pass 2) (#492)
  • Fix mapper-index lookup in source_plane_inversion_centre_from (#491)
  • test: move sparse-operator parity check to autolens_workspace_test (#489)
  • test: clean up jax false positives in test_autolens/ (#488)
  • docs: convert prose .rst files to MyST .md (#487)

Upstream Changes

PyAutoFit

  • fix: populate NUTS samples_info keys under test-mode bypass (#1260)
  • fix: stop passing dataset=None to fit_cls when sensitivity Job is complete (#1259)
  • refactor: replace os.path with pathlib (#1258)
  • feat: add BlackJAXNUTS first-class non-linear search (#1256)
  • Visualizer.visualize_combined: accept quick_update kwarg (#1254)
  • Fix AnalysisFactor.visualize_combined dispatch in FactorGraph (#1253)
  • Refresh cached SearchUpdater when AbstractSearch.paths is reassigned (#1252)
  • docs: update workspace prose refs from README.rst to README.md (#1251)
  • Support fixed Array elements through the EP fitting pipeline (#1250)
  • docs: convert remaining prose .rst to MyST .md (pass 2) (#1249)
  • Add EPAnalysisFactor for cavity-message injection (#1248)
  • test: delete jax-using unit tests (moved to autofit_workspace_test) (#1247)
  • docs: convert prose .rst files to MyST .md (#1246)

PyAutoArray

  • feat: honor PYAUTO_SMALL_DATASETS in Imaging.from_fits (#301)
  • refactor: replace os.path with pathlib (#300)
  • docs: convert remaining prose .rst to MyST .md (pass 2) (#298)
  • Fix subplot_of_mapper crash on interferometer data_subtracted (#297)
  • fix OOB read in psf_precision_value_from causing NaN sparse-CPU log_evidence (#296)
  • test: remove jax-using unit tests; assertions moved to autolens_workspace_test (#295)
  • docs: convert index.rst to MyST .md (#294)

PyAutoGalaxy

  • refactor: replace os.path with pathlib (#388)
  • docs: update workspace prose refs from README.rst to README.md (#387)
  • docs: convert remaining prose .rst to MyST .md (pass 2) (#386)
  • fix: xp-gate jax.scipy.special.factorial in shapelets/exponential.py (#385)
  • test: remove jax from unit tests (moved to autogalaxy_workspace_test) (#384)
  • docs: convert prose .rst files to MyST .md (#383)

Full changelog: 2026.5.1.4...2026.5.8.1