Release history

Note: Releases in the 4.3.x series were developed in parallel with v5.0 on a separate branch and are not included here. See the list of 4.x releases for details.

Release v5.7.4

Thursday, 30 April, 2026 (pip, tar, zip)

## New features _(none!)_

## Bug-fixes and performance * fix: issues with freethreading and include Python 3.14t in CI by @ariostas in https://github.com/scikit-hep/uproot5/pull/1619 * fix: TProfile reading and writing logic by @ariostas in https://github.com/scikit-hep/uproot5/pull/1609 * fix: FreeSegments end calculation when crossing 2 GB boundary by @ariostas in https://github.com/scikit-hep/uproot5/pull/1622

## Other * chore(deps): bump mymindstorm/setup-emsdk from 14 to 15 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1613 * chore: update pre-commit hooks by @pre-commit-ci[bot] in https://github.com/scikit-hep/uproot5/pull/1614 * chore(ci): resolve issues with GPU CI by @ariostas in https://github.com/scikit-hep/uproot5/pull/1615 * ci: bump setup-uv to maintained tag scheme by @henryiii in https://github.com/scikit-hep/uproot5/pull/1616 * chore(deps): bump mymindstorm/setup-emsdk from 15 to 16 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1618 * chore(deps): bump astral-sh/setup-uv from 8.0.0 to 8.1.0 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1621 * chore(deps): bump scientific-python/upload-nightly-action from 0.6.3 to 0.6.4 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1623 * docs: update to reflect that RNTuple is the default writing format by @ariostas in https://github.com/scikit-hep/uproot5/pull/1624

Full Changelog: https://github.com/scikit-hep/uproot5/compare/v5.7.3…v5.7.4

  • PR #1624: docs: update to reflect that RNTuple is the default writing format.

  • PR #1622: fix: FreeSegments end calculation when crossing 2 GB boundary.

  • PR #1609: fix: TProfile reading and writing logic.

  • PR #1623: chore(deps): bump scientific-python/upload-nightly-action from 0.6.3 to 0.6.4 in the actions group.

  • PR #1619: fix: issues with freethreading and include Python 3.14t in CI.

  • PR #1621: chore(deps): bump astral-sh/setup-uv from 8.0.0 to 8.1.0 in the actions group.

  • PR #1618: chore(deps): bump mymindstorm/setup-emsdk from 15 to 16 in the actions group.

  • PR #1616: ci: bump setup-uv to maintained tag scheme.

  • PR #1615: chore(ci): resolve issues with GPU CI.

  • PR #1614: chore: update pre-commit hooks.

  • PR #1613: chore(deps): bump mymindstorm/setup-emsdk from 14 to 15 in the actions group.

  • PR #1610: feat: add awkward_form method for TMatrixTSym-v5 model.

  • PR #1606: fix: make step sizes of iterate more accurate.

  • PR #1605: fix: use Python ints for start/stop when reading a single basket.

  • PR #1604: fix: allow tuples and slightly more generic NumPy dtypes in mktree and mkrntuple.

  • PR #1601: fix: fix rare issue that causes corrupted free_num_bytes.

  • PR #1611: chore(deps): bump the actions group with 2 updates.

  • PR #1599: fix: resolve issue mktree/mkrntuple creating subdirectories.

  • PR #1600: ci: fix upload of test report.

  • PR #1607: docs: add nickwp as a contributor for code.

  • PR #1603: fix: bug in num_entries to properly use regularize_files.

  • PR #1602: fix: logical bug in boundary check for unique RField names.

  • PR #1591: fix: reading RNTuple fields into NumPy.

  • PR #1589: fix: make inherited fields accessible. (also: #1594)

  • PR #1590: chore: add codecov.

  • PR #1595: docs: RNTuple GPU reading.

  • PR #1593: fix: ensure RNTuple _from_zigzag applies bit shift on unsigned integers.

  • PR #1577: fix: allow mkrntuple to accept wider range of objects that can be reduced to RecordArray/RecordForm.

  • PR #1557: fix: GPU interpretation of RNTuple data working and implement nvCOMP decompression with nvCOMP library.

  • PR #1588: chore: update pre-commit hooks.

  • PR #1569: fix: resolve issues with pyroot buffer reallocation.

  • PR #1587: chore(deps): bump the actions group with 2 updates.

  • PR #1585: docs: add KaranSinghDev as a contributor for code.

  • PR #1573: fix: respect entry bounds for RNTuple.iterate and add of regressions tests for out of bounds.

  • PR #1579: refactor: Removes optional handling for required dependencies.

  • PR #1584: docs: add wdconinc as a contributor for code.

  • PR #1580: chore: support RNTuple v1.0.1.0 format (attribute set record frame)

  • PR #1583: chore: skip broken fsspec version.

  • PR #1562: docs: add AI-assisted contributions guidelines.

  • PR #1567: chore: update pre-commit hooks.

  • PR #1565: fix: make Library.__eq__ safe for invalid comparisons.

  • PR #1566: chore(deps): bump actions/attest-build-provenance from 3.1.0 to 3.2.0 in the actions group.

  • PR #1561: ci: added GPU CI.

  • PR #1560: fix: Defer default timeouts to underlying libraries where possible.

  • PR #1554: fix: exit early from uproot.iterate when no branches/fields match the filters.

  • PR #1556: chore: switch to writing RNTuples by default.

  • PR #1550: chore: drop support for Python 3.9.

  • PR #1555: docs: clarify max_num_elements option behavior.

  • PR #1553: docs: add Rachit931 as a contributor for doc.

  • PR #1552: docs: clarify decompression_executor and interpretation_executor usage.

Earlier releases

Uproot versions 1 through 3 were in a different GitHub repository: scikit-hep/uproot3.

This was to allow users to transition from Awkward Array 0.x and Uproot 3.x, which had different interfaces (especially Awkward Array). The transition completed on December 1, 2020.

https://raw.githubusercontent.com/scikit-hep/uproot5/main/docs-img/diagrams/uproot-awkward-timeline.png