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.7
Tuesday, 06 October, 2026 (pip, tar, zip)
<!– Release notes generated using configuration in .github/release.yml at db953cf9827349b3d24eb6742404158c1dfd5481 –>
## What’s Changed ### New features * feat: Add in-place TTree branch addition and row extension by @Yokubas in https://github.com/scikit-hep/uproot5/pull/1690 * feat: Add RNTuple row extension and field addition via update mode by @Yokubas in https://github.com/scikit-hep/uproot5/pull/1687 * feat: add hooks for working with graphed-org/graphed by @lgray in https://github.com/scikit-hep/uproot5/pull/1720 * feat: basket-aligned partitioning for the graphed integration by @lgray in https://github.com/scikit-hep/uproot5/pull/1727 * feat(docs): add llms.txt and Markdown page versions by @henryiii in https://github.com/scikit-hep/uproot5/pull/1719 ### Bug-fixes and performance * perf: project every graphed output’s buffers in one form replay by @lgray in https://github.com/scikit-hep/uproot5/pull/1726 * fix: keep the object cache in the graphed TTree source by @lgray in https://github.com/scikit-hep/uproot5/pull/1731 * fix: keep TTree branch lookup indices valid when a generated counter collides by @ariostas in https://github.com/scikit-hep/uproot5/pull/1698 * fix: Pandas global indices for how=dict and RNTuple entry ranges by @ariostas in https://github.com/scikit-hep/uproot5/pull/1696 * fix: executor shutdown race, dropped kwargs, chunk revalidation, unknown-class cache by @ariostas in https://github.com/scikit-hep/uproot5/pull/1699 * perf: batch sink flushes and cache cluster group records when extending RNTuples by @ariostas in https://github.com/scikit-hep/uproot5/pull/1700 * fix: keep std::array dimensions when reading RNTuple subfields directly by @ariostas in https://github.com/scikit-hep/uproot5/pull/1738 * fix: include all subfields of a selected RNTuple field by @ariostas in https://github.com/scikit-hep/uproot5/pull/1739 * fix: make uproot.recreate physically truncate an existing file by @ariostas in https://github.com/scikit-hep/uproot5/pull/1697 ### Other * chore(deps): bump astral-sh/setup-uv from 9.0.0 to 10.0.0 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1710 * docs: clarify max_num_elements behavior by @sapunyangkut in https://github.com/scikit-hep/uproot5/pull/1682 * docs: add sapunyangkut as a contributor for doc by @allcontributors[bot] in https://github.com/scikit-hep/uproot5/pull/1711 * chore(deps): bump astral-sh/setup-uv from 10.0.0 to 10.0.1 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1712 * chore(deps): bump re-actors/alls-green from 1.2.2 to 1.3.0 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1716 * docs: remove Gitter badge and references by @ariostas in https://github.com/scikit-hep/uproot5/pull/1715 * chore(deps): bump the actions group with 2 updates by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1722 * chore: update pre-commit hooks by @pre-commit-ci[bot] in https://github.com/scikit-hep/uproot5/pull/1717 * chore(deps): bump codecov/codecov-action from 7.0.0 to 7.1.1 in the actions group by @dependabot[bot] in https://github.com/scikit-hep/uproot5/pull/1728 * ci: install numba-cuda-mlir for the GPU tests by @ariostas in https://github.com/scikit-hep/uproot5/pull/1732 * ci: install numba-cuda for the GPU tests by @ariostas in https://github.com/scikit-hep/uproot5/pull/1733 * ci: remove redundant jobs and run the tests in parallel by @ariostas in https://github.com/scikit-hep/uproot5/pull/1735
## New Contributors * @Yokubas made their first contribution in https://github.com/scikit-hep/uproot5/pull/1690
Full Changelog: https://github.com/scikit-hep/uproot5/compare/v5.7.6…v5.7.7
PR #1697: fix: make uproot.recreate physically truncate an existing file. (also: #1016, #1034)
PR #1739: fix: include all subfields of a selected RNTuple field. (also: #1736)
PR #1738: fix: keep std::array dimensions when reading RNTuple subfields directly. (also: #1737)
PR #1719: feat(docs): add llms.txt and Markdown page versions.
PR #1700: perf: batch sink flushes and cache cluster group records when extending RNTuples.
PR #1699: fix: executor shutdown race, dropped kwargs, chunk revalidation, unknown-class cache.
PR #1696: fix: Pandas global indices for how=dict and RNTuple entry ranges.
PR #1735: ci: remove redundant jobs and run the tests in parallel.
PR #1733: ci: install numba-cuda for the GPU tests.
PR #1698: fix: keep TTree branch lookup indices valid when a generated counter collides.
PR #1732: ci: install numba-cuda-mlir for the GPU tests.
PR #1731: fix: keep the object cache in the graphed TTree source.
PR #1726: perf: project every graphed output’s buffers in one form replay.
PR #1727: feat: basket-aligned partitioning for the graphed integration.
PR #1728: chore(deps): bump codecov/codecov-action from 7.0.0 to 7.1.1 in the actions group.
PR #1717: chore: update pre-commit hooks.
PR #1720: feat: add hooks for working with graphed-org/graphed.
PR #1722: chore(deps): bump the actions group with 2 updates.
PR #1715: docs: remove Gitter badge and references.
PR #1687: feat: Add RNTuple row extension and field addition via update mode.
PR #1716: chore(deps): bump re-actors/alls-green from 1.2.2 to 1.3.0 in the actions group.
PR #1690: feat: Add in-place TTree branch addition and row extension.
PR #1712: chore(deps): bump astral-sh/setup-uv from 10.0.0 to 10.0.1 in the actions group.
PR #1711: docs: add sapunyangkut as a contributor for doc.
PR #1682: docs: clarify max_num_elements behavior.
PR #1710: chore(deps): bump astral-sh/setup-uv from 9.0.0 to 10.0.0 in the actions group.
PR #1708: docs: add tomeichlersmith as a contributor for doc.
PR #1702: docs: add descriptions of reading and writing options.
PR #1707: ci: unbreak the GPU and Pyodide jobs.
PR #1704: ci: automate release-note categorization with type labels. (also: scikit-hep/awkward#4125)
PR #1703: chore(deps): bump the actions group with 2 updates.
PR #1695: test: serve S3 tests from a local moto server. (also: #1693, #1693)
PR #1689: fix: uproot.update should accept other valid UUID versions.
PR #1701: chore(deps): bump the actions group with 3 updates.
PR #1694: chore: update pre-commit hooks.
PR #1691: fix: intermitten issue with fsspec on free-threaded Python.
PR #1692: chore(deps): bump the actions group with 4 updates.
PR #1660: fix: interpretation-layer bugs (pandas NaN fallback, typename parsing, strided objects, bitset) (also: #1646)
PR #1659: fix: core model/streamer/deserialization bugs and hot-path performance.
PR #1656: fix: entry-range arithmetic in iterate/concatenate and basket selection.
PR #1657: fix: TTree-writing bugs (sliced string arrays, nested recarrays, fLen, TGraph y-range, oversized compression blocks)
PR #1654: fix: source/sink error paths, leaks, and hot-path cleanups. (also: #1646)
PR #1683: docs: document Awkward how=zip grouping.
PR #1655: fix: model member-name and AwkwardForth-API bugs in TTree v18, TTime, TAtt. (also: #1647)
PR #1653: fix: HTTP source multipart batching, fallback leak, and close behavior. (also: #1646)
PR #1661: fix: utility-layer bugs (steps leakage, dask error paths, LRU cache) and Py2-era cleanup. (also: #1646, #1660, #1646)
PR #1652: fix: RNTuple page deserialization copies, split-column sizing, and cluster-index pairing. (also: #1646, #1646)
PR #1658: fix: RNTuple/TBranch behavior edge cases (KeyInFileError, global iterate offsets, ak_add_doc forwarding) (also: #1646)
PR #1651: fix: TProfile2D/3D weighted and counts() were broken for N-D profiles. (also: #1646)
PR #1650: fix: RNTuple footer leak on extend, broken WritableNTuple.compression, directory __delitem__ KeyError.
Earlier releases
Uproot versions 1 through 3 were in a different GitHub repository: scikit-hep/uproot3.
PyPI full history (including versions 1 through 3).
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.