Releases: GW-JAX-Team/Jim
Releases · GW-JAX-Team/Jim
Release list
v0.4.1
What's Changed
Bug Fixes
- JAX compilation cache not reset after cleanup: After
shutil.rmtreeremoved the JAX cache directory,jax_compilation_cache_dirwas left pointing at the deleted path, causingFileNotFoundErroron subsequent JIT calls and breaking FlowMC's cache guard. It is now reset toNone(the correct "no cache" signal) after cleanup. The missing reset in SMC's_run_adaptive_persistenthas also been fixed. - Duplicate log output: Restored
propagate=Falseon thejimgwlogger (accidentally dropped in a previous commit) to prevent messages appearing twice whenbasicConfigalso installs a root handler.
Improvements
- Tighter scalar type annotations: Introduced a
FloatScalartype 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 genericFloat. - 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 todiagnostics.json. - Reduced default CLI output sample size: Lowers memory pressure and plotting time for large runs.
- Plotting dependencies promoted to core:
matplotliband related packages moved from optional extras to the main dependency list sojim-runoutput 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/jim→JimGitHub 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 autoupdateworkflow. - 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
What's Changed
New Features
Waveforms
- Added
IMRPhenomXP,IMRPhenomHMandIMRPhenomXHM
Likelihood
- Added
MultibandedTransientLikelihoodFDfor frequency-domain multibanded analysis
Sampler module
- Full sampler module overhaul:
BlackJAXNSSSampler,BlackJAXSMCSampler, andFlowMCSamplernow expose a unified interface includingsampling_timeanddiagnosticsfields - Added
log_Z_errorand ESS history tracking toBlackJAXSMCSamplerdiagnostics - 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, andFlowMCSampler - Samplers now use
checkpoint_dir(a directory) instead of a singlecheckpoint_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_filenow 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
IMRPhenomXHMto CLI waveform options - Improved template config error handling
Breaking Changes
is_zero_noiseparameter renamed tozero_noiseinTransientLikelihoodFDifosrenamed todetectorsthroughout configuration files and documentation- Marginalized likelihood subclasses removed; use
{*}_marginalization=Trueinstead evaluatemethods across likelihood classes no longer accept adataparameter
Bug Fixes
- Fixed
optimal_snrandmatch_filtered_snrfields to beOptionalinGroundBased2G - Fixed
npersegto be integer in PSD calculations - Fixed JAX jit evaluation in
TransientLikelihoodFDtests - Fixed log propagation and adjusted log levels (Tukey window message demoted to
DEBUG) - Added parameter constraint assertions in
UniformPrior,GaussianPrior, andRayleighPrior
Dependency Updates
- Updated
flowMCandrippleversion 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
What's Changed
- Merge recent updates from dev branch by @thomasckng in #106
Full Changelog: v0.3.0...v0.3.1
v0.3.0
What's Changed
- rename TransientLikelihood to BaseTransientLikelihood in example by @MarlindeD in #4
- Merge latest dev branch by @thomasckng in #6
- Remove unused import of Array from jaxtyping in transforms.py by @thomasckng in #19
- Remove init sample check by @thomasckng in #20
- Fix tests by @thomasckng in #21
- Add repr to all transform classes by @thomasckng in #25
- feat: basic unit test and minor init change for BaseTransientLikelihoodFD by @thomasckng in #29
- Update type check for mala_step_size in jim.py by @thomasckng in #26
- Fix array size variable name for jaxtyping in waveform.py by @thomasckng in #31
- Bump pypa/gh-action-pypi-publish from 1.10.3 to 1.13.0 in /.github/workflows in the github_actions group across 1 directory by @dependabot[bot] in #32
- Fix
from_fdfor incompletefd_databy @SSL32081 in #30 - Standardise repo structure by @thomasckng in #35
- Merge recent updates from jim-dev by @thomasckng in #34
- deps: bump mkdocs from 1.4.3 to 1.6.1 by @dependabot[bot] in #44
- deps: bump mkdocs-jupyter from 0.24.2 to 0.25.1 by @dependabot[bot] in #43
- deps: bump pymdown-extensions from 10.1 to 10.17.2 by @dependabot[bot] in #42
- deps: bump mkdocs-literate-nav from 0.6.0 to 0.6.2 by @dependabot[bot] in #41
- ci: bump astral-sh/setup-uv from 5 to 7 by @dependabot[bot] in #39
- ci: bump actions/checkout from 4 to 6 by @dependabot[bot] in #38
- deps: bump mkdocs-gen-files from 0.5.0 to 0.6.0 by @dependabot[bot] in #40
- Fix HeterodynedTransientLikelihoodFD init by @thomasckng in #36
- deps: bump mkdocs-material from 9.1.18 to 9.7.0 by @dependabot[bot] in #45
- deps: bump mkdocstrings[python] from 0.22.0 to 1.0.0 by @dependabot[bot] in #47
- deps: bump pymdown-extensions from 10.17.2 to 10.18 by @dependabot[bot] in #46
- Add error handling for uninitialised detector data in likelihood init by @thomasckng in #49
- Upgrade dependencies by @thomasckng in #50
- Implement frequency mask in strain data by @SSL32081 in #28
- Add uniform distribution by @thomasckng in #37
- deps: bump pymdown-extensions from 10.18 to 10.19.1 by @dependabot[bot] in #51
- Bump pymdown-extensions from 10.1 to 10.16.1 in /docs in the pip group across 1 directory by @dependabot[bot] in #52
- Merge recent updates from jim-dev by @thomasckng in #53
- deps: bump mkdocs-material from 9.7.0 to 9.7.1 by @dependabot[bot] in #55
- deps: bump pymdown-extensions from 10.19.1 to 10.20 by @dependabot[bot] in #56
- Fix spin mag bound in GW150914 Pv2 example by @ThibeauWouters in #61
- [claude] Output in numpy array instead of jax.numpy array by @james-alvey-42 in #59
- Reorganize test infrastructure by @thomasckng in #62
- Update phase marginalised likelihood by @thomasckng in #63
- deps: bump mkdocstrings[python] from 1.0.0 to 1.0.1 by @dependabot[bot] in #64
- Merge recent updates from dev branch by @thomasckng in #65
- deps: bump mkdocstrings[python] from 1.0.1 to 1.0.2 by @dependabot[bot] in #67
- deps: bump pymdown-extensions from 10.20 to 10.20.1 by @dependabot[bot] in #68
- deps: bump mkdocstrings[python] from 1.0.2 to 1.0.3 by @dependabot[bot] in #71
- Merge recent updates from dev branch by @thomasckng in #74
- deps: update uv.lock by @thomasckng in #77
- chore(config): migrate Renovate config by @renovate[bot] in #79
- Add distance-marginalized likelihood by @mrosep in #84
- Merge recent updates from dev branch by @thomasckng in #85
- Update JAX version by @thomasckng in #86
- Add support for flowMC periodic boundry condition by @thomasckng in #83
- Add phase+distance marginalized likelihood by @mrosep in #87
- Restructure likelihood classes by @thomasckng in #88
- feat: add support for callable fixed parameters in likelihood evaluation by @thomasckng in #91
- Refactor time handling and update injection interface by @thomasckng in #92
- Merge recent updates from dev branch by @thomasckng in #100
- Merge final changes before release by @thomasckng in #101
- fix: update flowmc and ripplegw dependencies to compatible versions by @thomasckng in #102
New Contributors
- @MarlindeD made their first contribution in #4
- @thomasckng made their first contribution in #6
- @dependabot[bot] made their first contribution in #32
- @SSL32081 made their first contribution in #30
- @ThibeauWouters made their first contribution in #61
- @james-alvey-42 made their first contribution in #59
- @renovate[bot] made their first contribution in #79
- @mrosep made their first contribution in #84
Full Changelog: 0.2.0...v0.3.0