Releases: scikit-hep/boost-histogram
Version 1.6.1
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
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
- Initial support for uhi's serialization #997, #1030, #1033, #1034, #1035
- Drop Python 3.8 #976
- Support Windows ARM #1001
- Support Python 3.14 and 3.14t #1018
- Support iOS #1020, #1027
- Added diagnostics test #1022
- Recommend/use
np.s_
for slicing in dicts #1002
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
- @riga made their first contribution in #999
- @pfackeldey made their first contribution in #1002
Full Changelog: v1.5.2...v1.6.0
Version 1.5.2
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
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
Full Changelog: v1.5.1...v1.5.2
Version 1.5.1
What's Changed
Fixes
- Make non-uniform rebinning work for
Weight()
and friends by @Saransh-cpp in #972
CI and internal
- Restore missing wheels by @henryiii in #959
- Fix misplaced inherit by @henryiii in #962
- Update cibw config by @henryiii in #969
- Use dependency-groups by @henryiii in #973
Full Changelog: v1.5.0...v1.5.1
Version 1.5.0
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
Features
Bugfixes
- Support filling Integer axes with unsigned integers #917
- Avoid triggering NumPy 2 dev release install on Python 3.12. #914
Backend and docs
New Contributors
- @Saransh-cpp made their first contribution in #909
- @veprbl made their first contribution in #917
Full Changelog: v1.4.0...v1.4.1
Version 1.4.0
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 forIntCategory
andStrCategory
. #883
Changes
- Using
_storage_type
now produces aDeprecationWarning
instead ofPendingDeprecationWarning
. #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
onarmv7l
#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
- @matthewfeickert made their first contribution in #823
Full Changelog: v1.3.2...v1.4.0
Version 1.3.2
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 matchnumpy.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
Version 1.3.1
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
forIntCategory
in 1.3.0. Addhist
nox session to check downstream (manually for the
moment). #710
Version 1.3.0
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