Skip to content

Releases: scikit-hep/boost-histogram

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

Version 1.2.1

05 Oct 03:45
5f89f92
Compare
Choose a tag to compare

User changes

  • musllinux wheels now provided along with manylinux #656

Bug fixes

  • Fixed single-element negative growth fill #654

Developer changes

  • No longer require Docker for clang-format, runs online too #610
  • Using pybind11 2.8.0 #658

Version 1.2.0

16 Sep 21:14
Compare
Choose a tag to compare

User changes

  • Python 3.10 officially supported, with wheels.
  • Support subtraction on histograms #636
  • Integer histograms are now signed #636

Bug fixes

  • Support custom setters on AxesTuple subclasses. #627
  • Faster picking if slices are not also used #645 or if they are #648 (1000x or more in some cases)
  • Throw an error when an AxesTuple setter is the wrong length (inspired by zip strict in Python 3.10) #627
  • Fix error thrown on comparison with axis and non-axis object #631
  • Static typing no longer thinks storage= is required #604

Developer changes

  • Support NumPy 1.21 for static type checking #625
  • Use newer Boost 1.77 and Boost.Histogram 1.77+1 #594
  • Provide nox support #647