Skip to content

chore(main): release 0.15.0#100

Merged
denehoffman merged 4 commits intomainfrom
release-please--branches--main
Feb 11, 2026
Merged

chore(main): release 0.15.0#100
denehoffman merged 4 commits intomainfrom
release-please--branches--main

Conversation

@denehoffman
Copy link
Owner

🤖 I have created a release beep boop

0.15.0 (2026-02-10)

⚠ BREAKING CHANGES

  • change Variable trait methods to operate on &Dataset rather than &Arc<Dataset>

Features

  • Add 'threads' argument to pretty much everything in Python API (ed5502a)
  • Add __radd__ implementations wherever __add__ is implemented (150c068)
  • Add __sub__, __rsub__, and __neg__ implementations to Python Vector3 and Vector4 (59367c0)
  • Add BinnedGuideTerm under new experimental module (8d0c626)
  • Add conj operator to Amplitudes and Expressions (62dfe28)
  • Add Dataset::weighted_bootstrap (9f638fb)
  • Add Debug and Display to every Variable (and require them for new ones) (ab8ec68)
  • Add evaluate(Variable) method to Dataset and Event (764bd7f)
  • Add NLL::project_with to do projecting and isolation in one step (38a495c)
  • Add PhaseSpaceFactor amplitude (a439b99)
  • Add PiecewiseScalar, PiecewiseComplexScalar, and PiecewisePolarComplexScalar amplitudes (dd1f657)
  • Add PolPhase amplitude (07ebd06)
  • Add project_gradient and project_gradient_with methods to NLL (98327dd)
  • Add available_parallelism function to python API (b06d620)
  • Add basic implementation to read directly from ROOT files (0e3a4a6)
  • Add evaluate_gradient functions where evaluate is available in python API (092fc1f)
  • Add experimental Regularizer likelihood term (de4ae47)
  • Add gamma factor calculation to 4-momentum (1975fee)
  • Add gradient evaluation to NLL and LikelihoodExpression in Python API (3c45181)
  • Add intermediate Model and serialization updates (561753b)
  • Add MCMC samplers from ganesh to laddu (5cb213a)
  • Add method for boosting an event or a dataset to a given rest frame (1efab27)
  • Add method for opening a dataset boosted to the rest frame of the given p4 indices (2d10626)
  • Add methods to serialize/deserialize fit results (ffd1b03)
  • Add no-op implementations for adding 0 to add-able types (a8f6323)
  • Add perf commands to justfile (3c27f69)
  • Add python versions of Point, Particle, SwarmObserver, and Swarm from ganesh (59a84eb)
  • Add PyVariable to simplify python functions which need to take generic Variables (348deb2)
  • Add subtraction, division, and negation operations for all Amplitudes and Expressions (c9b3b3f)
  • Add Swarm methods to Python API and update other algorithm initialization methods (ddc6813)
  • Add the ability to name likelihood terms and convenience methods for null and unit likelihood terms, sums, and products (c5352d7)
  • Add unit-valued Expression and define convenience methods for summing and multiplying lists of Amplitudes (c1297eb)
  • Add VariableExpressions to handle Dataset filtering (3f01968)
  • Add vector indexing and Event.get_p4_sum to python API (8b97865)
  • Allow for the use of sum(list[Dataset]) in Python code (631fe49)
  • Allow users to add Datasets together to form a new Dataset (ef6f80e)
  • amplitudes: Add From impl for AmplitudeID to Expression conversion (a0cd045)
  • bench: Updated benchmark to run over available parallelism (0b62180)
  • Bump ganesh to add "skip_hessian" minimization option to skip calculation of Hessian matrix (fd1eea8)
  • Bump MSRV (for bincode) and bump all dependency versions (5c7aab8)
  • Bump versions on ganesh, pyo3, and (rust) numpy and make appropriate updates for each (3f2d67a)
  • Change MSRV to 1.84.0 and resolver to 3 (31e9172)
  • Change swarm repr if the swarm is uninitialized to not confuse people (aaaf144)
  • Change the way NLLs are constructed to allow the user to specify a generated dataset (7755ff6)
  • Change the way NLLs are constructed to allow the user to specify a generated dataset (a210106)
  • Create example_2, a moment analysis (7dd7c01)
  • data: Create test_dataset method for testing purposes as well as add Default impl to Event (1aff54c)
  • data: Make Event::get_p4_sum generic over its argument (4f93af6)
  • Display the AmplitudeID's name and ID together (d1a0f1c)
  • enums: Add Channel enum (417eb99)
  • enums: Add equality comparison to enums and convert to lowercase before string conversion (de3b205)
  • enums: Add serde to enums (5ab8b13)
  • First pass implementation of MPI interface (16d8391)
  • Implement custom gradient for BinnedGuideTerm (0945647)
  • Improve error handling by getting rid of unwraps wherever possible (7968904)
  • Improvements to Dataset conversions and opening methods (1264ef2)
  • Make mpi a feature in py-laddu to allow people to build the python package without it (ae23bb2)
  • Move binning functions to utils (f7fe352)
  • Redefine eps->aux in Event definition (45df457)
  • Restructure the minimizer/mcmc methods to no longer take kwargs (c88feea)
  • Separate parameter logic into a new struct and unify fixing/freeing/renaming (834a4e7)
  • Split laddu python package into two, with and without MPI support (e488b46)
  • Switch API for acceptance correction to not process genmc till projection (1d404a5)
  • Switch the MPI implementation to use safe Rust via a RwLock (58ecc24)
  • Unify binning functions and add (f914e58)
  • Update ganesh version and add Global move to ESS (a5bcf4c)
  • Update ganesh, numpy, and pyo3 (ebf42ad)
  • Update MPI code to use root-node-agnostic methods (109846e)
  • Update type hints with ropts and add magic methods to easily pickle Status (e4bd21b)
  • Use absolute value of mass and width in Breit-Wigner amplitude (1d07b92)
  • variables: Add Mandelstam variables (29f0b19)

Bug Fixes

  • Add a few more missed pyclasses to the py-laddu exports (d143fb8)
  • Add better feature guards so all features can technically be used independently (ff4205d)
  • Add fallback overloads to several amplitudes (3559264)
  • Add feature flag to laddu-python and update MSRV for mpisys compatibility (5c0fb32)
  • Add feature flag to benchmark to allow it to be run with "f32" feature (13ae5f3)
  • Add more precision to covariance matrices to ensure positive definiteness (49e43ae)
  • Add mpi feature for laddu-python to py-laddu (02dc5ed)
  • Add non-MPI failing functions for MPI calls on non-MPI python builds (6be7e24)
  • Add python feature gate to likelihood-related methods (5719813)
  • Add sentry dependency for which to force the version, not sure what the best fix really is, but this should work for now (36e938a)
  • Add type hints to __doc__ and __version__ (0c9ffe2)
  • Calling get_world before use_mpi causes errors (54df1af)
  • Change LikelihoodTerm naming to happen at registration time (ca3516d)
  • Change NLL to always use len(accmc) for n_mc (4a9dc38)
  • Change unwrap to print error and panic (c2dfa88)
  • Convert range to list (63cc88b)
  • Correct arguments to fix open_amptools method (8c1b4d8)
  • Correct for out-of-bounds errors in MPI bootstrap (ab173b1)
  • Correct gradients of zero and one by adding the number of parameters into GradientValues (d37346e)
  • Correct justfile path (6feea91)
  • Correct parallelism to allow for proper codspeed benchmarking (27a61a1)
  • Correct python method to get energy from 4-vector (fc3be63)
  • Correct some issues with conversion scripts (e7a1099)
  • Correct the open method and counts/displs methods (d4b3ff5)
  • Correct typo AIES->AEIS in python type checking files (88dfbc5)
  • Corrected signature in methods that read from AmpTools trees (d751c37)
  • Corrected signature in methods that read from AmpTools trees (b93ae60)
  • Corrected typo where the VerboseMCMCObserver implemented SwarmObserver<()> rather than the VerboseSwarmObserver (4751377)
  • Ensure LikelihoodEvaluators report parameter names in fit/mcmc summaries (b90b230)
  • enums: Gottfried-Jackson string conversions were accidentally being redirected to Helicity (d57f078)
  • Fixed python examples and readme paths (56f35a4)
  • Forgot to bump all versions (1284f2e)
  • Forgot to export MCMC moves (da899fd)
  • Forgot to remove the error types for data reading (a0b7ea9)
  • Forgot to switch one coverage attribute to nightly (100c0b1)
  • Forgot to update the laddu-python use_mpi function to have a trigger arg (1a10c3d)
  • Get rid of unused variable warning (bd26682)
  • Improve summation and product methods to only return a Zero or One if the list is empty (54afa62)
  • Major bug/typo in boost method and tests to check for it (efa1a24)
  • Make some small corrections to the python example_1 and test out the built-in autocorrelation observer (5e31018)
  • Make sure code works if no pol angle/magnitude are provided (9bd054c)
  • Minor fixes for building without rayon/pyo3 (9a8f23a)
  • Minor modification to allow for MSRV of 1.70 (ac553cd)
  • Missed a changed path in some ganesh code hidden behind a feature gate (2816e41)
  • Missed AEISMove->AIESMove and condensed the lib.rs file for py-laddu (a6e9afc)
  • Modify tests and workflows to new structure (33f456c)
  • More fixes for newest ganesh version (4d493e3)
  • Move rayon feature bounds inside methods to clean up the code and avoid duplication (ff7c47e)
  • Move some imports under the python feature flag (3970a67)
  • Remove from the rayon-free calls for and (5bf105e)
  • Remove on trait (45a7292)
  • Remove PyResult on methods which no longer produce errors (f453907)
  • Remove loguru and pandas dependencies and add pyarrow dependency (8048674)
  • Remove requirement that pickled files end in ".pickle" or ".pkl" (65b5513)
  • Reorganize package structure (6020e1d)
  • Replace f64 with Float in generate_bin_edges (26bd863)
  • Revert MSRV to 1.70.0 (ef57f9d)
  • Sync all versions with a single release (fc7569a)
  • Sync versions across crates/libraries (65967cf)
  • The last commit fixed the typo the wrong way, it is AIES (bc193d6)
  • Unwrap call_method so that it reports the stack trace if the method fails (e673c5c)
  • Update CI to properly upload artifacts (58a75ca)
  • Update coverage to reflect new layout (dc0378c)
  • Update GradientValues in non-default feature branches (0bd9560)
  • Update GradientValues in non-default feature branches (missed one) (023dffc)
  • Update Python vector names (closes #57) (d0f8ee0)
  • Use correct enum in L-BFGS-B error method (2ae0d45)
  • Use proper ownership in setting algorithm error mode (001505a)
  • Use proper path in laddu-mpi entrypoint (8919d64)

Reverts

  • Remove weighted_bootstrap (891926f)

Code Refactoring

  • Change Variable trait methods to operate on &Dataset rather than &Arc<Dataset> (e6b2842)

This PR was generated with Release Please. See documentation.

…enehoffman/laddu into release-please--branches--main

# Conflicts:
#	.release-please-manifest.json
#	crates/laddu/Cargo.toml
#	py-laddu-cpu/Cargo.toml
#	py-laddu-mpi/Cargo.toml
#	py-laddu/pyproject.toml
@codspeed-hq
Copy link

codspeed-hq bot commented Feb 10, 2026

Merging this PR will not alter performance

✅ 4 untouched benchmarks


Comparing release-please--branches--main (7dd2d26) with main (fc7569a)

Open in CodSpeed

@denehoffman denehoffman merged commit e292df5 into main Feb 11, 2026
14 checks passed
@denehoffman
Copy link
Owner Author

🤖 Created releases:

🌻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Naming convention between Rust and Python is not consistent for Vec3/Vector3 and Vec4/Vector4

1 participant

Comments