Releases: root-project/root
v6-38-00
First release of the 6.38 series.
🗒️ Release notes
💾 Install instructions
We are proud to announce the Development release ROOT 6.38.00 🏆
The focus for this release was on expanding usability from Python and interoperability with its ecosystem, data analysis and modernisation. However, there is much more than that: ease of installation, runtime performance, stability (>250 items in our trackers have been addressed). See the full release notes and highlights below!
📦 Distribution
- In alpha mode, you can install 6.38 releases with pip on Linux: pip install root 🚀
📈 RDataFrame.
- Ergonomics: You don’t need to write template arguments for Snapshot any more, i.e.
myDf.Snapshot<int, float>(... - You can snapshot systematic variations to TTree in experimental mode. See systematic variations for the details!
- Distributed RDataFrame: RNTuples are treated internally as TTrees. Without API changes, your processing of RNTuples will be even faster than before!
🐍 Python Interface
- In RDataFrame, you can pass to
DefineandFiltera set of Python functions wider than before. - An enhanced Unified Histogram Interface (UHI) implementation is now even more stable, thanks to a reinforced testing suite extending the UHI testing helper.
7️⃣ ROOT7
- New highly performant histograms are available for testing: see these examples!
- ROOT::Experimental::RFile, a minimal and modern interface to ROOT files, is there!
💾 RNTuple
- Clarity: you can support RNTuple with the classic browser, profiting from several visual improvements, including a new treemap visualization of field sizes.
- Parallelism: The parallel writer became part of the stable API. See it in action in this example.
- Performance: (vectors of) fixed-size arrays are now treated in bulk
- Usability: automatic schema evolution is now akin to the classic I/O behavior. You can read expert documentation in tree/ntuple/doc/SchemaEvolution.md.
🧑🏽💻 C++ Interpreter
- The LLVM powering Cling has been upgraded to version 20: more runtime performance and features thanks to the new compiler!
- You can use SYCL interactively if you build ROOT with -Dexperimental_adaptivecpp=ON
📊 RooFit
- With the RooMultiPdf, you can minimize floating categorical variables, e.g. for models with variables that toggle between different background shapes.
Please note that 6.38 is a short term support release. As such, it is not meant to be used for data taking. It will be superseded by the 6.40 release, which is foreseen in May 2026. Patch releases of 6.38 will be provided until June 2026.
v6-36-06
Patch of the v6.36 series.
🗒️ Release notes
💾 Install instructions
This release features a few minor fixes. It will also be compatible with the new Apple XCode 26.2.
The list of issues addressed for this release is the following:
- #20377 - Investigate I/O of std::unique_ptr on latest MacOS beta
- #20282 - [ntuple] use meta normalized name for streamer info records
- #20083 - [RF] Offset() option is ignored by the fitTo() function
- #19963 - Reading individual TTree sub-branch into a std::map lead to write into delete memory.
- #19889 - Mixing Clang 20 and ROOT causes very sporadic crashes
- #19814 - Regression in 6.34: segfault when using TTreeReader on partially initialized TChain
- #19327 - Build Fails on MacOS (ARM, 15)
- #18782 - Segfault in TTree::Branch with seemingly simple custom class
v6-32-20
Patch of the v6.32 series.
🗒️ Release notes
💾 Install instructions
This release features one bugfix (#20083 - TTreeIndex fails under Valgrind due to long double emulation). It will also be compatible with the new Apple XCode 26.2.
Release Candidate v6-38-00-rc1
First release candidate of the 6.38.00 release
🗒️ Release notes
💾 Install instructions
This release is an opportunity to try out the new functionalities of the 6.38.00 development release, currently scheduled by the end of November. The new ROOT comes with many new features (see the preliminary release notes) as well as improved stability: more than 240 items in the ROOT trackers have been addressed for this release.
Release v6-32-18
Patch of the v6.32 series.
🗒️ Release notes
💾 Install instructions
This release includes bugfixes for issues signalled by ATLAS and CMS as well as some reorganisation of the supported platforms.
- #19560 - TTreeIndex fails under Valgrind due to long double emulation
- #19889 - Mixing Clang 20 and ROOT causes very sporadic crashes
Platforms
MacOS26 was added and macOS13 removed from the battery of platforms used for the integration.
v6-36-04
Patch of the v6.36 series.
🗒️ Release notes
💾 Install instructions
This release provides a few bug fixes and is prepared to build and run on macOS 26 Tahoe and XCode 26.
The list of issues addressed for this release is the following:
- #19592 - No Constant Properties exported for Optical surfaces
- #19560 - TTreeIndex fails under Valgrind due to long double emulation
- #19497 - EL9:: EPEL:: root tags/6-36-02@6-36-02 :: cppyy warning in rootls
- #19476 -
std::string_viewadds characters to strings in Python - #19442 - [ntuple] Unable to read back RNTuples without normalized type names from v6.34
- #19438 - TH2D COLZ0 option color bug
- #19419 - [RF] FrequentistCalculator cannot handle non-parametric Pdfs
- #19412 - TASImage Issue with latest libafterimage
- #19366 -
THnSparse::CreateSparsecreates histograms that are not sparse - #19359 - Incorrect bin error with
TH1::SetBufferandTH1::Sumw2 - #19327 - Build Fails on MacOS (ARM, 15)
- #19267 - [cppyy] New crash when iterating over polymorphic std::vector
- #19134 - Installation issue for ROOT 6.36 RPATHs through Spack on MacOS
- #11651 - Syntax error leads to interpreter assert with
Must not nest within unloading transactionwhen reading object - #11460 - TF2 (with same name) construction can not be made thread safe without taking a lock
- #10522 - complex numbers in RDataFrame (PyROOT)
- #8899 - dataframe_concurrency LLVM valgrind error: SelectionDAG::Comb
6.32.16
This branch includes minor bugfixes as well as the changes necessary to build and run on macOS Tahoe and XCode 26.
v6.36.02
Patch of the v6.36 series.
🗒️ Release notes
💾 Install instructions
This release has been patched mainly to cope with a few reports filed mainly by the ALICE and ATLAS experiments.
The list of issues addressed for this release is the following:
- #19241 - THnBase::ProjectionAny does not calculate errors correctly
- #19113 - [Python][UHI] Incorrect number of entries reported in TH1 after slicing
- #19104 - RDataFrame Reads Garbage Data instead of File
- #19038 - [Python] TH1 equality operator pythonization not appropriate for ROOT histograms
- #18998 - Ninja failed to build ROOT 6.36 for AlmaLinux10/x86_64 with cyclic deps error
- #18974 -
ROOT/RSpan.hxxnot found error in standalone Minuit2 source package - #18972 - Segmentation fault while running interpreted macro
- #18955 - Change in behaviour in
TTreeReaderValueBase::GetSetupStatus() - #18953 - error opening ZIP archive member (>4GB archive)
- #18909 - Patch Version Format has three cyphers
- #18847 - [RF] Memory issue in destructor of RooStats::HypoTestInverterResult
- #18833 - segfault in TStreamerInfo::Compile with type involving std::function
- #18811 - assertion failure in clang::TemplateParameterList::getParam
- #18768 - Regression in i-adding array.array to std::vector in PyROOT
- #18665 - hadd: Error in header does not cause hadd failure
- #7470 - Dictionary generation fails for typedef to template specialization with default parameters
6.34.10
Last patch release of the 6.34 series, fully superseded by ROOT 6.36.00.
This patch release implements support for CMake 4, Alma 10. It features a mechanism to be robust against future module map changes in XCode.
The following items were addressed:
- #18953 - error opening ZIP archive member (>4GB archive)
- #18881 - Overlaps found with 6.32 no longer found in 6.34+
- #18863 - ThreadSanitizer reports data race between TTree::Branch and TCling::Evaluate
- #18811 - assertion failure in clang::TemplateParameterList::getParam
- #18792 - Thread problem in TEnum::GetEnum
- #18623 - DaviX errors from ROOT.File.Cp
- #18556 - Class methods not available to python in cases of transient data members of private nested class type
- #18536 - TClass::GetClass hoards memory when called for numerical types
- #18520 - Missing lock deep inside TClassEdit::ResolveTypedef
- #18519 - Concurrency issue with TClassEdit::ResolveTypedef and TClass::GetListOfMethods
- #18441 - import ROOT fails after a template instantiation is invoked from cppyy
- #18365 - SetBranchAddress does not work with np.int16 and uint16 in PyROOT
- #18312 - Problem with cmake 4.0.0
- #18301 - Performance issue seen by CMS for ROOT's use of tbb::task_arena
- #18236 - Missing lock deep inside TClassEdit::GetNormalizedName
- #18085 - Missing bool type in creating RDataFrame
6.32.14
Patch release of the 6.32 cycle. The following items were addressed:
- #18301 - Performance issue seen by CMS for ROOT's use of tbb::task_arena
- #18556 - Class methods not available to python in cases of transient data members of private nested class type
- #18236 - Missing lock deep inside TClassEdit::GetNormalizedName
- #18519 - Concurrency issue with TClassEdit::ResolveTypedef and TClass::GetListOfMethods
- #18520 - Missing lock deep inside TClassEdit::ResolveTypedef
- #18792 - Thread problem in TEnum::GetEnum
- #18863 - ThreadSanitizer reports data race between TTree::Branch and TCling::Evaluate
- #18312 - Problem with cmake 4.0.0
- #17566 - Issue with prebuilt binaries for MacOS 15.x