Skip to content

Version 2.10.0

Latest

Choose a tag to compare

@TaiSakuma TaiSakuma released this 02 Jul 20:26

Highlights

  • Much faster list reductions (ak.sum, ak.max, …) — about 5× faster on average (geometric mean), 10×+ on long lists #4056
    • Kernels rewritten: CPU (awkward-cpp), GPU (cuda.compute)
    • Exact floating-point results may differ from the previous release
    • The same arrays may have different internal layouts than before
    • Removed the undocumented ak.index.EmptyIndex / ZeroIndex / LazyIndex
  • Many bug fixes and improvements from code review by Claude Fable 5 (PRs 4089–4108) #4085

What's Changed

New features

Bug-fixes and performance

  • fix: add missing .attrs support in parquet serialisation by @albert-physics in #4079
  • fix: test_pandas_attr_serialisation should have unique parquet path per thread by @ikrommyd in #4110
  • fix: passing a non-Collection iterable to pytest.parametrize is deprecated by @maxymnaumchyk in #4144
  • fix: datetime.time conversion and binary buffer copy in bindings by @henryiii in #4089
  • fix: properly error on conversion of IndexedOptionArray with an EmptyArray content and length > 0 to a ByteMaskedArray by @ikrommyd in #4127
  • fix: named-axis context sharing and ak.where broadcasting crash by @henryiii in #4108
  • fix: require pyarrow>=17.0.0 by @henryiii in #4152
  • fix: wrong results from string sort/unique kernels by @henryiii in #4091
  • fix: int64 precision loss in sort comparators and per-comparison branching by @henryiii in #4090
  • fix: LayoutBuilder Union form JSON and Record map-type support by @henryiii in #4094
  • fix: misc integration bugs (hist, avro, numexpr, RDataFrame) by @henryiii in #4096
  • fix: modify cache key for macOS deployment in workflow by @ianna in #4158
  • fix: reject non-integer float indices instead of truncating by @henryiii in #4097
  • fix: typetracer correctness issues affecting dask-awkward by @henryiii in #4100
  • fix: BitMaskedArray mask inversion and placeholder detection by @henryiii in #4092
  • fix: Arrow conversion without pandas, empty chunked arrays, and multi-file Parquet attrs by @henryiii in #4099
  • fix: BitMasked builder use-after-free and GrowableBuffer copy bugs by @henryiii in #4098

Other

  • ci: fix deploy job by @ariostas in #4082
  • chore: add an AGENTS file by @henryiii in #4086
  • chore: don't refuse to install awkward_cpp when using uv by @henryiii in #4087
  • chore(deps): bump the actions group with 3 updates by @dependabot[bot] in #4121
  • docs: add albert-physics as a contributor for code by @allcontributors[bot] in #4122
  • ci: automate release-note categorization with type labels by @TaiSakuma in #4125
  • docs: document kernel spec invariants and CPU/CUDA equivalence in AGENTS by @henryiii in #4088
  • ci: run property-based tests nightly with a large max_examples by @TaiSakuma in #4128
  • test: add a property-based kernel test with CPU and GPU backends by @TaiSakuma in #4142
  • ci: show Hypothesis statistics in the nightly property tests by @TaiSakuma in #4146
  • chore: modernize header-only code to C++17 and remove dead code by @henryiii in #4104
  • ci: run the GPU kernel property tests nightly at the nightly profile by @TaiSakuma in #4147
  • ci: enable pyodide build by @ryanking13 in #4149
  • ci: fix docs-preview PR comment failing without a checkout by @TaiSakuma in #4155
  • chore(deps): bump the actions group across 1 directory with 3 updates by @dependabot[bot] in #4153
  • docs: describe the returned object in Returns: for already-merged operations by @TaiSakuma in #4148
  • chore(deps): update python version for mypy by @maxymnaumchyk in #4172

New Contributors

Full Changelog: v2.9.1...v2.10.0