Skip to content

Releases: root-project/root

v6-40-00

20 May 03:52

Choose a tag to compare

This release represents a massive leap toward the future of ROOT 7. We’ve unlocked game-changing capabilities, including the ability to opt-out of automatic class registration, experimental access to high-performance, multithreading-optimized histograms, and a sleek, ergonomic new file interface (RFile) designed for modern workflows.

But we didn't stop there. We’ve streamlined the entire codebase for peak efficiency and addressed over 160 items in our trackers to ensure rock-solid stability and cutting-edge features (see the full list here). Dive into the full release notes and explore the highlights below!

🔓Opt-out of automatic class registration Break free from histograms and objects automatically attaching to the current (T)directory! Enable this game-changing capability invoking ROOT::Experimental::DisableObjectAutoRegistration(): unlock more control by exploring the documentation.

📊Histograms More features in the new histograms! Concurrent filling is now available, also to save memory in highly multithreaded applications. This feature is even integrated into RDataFrame: check out the tutorials!

🤖 Machine Learning The Data Loader has been reimagined as ROOT::Experimental::ML::RDataLoader! This powerful tool now performs cluster-aligned reads with a sophisticated shuffling strategy and supports multiple RDataFrames as input. Seamlessly output to NumPy, PyTorch, or TensorFlow, while leveraging new under- and oversampling support for dual-class eager loading.
I/O Experience a brand-new, streamlined HTTP I/O implementation powered by libcurl! This update delivers modern remote read capabilities, including advanced compression, secure transport, and S3 support, all across 🐧🍎🪟.

🔀 RNTuple Multiple threads can share a single reader efficiently thanks to the “active entry tokens” added to the RNTupleReader: very useful for data processing frameworks!

🌳 Ready to evolve beyond TTree::Draw? We’ve provided a comprehensive Rosetta Stone to help you seamlessly transition to RDataFrame! This is the perfect path for high-performance RNTuple support or scaling your workflows across multithreaded and distributed environments.

🚀 RDataFrame analysis By streamlining the memory ownership model and implementing a sophisticated sharing mechanism, RDataFrame now minimizes redundant just-in-time compilation across computation graphs. Experience faster setup times and a significant reduction in memory footprint within a single application!

📦 Builtins We’ve dramatically streamlined our codebase. The builtin package footprints have been slashed by a factor of 4x. This makes ROOT lighter and faster to build than ever, while pivoting toward a robust reliance on high-performance system packages.

v6-36-12

27 Apr 06:07

Choose a tag to compare

This release features a few fixes and minor documentation updates, most notably:

  • [#22015] - Non uniquess of the UUID inside TFile
  • [#21880] - [asimage] crash with DrawCircle

Release Candidate v6-40-00-rc1

23 Apr 06:35

Choose a tag to compare

Pre-release

First release candidate of the 6.40.00 release
🗒️ Release notes
💾 Install instructions

This release is an opportunity to try out the new functionalities of the 6.40.00 development release, currently scheduled for the end of May. The new ROOT comes with many new features (see the preliminary release notes) as well as improved stability: more than 130 items in the ROOT trackers have been addressed for this release.

v6-36-10

14 Mar 04:53

Choose a tag to compare

This release features a few minor fixes. The support for Apple XCode 26.4 was added

The following items were addressed:

  • #21541 - [RF] createChi2 ignores ranges provided by the Range() option
  • #21159 - [RF] Unexpected result with RooFFTConvPDF after ROOT 6.32
  • #16673 - [RF] Different behaviour of multi-range fit in RooAddPdf and RooProdPdf

v6-38-04

12 Mar 08:37

Choose a tag to compare

This is a patch release of the 6.38 series. See the full release notes [here](https://root.cern/doc/v638/release-notes.html#release-6.38.04.

This release can be obtained also as a package for the most popular Linux distributions, Brew and other channels: we thank ROOT packagers for their excellent work!
This release can be found also on conda-forge and CVMFS: /cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.38.04.

The following items were addressed:

  • #21541 - [RF] createChi2 ignores ranges provided by the Range() option
  • #21507 - [io] Relatively rare crash of ML Data Loader
  • #21484 - Last axis title is not set for THn and THnSparseD histograms, affects also HistoND and HistoNSparseD
  • #21379 - Missing numpy.uint8 pythonisation in SetBranchAddress in ROOT 6.38
  • #21378 - [Python] NumPy conversion fails for multidimensional arrays (incorrect itemsize in LowLevelView)
  • #21366 - TGraph2D::Build function may leave the newly created object in inconsistent non-initialised state
  • #19329 - h2root fragilities
  • #16673 - [RF] Different behaviour of multi-range fit in RooAddPdf and RooProdPdf

v6-38-02

25 Feb 09:36

Choose a tag to compare

Published on February 25, 2026

Besides the numerous fixes, forty of them, some of the work in preparation for ROOT 6.40 was backported to the 6.38 series. For example, the list of logical volumes gets now rehashed automatically, giving an important performance improvement for setups having a large number of those.

Items addressed in this release

  • #21244 - TPad Print() Title option issue
  • #21173 - TLegend header drawn in different position with jsroot and more than 1 column
  • #21165 - RDataFrame progress bar changes stream output precision
  • #21159 - [RF] Unexpected result with RooFFTConvPDF after ROOT 6.32
  • #21080 - Bad interference for TH1.Fit and EnableImplicitMT
  • #21070 - RedirectServers - Server not redirected
  • #21066 - [RF] Crash doing HistFactory Workspace combination
  • #21058 - ROOT interpreter crashes when using nlohmann::json
  • #20954 - [Minuit2] Analytical Hessian indexing mismatch
  • #20913 - MIGRAD can call G2 even if HasG2 is set to false
  • #20904 - [RF] RooWorkspace::data returns null pointer if the workspace contains 52 or more datasets
  • #20894 - ProfileLikelihood calculator defines wrongly the tolerance
  • #20872 - hadd crashes when already existing output file is used with remote file input paths
  • #20860 - Inconsistent information for histogram contours
  • #20858 - Make "LIST" draw option for contour plot work with "CONT1", "CONT2", and "CONT3" options
  • #20834 - c++20 related test filure on ix86 (32 bit intel)
  • #20831 - New test failure with gcc 16 (possibly c++20 related)
  • #20786 - thisroot.sh can set incorrect ROOTSYS
  • #20779 - [CMake] pyroot fails due to missing rpaths in cppyy (macOS, gnuinstall)
  • #20761 - Chi2Test: Report residuals also for higher dimensions
  • #20706 - Segmentation violation in the TTree::Merge method for root >= v6.36.00
  • #20703 - ROOT::Fit::FitResult fixed / bound parameter states not updated
  • #20674 - .rootlogon.C ignored when running TRootBrowser
  • #20665 - Analytical Hessian is not made positive-definite during minimizer seeding in Minuit2
  • #20650 - root 6.38.00 can load incompatible old libcppyy_backend.so
  • #20619 - fRC increased twice in TGDMLParse
  • #20602 - TGTextEntry spills text out of the text box on macOS but not on Ubuntu
  • #20586 - MVSC fails compiling Minuit2 with OpenMP enabled
  • #20511 - CMSSW DQM bin-by-bin comparison failed with ROOT 6.36
  • #20383 - [RF] Broken rf501_simultaneouspdf.py in dev3/nighlies
  • #20356 - Auxiliaries of volumes are not exportet in gdml
  • #20267 - TMVA.Experimental.SaveXGBoost and feature names
  • #18837 - [Python] Calling std::span::begin() broken with gcc15
  • #18718 - [RF] Regression in ranged fits with RooSimultaneous due to new likelihood evaluation
  • #18314 - [ntuple] Heuristically reduce memory usage of buffered writing
  • #17697 - pyroot can trigger clang assertion failure on enum with value too big to fit in int64_t
  • #16064 - [PyROOT] Type UInt64_t/unsigned long long can cause problems in template resolutions
  • #15872 - [PyROOT] The cppyy version inside ROOT doesn't support long long
  • #7167 - [TTreeProcessorMP] Warn if Process is called from a multi-thread program
  • ROOT-8842 - TTreeReaderFast crashes reading flat TTree

v6-32-22

12 Feb 10:07

Choose a tag to compare

The release notes for this release can be found here. Among the other minor fixes and improvements, this release addresses CVE-2026-24811 and CVE-2026-24812.

v6-30-10

12 Feb 09:55

Choose a tag to compare

The release notes for this release can be found here. Among the other minor fixes and improvements, this release addresses CVE-2026-24811 and CVE-2026-24812.

v6-28-14

12 Feb 10:07

Choose a tag to compare

The release notes for this release can be found here. Among the other minor fixes and improvements, this release addresses CVE-2026-24811 and CVE-2026-24812.

v6-26-18

12 Feb 10:07

Choose a tag to compare

The release notes for this release can be found here. Among the other minor fixes and improvements, this release addresses CVE-2026-24811 and CVE-2026-24812.