Skip to content

Releases: GW-JAX-Team/Jim

v0.4.1

Choose a tag to compare

@thomasckng thomasckng released this 26 Jun 20:39
f9d0d20

What's Changed

Bug Fixes

  • JAX compilation cache not reset after cleanup: After shutil.rmtree removed the JAX cache directory, jax_compilation_cache_dir was left pointing at the deleted path, causing FileNotFoundError on subsequent JIT calls and breaking FlowMC's cache guard. It is now reset to None (the correct "no cache" signal) after cleanup. The missing reset in SMC's _run_adaptive_persistent has also been fixed.
  • Duplicate log output: Restored propagate=False on the jimgw logger (accidentally dropped in a previous commit) to prevent messages appearing twice when basicConfig also installs a root handler.

Improvements

  • Tighter scalar type annotations: Introduced a FloatScalar type alias (src/jimgw/typing.py) and applied it consistently across likelihood, prior, transform, sampler, and core utilities. Return types now correctly reflect native Python/JAX scalars rather than generic Float.
  • Corner plot: injection log-likelihood: The CLI corner plot now annotates the injection truth value with its log-likelihood.
  • Corner plot: random subsampling: Switched from head-slice to random subsampling when downsampling posterior samples for plotting, giving a more representative visual.
  • CLI output: package versions in diagnostics: Jim now logs key package versions (jimgw, jax, ripple, etc.) at startup and writes them to diagnostics.json.
  • Reduced default CLI output sample size: Lowers memory pressure and plotting time for large runs.
  • Plotting dependencies promoted to core: matplotlib and related packages moved from optional extras to the main dependency list so jim-run output works out of the box.

Documentation

  • Added a Citing Jim page (docs/citing.md) with BibTeX entries and guidance on which upstream works to cite.
  • Added a new Out-of-Memory section to the FAQ with backend-agnostic troubleshooting steps.
  • Fixed the nested-sampling installation guide.
  • Added copy buttons to documentation code blocks.
  • Added Contributing page to the docs index.
  • Updated repository URLs following the GW-JAX-Team/jimJim GitHub rename.
  • Clarified that the upstream (pycbc / original) is no longer maintained.

CI / Infrastructure

  • Added TestPyPI publish job and automatic dev-release tagging for commits on the dev branch.
  • Added scheduled weekly pre-commit autoupdate workflow.
  • Fixed shell injection, persist-credentials, and workflow permission issues in CI.
  • Set fallback-version = "0.0.0" and strip local version identifiers so TestPyPI uploads don't fail.

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@thomasckng thomasckng released this 04 Jun 22:37
10d4d53

What's Changed

New Features

Waveforms

  • Added IMRPhenomXP, IMRPhenomHM and IMRPhenomXHM

Likelihood

  • Added MultibandedTransientLikelihoodFD for frequency-domain multibanded analysis

Sampler module

  • Full sampler module overhaul: BlackJAXNSSSampler, BlackJAXSMCSampler, and FlowMCSampler now expose a unified interface including sampling_time and diagnostics fields
  • Added log_Z_error and ESS history tracking to BlackJAXSMCSampler diagnostics
  • Added JAX persistent compilation cache support via configure_jax_cache
  • Added elapsed-time tracking across all sampler runs

Checkpointing

  • Implemented checkpoint/resume support for BlackJAXSMCSampler, BlackJAXNSSSampler, and FlowMCSampler
  • Samplers now use checkpoint_dir (a directory) instead of a single checkpoint_path; the checkpoint file is written atomically and validated on resume against the initial position shape
  • Added configurable checkpoint_interval; JAX cache is cleaned up on checkpoint write
  • CLI config now exposes checkpointing options

Transforms

  • Added GaussianTransform

Data I/O

  • Data.to_file now supports multiple output formats (HDF5, npz, etc.)
  • Enhanced file loading to support strain and PSD data in multiple formats

CLI (jim-run)

  • Added comprehensive CLI documentation
  • Added multibanded likelihood support to CLI
  • Added IMRPhenomXHM to CLI waveform options
  • Improved template config error handling

Breaking Changes

  • is_zero_noise parameter renamed to zero_noise in TransientLikelihoodFD
  • ifos renamed to detectors throughout configuration files and documentation
  • Marginalized likelihood subclasses removed; use {*}_marginalization=True instead
  • evaluate methods across likelihood classes no longer accept a data parameter

Bug Fixes

  • Fixed optimal_snr and match_filtered_snr fields to be Optional in GroundBased2G
  • Fixed nperseg to be integer in PSD calculations
  • Fixed JAX jit evaluation in TransientLikelihoodFD tests
  • Fixed log propagation and adjusted log levels (Tukey window message demoted to DEBUG)
  • Added parameter constraint assertions in UniformPrior, GaussianPrior, and RayleighPrior

Dependency Updates

  • Updated flowMC and ripple version requirements

Documentation

  • Restructured documentation layout and API reference generation
  • Added Mermaid.js flowcharts to quickstart and transforms guides
  • Added checkpointing/resuming section in samplers.md
  • Added CLI usage guide and example README files
  • Updated GW170817 and GW150914 example configurations

Full Changelog: v0.3.1...v0.4.0

v0.3.1

Choose a tag to compare

@thomasckng thomasckng released this 27 Apr 11:02
b2a1fde

What's Changed

Full Changelog: v0.3.0...v0.3.1

v0.3.0

Choose a tag to compare

@thomasckng thomasckng released this 08 Apr 14:01
747346a

What's Changed

New Contributors

Full Changelog: 0.2.0...v0.3.0