Skip to content

Releases: scikit-hep/boost-histogram

Version 1.6.1

13 Aug 15:14
9e541d3
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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

Version 1.3.2

19 Sep 21:02
0c8659c
Compare
Choose a tag to compare

1.3 is the final release series supporting Python 3.6 and manylinux1 - manylinux2010. The next release will move to non EoL Python and manylinux images only.

Changes

  • Added storage_type() as public API #781, with pending deprecation for _storage_type. #786 #790
  • Better errors generated for missing or incorrect sample to mean storage. #782
  • Better error message when views are set with an incompatible array. #794

Bug fixes

  • Patch broken sum with fully empty (0 bin) axis. #718
  • Fix zero range bh.numpy.histogram to match numpy.histogram behavior. #721
  • Avoid triggering __init__ when copying (better support for subclasses with custom init's). #759
  • IntCategory now supports numbers larger than 224 (now 253). #792
  • Pick a subset now supported inside a larger expression. #793

Backend and docs

  • Minor optimizations for UFuncs. #771
  • Added Python 3.11 wheels. #789
  • Include PyPy 3.9 binary wheels. #730
  • Using pybind11 2.10 #767
  • Explicit reset() documentation. #783
  • Minor cleanup and further removal of a little Python 2 back-compat code.
  • Warnings have better stacklevel settings.

Version 1.3.1

16 Feb 14:34
Compare
Choose a tag to compare

Bug fixes

  • Fixed regression with invalid .project input causing segfaults. #708
  • Minor skips for specific tests on ppc64le, primarily for a NumPy bug. #707
  • Avoid using EH for program control, better on Pyodide. #709
  • Fix regression with exact float not being accepted for .index for IntCategory
    in 1.3.0. Add hist nox session to check downstream (manually for the
    moment). #710

Version 1.3.0

16 Feb 17:12
aad615e
Compare
Choose a tag to compare

User changes

  • PyPy 3.8 now supported with binary wheels. #677
  • The GIL is released a little more often now. #662
  • AxesTuple does not allow construction of non-axes. #680
  • KeyError is now thrown when accessing a non-existent item in a Category Axis #689
  • WeightedViews now support np.cumsum #699

Bug fixes

  • Fixed WeightedMean storages producing NaN for .variances() #695
  • Modify local include slightly to enable WebAssembly compilation in Pyodide #702

Developer changes

  • Use PyLint in CI to check for some style issues #690
  • Developer (CMake) installs no longer require toml #698