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.

Unreleased (main branch on GitHub)

  • PR #1630: fix: implement report=True for RNTuple.iterate.

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

  • PR #1633: ci: pin micromamba version and bump Pyodide version.

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.

Release v5.7.3

Friday, 03 April, 2026 (pip, tar, zip)

## New features * feat: add awkward_form method for TMatrixTSym-v5 model by @mrzimu in https://github.com/scikit-hep/uproot5/pull/1610

## Bug-fixes and performance * fix: logical bug in boundary check for unique RField names by @mrzimu in https://github.com/scikit-hep/uproot5/pull/1602 * fix: bug in num_entries to properly use regularize_files by @nickwp in https://github.com/scikit-hep/uproot5/pull/1603 * fix: resolve issue mktree/mkrntuple creating subdirectories by @ariostas in https://github.com/scikit-hep/uproot5/pull/1599 * fix: fix rare issue that causes corrupted free_num_bytes by @ariostas in https://github.com/scikit-hep/uproot5/pull/1601 * fix: allow tuples and slightly more generic NumPy dtypes in mktree and mkrntuple by @ariostas in https://github.com/scikit-hep/uproot5/pull/1604 * fix: use Python ints for start/stop when reading a single basket by @ariostas in https://github.com/scikit-hep/uproot5/pull/1605 * fix: make step sizes of iterate more accurate by @ariostas in https://github.com/scikit-hep/uproot5/pull/1606

## Other * docs: add nickwp as a contributor for code by @allcontributors[bot] in https://github.com/scikit-hep/uproot5/pull/1607 * ci: fix upload of test report by @ariostas in https://github.com/scikit-hep/uproot5/pull/1600 * chore(deps): bump the actions group with 2 updates by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1611

## New Contributors * @nickwp made their first contribution in https://github.com/scikit-hep/uproot5/pull/1603

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

  • 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.

Release v5.7.2

Thursday, 12 March, 2026 (pip, tar, zip)

## New features _(none!)_

## Bug-fixes and performance * fix: make Library.__eq__ safe for invalid comparisons by @Rachit931 in https://github.com/scikit-hep/uproot5/pull/1565 * fix: respect entry bounds for RNTuple.iterate and add of regressions tests for out of bounds by @KaranSinghDev in https://github.com/scikit-hep/uproot5/pull/1573 * fix: resolve issues with pyroot buffer reallocation by @ariostas in https://github.com/scikit-hep/uproot5/pull/1569 * fix: GPU interpretation of RNTuple data working and implement nvCOMP decompression with nvCOMP library by @fstrug in https://github.com/scikit-hep/uproot5/pull/1557 * fix: allow mkrntuple to accept wider range of objects that can be reduced to RecordArray/RecordForm by @ariostas in https://github.com/scikit-hep/uproot5/pull/1577 * fix: ensure RNTuple _from_zigzag applies bit shift on unsigned integers by @wdconinc in https://github.com/scikit-hep/uproot5/pull/1593 * fix: make inherited fields accessible by @ariostas in https://github.com/scikit-hep/uproot5/pull/1589 * fix: reading RNTuple fields into NumPy by @ariostas in https://github.com/scikit-hep/uproot5/pull/1591 * refactor: Removes optional handling for required dependencies. by @Rachit931 in https://github.com/scikit-hep/uproot5/pull/1579

## Other * chore(deps): bump actions/attest-build-provenance from 3.1.0 to 3.2.0 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1566 * chore: update pre-commit hooks by @pre-commit-ci[bot] in https://github.com/scikit-hep/uproot5/pull/1567 * docs: add AI-assisted contributions guidelines by @ianna in https://github.com/scikit-hep/uproot5/pull/1562 * chore: skip broken fsspec version by @ariostas in https://github.com/scikit-hep/uproot5/pull/1583 * chore: support RNTuple v1.0.1.0 format (attribute set record frame) by @wdconinc in https://github.com/scikit-hep/uproot5/pull/1580 * chore(deps): bump the actions group with 2 updates by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1587 * chore: update pre-commit hooks by @pre-commit-ci[bot] in https://github.com/scikit-hep/uproot5/pull/1588 * chore: add codecov by @ariostas in https://github.com/scikit-hep/uproot5/pull/1590 * docs: add wdconinc as a contributor for code by @allcontributors[bot] in https://github.com/scikit-hep/uproot5/pull/1584 * docs: add KaranSinghDev as a contributor for code by @allcontributors[bot] in https://github.com/scikit-hep/uproot5/pull/1585 * docs: RNTuple GPU reading by @fstrug in https://github.com/scikit-hep/uproot5/pull/1595

## New Contributors * @wdconinc made their first contribution in https://github.com/scikit-hep/uproot5/pull/1580 * @KaranSinghDev made their first contribution in https://github.com/scikit-hep/uproot5/pull/1573

Full Changelog: https://github.com/scikit-hep/uproot5/compare/v5.7.1…v5.7.2

  • 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.

Release v5.7.1

Friday, 30 January, 2026 (pip, tar, zip)

## New features _None_

## Bug-fixes and performance * fix: Defer default timeouts to underlying libraries where possible by @chaen in https://github.com/scikit-hep/uproot5/pull/1560

## Other * ci: add GPU tests by @ariostas in https://github.com/scikit-hep/uproot5/pull/1561

## New Contributors * @chaen made their first contribution in https://github.com/scikit-hep/uproot5/pull/1560

Full Changelog: https://github.com/scikit-hep/uproot5/compare/v5.7.0…v5.7.1

  • PR #1561: ci: added GPU CI.

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

Release v5.7.0

Sunday, 25 January, 2026 (pip, tar, zip)

## New features * feat: set divisions to unknown if we expect a read error report in uproot.dask by @ikrommyd in https://github.com/scikit-hep/uproot5/pull/1543

## Bug-fixes and performance * fix: Remove spaces in class names when TBranch matching streamer by @mrzimu in https://github.com/scikit-hep/uproot5/pull/1542 * fix: allow start=stop=0 for empty files in uproot.dask by @ikrommyd in https://github.com/scikit-hep/uproot5/pull/1540 * fix: exit early from uproot.iterate when no branches/fields match the filters by @Rachit931 in https://github.com/scikit-hep/uproot5/pull/1554

## Other * chore(deps): bump the actions group with 2 updates by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1544 * chore: update pre-commit hooks by @pre-commit-ci[bot] in https://github.com/scikit-hep/uproot5/pull/1548 * chore: remove minio dependency by @ariostas in https://github.com/scikit-hep/uproot5/pull/1547 * chore: drop support for Python 3.9 by @ariostas in https://github.com/scikit-hep/uproot5/pull/1550 * chore: switch to writing RNTuples by default by @ariostas in https://github.com/scikit-hep/uproot5/pull/1556 * refactor: use better public API to clear divisions in uproot.dask by @ikrommyd in https://github.com/scikit-hep/uproot5/pull/1551 * docs: clarify decompression_executor and interpretation_executor usage by @Rachit931 in https://github.com/scikit-hep/uproot5/pull/1552 * docs: add Rachit931 as a contributor for doc by @allcontributors[bot] in https://github.com/scikit-hep/uproot5/pull/1553 * docs: clarify max_num_elements option behavior by @Rachit931 in https://github.com/scikit-hep/uproot5/pull/1555

## New Contributors * @Rachit931 made their first contribution in https://github.com/scikit-hep/uproot5/pull/1552

Full Changelog: https://github.com/scikit-hep/uproot5/compare/v5.6.9…v5.7.0

  • 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.

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