ManasviGoyal implemented a new LayoutBuilder in header-only C++ templates: PR 1494. Documented new GrowableBuffer and LayoutBuilder in doxygen: PR 1579.
ianna prepared ArrayBuilderOptions for the new LayoutBuilder: PR 1560. Fixed `tolayout` for Cling generators and Numba: PR 1613. Refactored `from_rdataframe` to use the new LayoutBuilder: PR 1620.
ioanaif fixed missing `axis_wrap_if_negative` in Record (v1 and v2): PR 1565. Prevented ufuncs from being used on records unless overridden: PR 1559. Added an `int64_t` definition on Windows: PR 1572. Fixed "longlong" type bug discovered in Uproot: PR 1567. Fixed lengths of empty regular slices: PR 1568. Fixed `maybe_toNumpyArray` for RegularArrays: PR 1589.
agoose77 protected ak.Array from unintended attribute assignment (when user wants to add a record field): PR 1573. Allowed empty RecordArrays in `ak.to_layout`: PR 1581. Switched from Azure to GitHub Actions (no more Azure!): PR 1550. Fixed `from_iter` performance: PR 1614.
jpivarski prevented mixed Awkward-like and NumPy-like slicing: PR 1598. Renamed `ak.to_pandas` → `ak.to_dataframe`: PR 1603. Ensured that `ak.concatenate` preserves regularness of list types: PR 1604 and 1609. Ensured that `ak.concatenate` of identical Forms preserves the Form (for Dask): PR 1605. Added a public API for `recursively_apply` and `broadcast_and_apply` (`ak._v2.transform`): PR 1610. Finished refactoring all of the `from_json*` functions into just one: PR 1617 and 1621.
henryiii enabled testing for Python 3.11: PR 1602.
In this release, we adopted a PR naming convention (Angular's, PR 1615) that should facilitate auto-generation of release notes, so this may be the last hand-written release note, organized by committer. From now on, I believe they'll be organized by type (new features, bug-fixes, CI changes, etc.).
Also, this is the last release with tag and release title formatted as just `f"{version}"`; starting with the next one, the tag name with be `f"v{version}"` and the release title will be `f"Version {version}"`.