← Back to all sparks
R

ROOT

ANALYTICS
Velocity0.0

Data analysis framework for large scale scientific data processing

ROOT is shipping the pieces of its long-promised v7 inside the v6 release line

hep-analysisrntuplerdataframelts-branchesmultithreadingcern
Current state
ROOT maintains an unusual number of parallel branches — patches for 6.26, 6.28, 6.30, 6.32, 6.36 and 6.38 all landed within weeks of each other in June 2026 — because CERN experiments pin to versions for years at a time. The 6.40 LTS released in May is where the actual work is: an opt-out from automatic object registration, experimental multithreaded histograms, a new RFile interface, an libcurl-based HTTP I/O layer with S3 support, and a rebuilt ML data loader. June's patch wave is the routine consequence, closing out the 6.26 and 6.38 series while fixing the first regressions in 6.40.
Where it's heading
The ROOT 7 redesign is arriving piecemeal under ROOT::Experimental rather than as a version bump: RNTuple replacing TTree, RDataFrame replacing TTree::Draw, RFile replacing TFile, and now the ability to switch off the global-directory ownership model that has defined ROOT's ergonomics for decades. The team is easing migration with documentation rather than deprecation — 6.40 ships a TTree::Draw-to-RDataFrame translation guide instead of a removal notice. Build weight is being cut in the same pass, with bundled builtin packages reduced roughly fourfold in favour of system libraries.
Prediction
Expect further 6.40.x patches through the year as experiments migrate onto the LTS, concentrated in RNTuple and the new histogram paths where the code is youngest. The experimental namespace is the thing to watch: features that stabilize there are the clearest available signal of what a ROOT 7 would actually contain.

Recent moves

  1. 1mo ago

    ROOT 6.32.24 patches the 6.32 maintenance branch

    One of three same-morning patches across old branches, carrying only a pointer to its release notes. Keeping 6.32 alive alongside five other series is the cost of supporting experiments that pin versions for years.

    View source ↗
  2. 1mo ago

    ROOT 6.30.12 patches the 6.30 maintenance branch

    Published three minutes after the 6.32 patch with an identical one-line body. The batch is release engineering rather than product news.

    View source ↗
  3. 1mo ago

    ROOT 6.28.16 patches the 6.28 maintenance branch

    The third of the June 18 branch patches, again with no enumerated changes. Notable only as evidence of how far back ROOT still carries fixes.

    View source ↗
  4. 1mo ago

    ROOT 6.38.06 closes the 6.38 series, adds Python 3.15 support

    The final patch of the 6.38 short-term series, explicitly handing users to 6.40 LTS. Beyond Python 3.15 compatibility it fixes a TFile::Open memory leak in UPDATE mode, non-unique UUIDs inside TFile, and an RDataFrame interaction between DefinePerSample and varied actions — the sort of correctness issues that matter to anyone with a series to retire.

    View source ↗
  5. 2mo ago

    ROOT 6.40.02 fixes RNTuple model extension and SOFIE padding

    The first patch on the new LTS, and its contents show where the fresh code is: late model extension of untyped RNTuple records, TMVA SOFIE generating wrong code for asymmetric pooling padding, and a TBox freed before write. Expected shakeout for a release that reworked I/O and histograms at once.

    View source ↗
  6. 2mo ago

    ROOT 6.26.20 is the final patch for the 6.26 series

    End of support for a series that had been running for years, retired on schedule per ROOT's published support plan. No changes are enumerated beyond the pointer to release notes.

    View source ↗