Skip to content

Releases: scikit-hep/boost-histogram

Version 1.7.2

11 Apr 01:48
5f6f3e3

Choose a tag to compare

Features

Fixes

  • Correct repr for MultiCell by @henryiii in #1087
  • Fix serialization round-trip for 3D histograms with empty axes by @Copilot in #1094
  • Fix __setitem__ axis index mismatch when slices are not leading indices by @Copilot in #1097
  • Support 0D MeanView/WeightedMeanView by @Copilot in #1100
  • Broadcast scalar axis args to match array sample length in Mean/WeightedMean fill by @Copilot in #1101

Typing

Internal

Full Changelog: v1.7.1...v1.7.2

Version 1.7.1

02 Feb 17:59
1244e7b

Choose a tag to compare

This release solely contains typing changes and fixes; histograms now hold the storage type.

Typing

Full Changelog: v1.7.0...v1.7.1

Version 1.7.0

28 Jan 19:10
38c046b

Choose a tag to compare

This release adds a new MultiCell storage, allowing an predefined number of values to be histogrammed per bin. Python 3.10+ is now required, and free-threaded support only ships binaries for 3.14t.

Features

Bug fixes

  • Don't add empty metadata dicts by @henryiii in #1048
  • Avoid compiler warning: declaration of 'i' hides previous local declaration by @Superharz in #1068

Internal

New Contributors

Full Changelog: v1.6.1...v1.7.0

Version 1.6.1

13 Aug 15:14
9e541d3

Choose a tag to compare

This release fixes several issues with serialization as it's being prepared in Hist/uhi.

Features

  • Support __dict__ on histogram like axes #1041
  • Allow library to be specified in writer_info removal #1042

Bug fixes

  • Avoid mutating lists given in indexing #1047
  • Histogram metadata not being serialized correctly #1038
  • Unset classic metadata shouldn't show up in serialization #1039
  • Set dict correctly when unserializing #1040
  • Serialization was broken for N>1D complex storage histograms #1043

Full Changelog: v1.6.0...v1.6.1

Version 1.6.0

07 Aug 22:04
eed1b87

Choose a tag to compare

This release adds support for UHI serialization for use with the uhi library, supported in the next release of uhi. A new diagnostic test has been added in the wheel, so you can quickly check your compile of boost-histogram without the full test suite. Quite a few fixes are present, as well, including a fix for *=, setting a range with a scalar, setting with a callable in a slice. Backend changes include many new clang-tidy checks that reduce the number of copies and refcount changes. We now build with pybind11 3.0.

This release drops support for Python 3.8, and adds Python 3.14(t), iOS, Windows ARM, and GraalPy.

Features

Bug fixes

  • Support setting ranges with histograms (fixes *= too) #1036
  • Support a callable in range setting #1036
  • Support setting a range with a scalar #1000
  • Account for fuzzy edge values in rebinning with edges #999
  • Rename C++ metadata to raw_metadata #979
  • Address lots of clang-tidy suggestions, should be faster with less copies/refcount bumps #1009, #1010, #1011, #1012, #1013, #1014, #1015

CI and testing

  • Add CMake presets for testing and clang-tidy #1009

New Contributors

Full Changelog: v1.5.2...v1.6.0

Version 1.5.2

27 Mar 21:01
38ae735

Choose a tag to compare

Fix for axis metadata not passing though non-uniform rebinning correctly. Flow bins are now preserved when doing a non-uniform rebinning. Also adds the ability to rebin by edges or an existing axis.

This is expected to be the last release with Python 3.8 support. Manylinux support will likely be bumped from 2024 to 2_28 soon, as well.

Features

  • Support edges= and axis= in bh.rebin #977
  • Allow axis to be passed through bh.rebin #980, #982

Bug fixes

  • Axis metadata was broken when rebinning #978
  • Flow bins were lost when using variable rebinning #977
  • Scikit-build-core 0.11, with PEP 639 license metadata #986, #988
  • Prepare for an potential upcoming pybind11 3 change #994

CI and testing

  • Remove extras like [test] in favor of dependency-groups #973
  • Multithreaded test running #987

Full Changelog: v1.5.1...v1.5.2

Version 1.5.1

30 Jan 15:39
a30cc81

Choose a tag to compare

What's Changed

Fixes

  • Make non-uniform rebinning work for Weight() and friends by @Saransh-cpp in #972

CI and internal

Full Changelog: v1.5.0...v1.5.1

Version 1.5.0

24 Aug 03:10
d2ac027

Choose a tag to compare

Features

  • Support variable rebinning #913
  • Removed support for Python 3.7 #952
  • Added support for Python 3.13 and free-threaded Python 3.13t #950
  • Add GitHub artifact attestations to package distribution #933

Backend and docs

  • Move build to scikit-build-core #887
  • Clean up sdist files #928
  • Minor touchup to build backend, use scikit-build-core 0.10+ #948

CI and testing

  • Try cibuildwheel pyodide #935
  • Try to fix pyodide build #934
  • Update emscripten build #937
  • Bump to Pyodide 3.12 #938
  • Speed up pyodide job by a few seconds #941
  • Update jobs and noxfile #929
  • Use pylint 3.2 github formatter instead #932
  • Add some CI speedups #939
  • Faster cibuildwheel #942
  • Adapt to final release of NumPy 2.1.0 #951

Full Changelog: v1.4.1...v1.5.0

Version 1.4.1

30 Mar 07:01
c88b660

Choose a tag to compare

Features

  • NumPy 2 support. #918
  • 32-bit Windows Python 3.12 wheel added (matching NumPy). #920

Bugfixes

  • Support filling Integer axes with unsigned integers #917
  • Avoid triggering NumPy 2 dev release install on Python 3.12. #914

Backend and docs

  • Add missing API docs #909
  • Use boost 1.84 #920

New Contributors

Full Changelog: v1.4.0...v1.4.1

Version 1.4.0

11 Sep 22:05
9e316a0

Choose a tag to compare

This release supports Python 3.7-3.12. You can now turn off the flow bin on Int/Str Categories, and filling an integer-based axis requires an integer array - a floating point array is disallowed (a single float was always disallowed), due to issues with rounding around 0.

Features

  • overflow=False is now supported for IntCategory and StrCategory. #883

Changes

  • Using _storage_type now produces a DeprecationWarning instead of PendingDeprecationWarning. #801
  • Updated Boost to 1.82. The upper limit on Regular axes without overflow is now inclusive like NumPy. #802
  • Produce more detailed error messages on C++ errors #848

Bugfixes

  • Make filling an integer axis with a float array (also) an error. #876
  • Include -latomic on armv7l #823

Backend and docs

  • Add Python 3.12 support and binary wheels, also latest PyPy. manylinux2014+ required. #880, #878
  • Drop Python 3.6 support. #798
  • Drop pre-built wheels for 32-bit Linux (NumPy also dropped). #849
  • Add testing for WebAssembly (Pyodide). #850
  • Use Ruff #829

New Contributors

Full Changelog: v1.3.2...v1.4.0