diff --git a/_includes/build_options_v6-36-00-patches.md b/_includes/build_options_v6-36-00-patches.md new file mode 100644 index 00000000..d8dd15f4 --- /dev/null +++ b/_includes/build_options_v6-36-00-patches.md @@ -0,0 +1,120 @@ +| Build option | Effect | Default | +|--------------|--------|---------| +| `arrow` | Enable support for Apache Arrow | OFF | +| `asimage` | Enable support for image processing via libAfterImage | ON | +| `asserts` | Enable asserts (defaults to ON for CMAKE_BUILD_TYPE=Debug and/or dev=ON) | OFF | +| `builtin_afterimage` | Build bundled copy of libAfterImage | OFF | +| `builtin_cfitsio` | Build CFITSIO internally (requires network) | OFF | +| `builtin_clang` | Build bundled copy of Clang | ON | +| `builtin_cling` | Build bundled copy of Cling. Only build with an external cling if you know what you are doing: associating ROOT commits with cling commits is tricky. | ON | +| `builtin_cppzmq` | Use ZeroMQ C++ bindings installed by ROOT (requires network) | OFF | +| `builtin_davix` | Build Davix internally (requires network) | OFF | +| `builtin_fftw3` | Build FFTW3 internally (requires network) | OFF | +| `builtin_freetype` | Build bundled copy of freetype | OFF | +| `builtin_ftgl` | Build bundled copy of FTGL | OFF | +| `builtin_gl2ps` | Build bundled copy of gl2ps | OFF | +| `builtin_glew` | Build bundled copy of GLEW | OFF | +| `builtin_gsl` | Build GSL internally (requires network) | OFF | +| `builtin_gtest` | Build googletest internally (requires network) | OFF | +| `builtin_llvm` | Build bundled copy of LLVM | ON | +| `builtin_lz4` | Build bundled copy of lz4 | OFF | +| `builtin_lzma` | Build bundled copy of lzma | OFF | +| `builtin_nlohmannjson` | Use nlohmann/json.hpp file distributed with ROOT | OFF | +| `builtin_openssl` | Build OpenSSL internally (requires network) | OFF | +| `builtin_openui5` | Use openui5 bundle distributed with ROOT | ON | +| `builtin_pcre` | Build bundled copy of PCRE | OFF | +| `builtin_tbb` | Build TBB internally (requires network) | OFF | +| `builtin_unuran` | Build bundled copy of unuran | OFF | +| `builtin_vc` | Build Vc internally (requires network) | OFF | +| `builtin_vdt` | Build VDT internally (requires network) | OFF | +| `builtin_veccore` | Build VecCore internally (requires network) | OFF | +| `builtin_xrootd` | Build XRootD internally (requires network) | OFF | +| `builtin_xxhash` | Build bundled copy of xxHash | OFF | +| `builtin_zeromq` | Build ZeroMQ internally (requires network) | OFF | +| `builtin_zlib` | Build bundled copy of zlib | OFF | +| `builtin_zstd` | Build included libzstd, or use system libzstd | OFF | +| `ccache` | Enable ccache usage for speeding up builds | OFF | +| `cefweb` | Enable support for CEF (Chromium Embedded Framework) web-based display | OFF | +| `clad` | Build clad, the cling automatic differentiation plugin (requires network) | ON | +| `cocoa` | Use native Cocoa/Quartz graphics backend (MacOS X only) | OFF | +| `coverage` | Enable compile flags for coverage testing | OFF | +| `cuda` | Enable support for CUDA (requires CUDA toolkit >= 7.5) | OFF | +| `cudnn` | Enable support for cuDNN (default when Cuda is enabled) | ON | +| `daos` | Enable RNTuple support for Intel DAOS | OFF | +| `dataframe` | Enable ROOT RDataFrame | ON | +| `davix` | Enable support for Davix (HTTP/WebDAV access) | ON | +| `dcache` | Enable support for dCache (requires libdcap from DESY) | OFF | +| `dev` | Enable recommended developer compilation flags, reduce exposed includes | OFF | +| `distcc` | Enable distcc usage for speeding up builds (ccache is called first if enabled) | OFF | +| `test_distrdf_pyspark` | Enable distributed RDataFrame tests that use pyspark | OFF | +| `test_distrdf_dask` | Enable distributed RDataFrame tests that use dask | OFF | +| `fcgi` | Enable FastCGI support in HTTP server | OFF | +| `fftw3` | Enable support for FFTW3 [GPL] | OFF | +| `fitsio` | Enable support for reading FITS images | ON | +| `fortran` | Build Fortran components of ROOT | OFF | +| `geometry` | Enable the geometry package | ON | +| `gdml` | Enable support for GDML (Geometry Description Markup Language) | ON | +| `gnuinstall` | Perform installation following the GNU guidelines | OFF | +| `gviz` | Enable support for Graphviz (graph visualization software) | OFF | +| `http` | Enable support for HTTP server | ON | +| `imt` | Enable support for implicit multi-threading via IntelĀ® Thread Building Blocks (TBB) | ON | +| `libcxx` | Build using libc++ | OFF | +| `llvm13_broken_tests` | Enable broken tests with LLVM 13 on Windows | OFF | +| `macos_native` | Disable looking for libraries, includes and binaries in locations other than a native installation (MacOS only) | OFF | +| `mathmore` | Build libMathMore extended math library (requires GSL) [GPL] | OFF | +| `memory_termination` | Free internal ROOT memory before process termination (experimental, used for leak checking) | OFF | +| `minuit2_mpi` | Enable support for MPI in Minuit2 | OFF | +| `minuit2_omp` | Enable support for OpenMP in Minuit2 | OFF | +| `mlp` | Enable support for TMultilayerPerceptron classes' federation | ON | +| `mpi` | Enable support for Message Passing Interface (MPI) | OFF | +| `mysql` | Enable support for MySQL databases | ON | +| `odbc` | Enable support for ODBC databases (requires libiodbc or libodbc) | OFF | +| `opengl` | Enable support for OpenGL (requires libGL and libGLU) | ON | +| `pgsql` | Enable support for PostgreSQL | ON | +| `proof` | Enable support for PROOF | OFF | +| `pyroot` | Enable support for automatic Python bindings (PyROOT) | ON | +| `pythia8` | Enable support for Pythia 8.x [GPL] | OFF | +| `qt6web` | Enable support for Qt6 web-based display (requires Qt6::WebEngineCore and Qt6::WebEngineWidgets) | OFF | +| `r` | Enable support for R bindings (requires R, Rcpp, and RInside) | OFF | +| `roofit_multiprocess` | Build RooFit::MultiProcess and multi-process RooFit::TestStatistics classes (requires ZeroMQ with zmq_ppoll and cppzmq). | OFF | +| `roofit` | Build the advanced fitting package RooFit, and RooStats for statistical tests. If xml is available, also build HistFactory. | ON | +| `root7` | Build ROOT 7 components of ROOT (requires C++17 standard or higher) | ON | +| `rpath` | Link libraries with built-in RPATH (run-time search path) | ON | +| `runtime_cxxmodules` | Enable runtime support for C++ modules | ON | +| `shadowpw` | Enable support for shadow passwords | OFF | +| `shared` | Use shared 3rd party libraries if possible | ON | +| `soversion` | Set version number in sonames | OFF | +| `spectrum` | Enable support for TSpectrum | ON | +| `sqlite` | Enable support for SQLite | ON | +| `ssl` | Enable support for SSL encryption via OpenSSL | ON | +| `test_distrdf_dask` | Enable distributed RDataFrame tests that use dask | OFF | +| `test_distrdf_pyspark` | Enable distributed RDataFrame tests that use pyspark | OFF | +| `tmva` | Build TMVA multi variate analysis library | ON | +| `tmva-cpu` | Build TMVA with CPU support for deep learning (requires BLAS) | ON | +| `tmva-gpu` | Build TMVA with GPU support for deep learning (requires CUDA) | OFF | +| `tmva-pymva` | Enable support for Python in TMVA (requires numpy) | ON | +| `tmva-rmva` | Enable support for R in TMVA | OFF | +| `tmva-sofie` | Build TMVA with support for sofie - fast inference code generation (requires protobuf 3) | OFF | +| `unfold` | Enable the unfold package [GPL] | OFF | +| `unuran` | Enable support for UNURAN (package for generating non-uniform random numbers) [GPL] | OFF | +| `uring` | Enable support for io_uring (requires liburing and Linux kernel >= 5.1) | OFF | +| `vc` | Enable support for Vc (SIMD Vector Classes for C++) | OFF | +| `vdt` | Enable support for VDT (fast and vectorisable mathematical functions) | ON | +| `veccore` | Enable support for VecCore SIMD abstraction library | OFF | +| `vecgeom` | Enable support for VecGeom vectorized geometry library | OFF | +| `webgui` | Build Web-based UI components of ROOT (requires C++17 standard or higher) | ON | +| `win_broken_tests` | Enable broken tests on Windows | OFF | +| `winrtdebug` | Link against the Windows debug runtime library | OFF | +| `x11` | Enable support for X11/Xft | ON | +| `xml` | Enable support for XML (requires libxml2) | ON | +| `xrootd` | Enable support for XRootD file server and client | ON | +| | **Auxiliary build options** | | +| `all` | Enable all optional components by default | OFF | +| `asan` | Build ROOT with address sanitizer instrumentation | OFF | +| `clingtest` | Enable cling tests (Note: that this makes llvm/clang symbols visible in libCling) | OFF | +| `fail-on-missing` | Fail at configure time if a required package cannot be found | OFF | +| `gminimal` | Enable only required options by default, but include X11 | OFF | +| `minimal` | Enable only required options by default | OFF | +| `rootbench` | Build rootbench if rootbench exists in root or if it is a sibling directory. | OFF | +| `roottest` | Build roottest if roottest exists in root or if it is a sibling directory. | OFF | +| `testing` | Enable testing with CTest | OFF | diff --git a/for_developers/release_checklist/index.md b/for_developers/release_checklist/index.md deleted file mode 100644 index 1453b461..00000000 --- a/for_developers/release_checklist/index.md +++ /dev/null @@ -1,133 +0,0 @@ ---- -title: Release Checklist -layout: single -sidebar: - nav: "for_developers" ---- - -### What this covers - -We use the following versioning scheme `v6.MM/PP` (text) or `v6-MM-PP` (git tag): - - `MM`: even numbers for production releases; odd for development releases - - `PP`: even for releases; odd for ROOT commits outside a tag - - release candidates are development releases. - -See also [ROOT versioning scheme]({{ 'about/versioning/' | relative_url }}) for a more public-facing description. - -This page covers the following: -- Creation of release branches: production releases (`v6.32/06`) are always tags on a release branch (`v6-32-00-patches`). -- Releases: tags and binaries. - -### Create a production release branch from `master` - -This assumes you try to create `v6-32-00-patches`, adjust accordingly. - - 1. Create the branch point - - check out `master` - - this requires a new development release as release candidate, follow "Produce a new ROOT release" below - - tag the most recent version update on `master` (`"Update ROOT version files to v6.33/01."`) as `v6-33-01` to give some context to `git describe`. - 1. Create the release branch - - for root.git: - * check out the development release tag: `git checkout v6-33-02` - * create the branch: `git switch -c v6-32-00-patches` - - for roottest.git: - * check out master - * create the branch: `git checkout -b v6-32-00-patches` - 1. Update the reference guide build procedure - - in `documentation/doxygen/Doxyfile` set `GENERATE_QHP = NO` - - in `documentation/doxygen/Makefile` remove the line `gzip $(DOXYGEN_IMAGE_PATH)/ROOT.qch` - - in the web site repository, in the file [`reference/index.md`]({{'reference' | relative_url }}), - add the line corresponding to this release. - 1. Update version number - - Since 6.30: - - Change `core/foundation/inc/ROOT/RVersion.hxx` to `6.31.99` in preparation of `v6.32.00`. - - Before 6.30: - - Change `build/version_number` to `6.31/99` in preparation of `v6.32/00`. - - Run from the build directory `$ cmake .; make version` - 1. Tag the release candidate: `git tag -a v6-32-00-rc1` - 1. Push tags and branches - - `git push origin v6-32-00-patches` (for root.git and roottest.git) - - `git push origin v6-33-01` - 1. Create the Jenkins procedures - - on [New Release Job](https://lcgapp-services.cern.ch/root-jenkins/view/Releases/newJob) state `root-release-6.32` as "item name" and set (all the way at the bottom) "Copy from" to the release before (`root-release-6.30` in the v6-32 example case); "Add to current view" should be set. - * in "This project is parametrized" / "Validating String Parameter" / "VERSION", put "v6-32-00-patches" as "Default Value" - * in "Configuration Matrix" / "User-defined Axis" / "V", put "6-32" as "Values" - * adjust `Node/Label` / `Labels` as needed, update the "Matrix Combination Parameter" `COMBINATIONS` accordingly (you need to click "Advanced..." to actually see it) - - on [New Nightly Job](https://lcgapp-services.cern.ch/root-jenkins/view/ROOT%20Nightly/newJob) state `root-nightly-v6-32-00-patches` as "item name" and set (all the way at the bottom) "Copy from" to the release before (`root-nightly-v6-30-00-patches` in the v6-32 example case); "Add to current view" should be set. - * Update its values as for the release procedure. - -### Produce a new ROOT release - - 1. Get the 'green' light from all main developers - 1. Check that all the [nightlies](https://github.com/root-project/root/actions?query=event%3Aschedule){:target="_blank"} builds are green - 1. Run with `valgrind` on `python tutorials/pyroot/hsimple.py`, `tree/dataframe/test/dataframe_concurrency`, and `./roofit/roofit/test/testRooParamHistFunc`; make sure no memory errors are reported after applying `--suppressions=$ROOTSYS/etc/valgrind-root.supp` and `--suppressions=$ROOTSYS/etc/valgrind-root-python.supp` - 1. Verify that no performance regressions exist in the [benchmark system](https://rootbnch-grafana-test.cern.ch/){:target="_blank"} - 1. **MUST** update the potentially security relevant builtin externals: `openssl` (see `builtins/openssl/CMakeLists.txt`), `net/http/civetweb`, xrootd (see `builtins/xrootd/CMakeLists.txt`), davix (see `builtins/davix/CMakeLists.txt`). - 1. Should update other builtin externals, see `builtins/` - 1. If this is not a development release nor a release candidate, update the release notes in `README/ReleaseNotes/vXXX/index.md`. If this is a patch release, edit release notes patches section at the end of the document. - - Insert the list of fixed bugs and enhancements etc behind the general release announcement for that version. They come from both Jira and Github: - - Jira project management - * Create the next patch ("6.32.02") or major ("6.24/00") version in the [project configuration](https://sft.its.cern.ch/jira/plugins/servlet/project-config/ROOT/versions){:target="_blank"} - * 'Release' the version you want to release, assigning open issues to the next patch or major release. - * From the [list the versions in JIRA](https://sft.its.cern.ch/jira/projects/ROOT?selectedItem=com.atlassian.jira.jira-projects-plugin:release-page&status=released){:target="_blank"}, select the version and then 'release notes' - - GitHub project management - * Run `python3 ./get_solved_issues.py --project-name v6.32.00` to copy and paste the fixed GitHub issues into the release notes. - * Go to this version's [GitHub project](https://github.com/root-project/root/projects/) (e.g. [Fixed in 6.32.08](https://github.com/root-project/root/projects/10) when releasing 6.32.08). On the right column header, click "<" until the column header reads "Menu" with a hamburger menu next to it. Below, to the right, you see "...". Click, select "Copy", and enter the name of the *next* production or patch release. Don't forget to remove the leading "[COPY]"! Owner is `root-project/root`. - * In "..." next to the currently to-be-released version's [GitHub project](https://github.com/root-project/root/projects/), hit "Close project". (No more bugs will be fixed in it: we are releasing it!) - - Commit your new release notes: `git commit README/ReleaseNotes/v632/index.md` - 1. Update the version number - - Since 6.30: edit `core/foundation/inc/ROOT/RVersion.hxx`. - - Before 6.30: - - Edit `build/version_number`. For release candidates, leave the version number at the development release number corresponding to the `-rc1` candidate. - - Run from the build directory `$ cmake . && make && make version` - 1. Tag and push main ROOT repository - - `git tag -a v6-32-02` - - `git push upstream v6-32-02` - 1. Tag and push ROOTTEST repository - - `git tag -a v6-32-02` - - `git push upstream v6-32-02` - 1. Produce binary tar-files (optional for development releases and release candidates) - - Go to the [`Actions` tab on the root repository page](https://github.com/root-project/root/actions) - - Select the `ROOT CI` workflow - - Click on the `Run workflow button` - - Select the branch for which the release is being made. For example select `v6-32-00-patches` if you are releasing `6.32.16` - - Select for the fields `rebase from` and `... to ...` the name of the tag for the release, e.g. `v6-32-16` (this information will be used for the checkout) - - De-select the `Do incremental build` radio button - - Select the `Create binary packages and upload them as artifacts` button - - Select for the `The CMAKE_BUILD_TYPE to use for non-Windows` radio-button the value `Release` - 1. Make source tar file and copy onto the download area _[not on a MacOS machine](https://superuser.com/questions/318809/linux-os-x-tar-incompatibility-tarballs-created-on-os-x-give-errors-when-unt){:target="_blank"}_: - - `git clone --depth 1 --branch v6-32-06 https://github.com/root-project/root` - - `mkdir build && cd build && cmake -Dminimal=ON -DCMAKE_BUILD_TYPE="Debug" ../root; make distsrc` - - `scp ../root_vX.YY.ZZ.source.tar.gz usr@srv:/var/www/root/download/` - 1. Update to the next development version - - Since 6.30, edit `core/foundation/inc/ROOT/RVersion.hxx` (odd patch number) - - Before 6.30, edit `build/version_number` (odd patch number); `$ cmake . && make version` - 1. Push to the the changes and unlock the branch, both in the `root` and `roottest` repositories. - 1. Fix build errors! - - `make` must succeed - - Deprecations will now create build errors, fix them - 1. Update the stable branch. The command below creates a commit that appears as a merge to git porcelain commands, but that directly points to the tree given by the `LATEST_STABLE` commit-ish. Users that have cloned this branch will receive updates as a fast-forward via `git pull` - - `$ LATEST_STABLE=v6-xx-yy # e.g. v6-32-02` - - `$ git fetch upstream latest-stable:latest-stable` - - `$ git update-ref refs/heads/latest-stable $(git commit-tree $LATEST_STABLE^{tree} -p refs/heads/latest-stable -p $LATEST_STABLE^{commit} -m "Updated 'latest-stable' branch to $LATEST_STABLE")` - - `$ git push upstream latest-stable` - 1. Install binaries to CVMFS (optional for development releases and release candidates) - - Install release binaries to CVMFS with the Jenkins procedure [root-release-CVMFS](https://lcgapp-services.cern.ch/root-jenkins/job/root-release-CVMFS/){:target="_blank"} - 1. Create a release page on GitHub, pointing to the release page on the website and the associated release notes, and upload all the relevant artifacts (sources and binaries). - 1. Update the release pages (optional for development releases and release candidates) - - Generate the release notes with the Jenkins procedure called [root-releasenotes](https://lcgapp-services.cern.ch/root-jenkins/job/root-releasenotes/){:target="_blank"} with `v6-32-00-patches` or similar as version. They'd show up [here for v6.32](https://root.cern/doc/v632/release-notes.html). - - Wait until the files show up on a machine with cvmfs, e.g. lxplus, in `/cvmfs/sft.cern.ch/lcg/app/releases/ROOT/6.32.02`. - - On that machine with cvmfs, create a new release web page with the script `python3 _releases/make-release-page.py _releases/release-63202.md` in ROOT's website repo. - - Add a 'highlights' section in the generated release page. - - If this applies, mark the release as `state: latest` and remove the attribute to the one previously holding it (`git grep "state: latest" -- _releases/`) - - Create a PR against `root-project/web`. - 1. Update the list of [build options](https://root.cern/install/build_from_source/#all-build-options) - - `cd` into main directory of the `root-project/web` repository. - - Run `bash _releases/generateBuildOptions.sh v6-32-00-patches`. This creates the file `_includes/build_options_v6-32-00-patches.md`. - - Modify the `install/build_from_source.md` file, appending the created file above to the list of build options dropdown items. Look for tags like `
` and add the file at the end. - - Run `git checkout -b build-options-v632; git add _includes/build_options_v6-32-00-patches.md install/build_from_source.md; git commit; git push` and open a PR on the `web` repository. - 1. Announcements - - Example announcement [here](https://root-forum.cern.ch/t/root-v6-26-16-is-out/58606) - - Send mail to the following mailing lists: root-planning@cern.ch, root-dev@cern.ch, roottalk@cern.ch, root-ambassadors@cern.ch - - Write announcement in RootTalk [forum news](https://root-forum.cern.ch/c/news){:target="_blank"} (optional for development releases and release candidates) - - For new major releases, consider writing a blog post for https://root.cern announcing the highlights. \ No newline at end of file diff --git a/for_developers/shifters_instructions/index.md b/for_developers/shifters_instructions/index.md deleted file mode 100644 index 29bde80d..00000000 --- a/for_developers/shifters_instructions/index.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Shifter's Instructions -layout: single -sidebar: - nav: "for_developers" ---- - -## Shifter's duties -The members of the ROOT team have shift duties. A shift lasts for one week, from Monday to Monday. -The hand-over between shifters happens at the ROOT Project meeting on Mondays, and it has to be carefully handled. - -### Top priority: keeping the builds green -The primary responsibility of the shifter is to "keep builds green", all tests need to succeed, all the time. -With top priority, the Shifter needs to fix the broken tests in the incremental and nightly builds and/or involve the relevant -experts to make that happen. - -### Forum Posts -All forum posts have to be followed up. Some hours can be given to the community -to discuss the questions but an answer from the ROOT team must be given within 24 hours or less. -It is responsibility of the shifter to make sure this happens, either answering or -involving the relevant expert. - -### Open pull requests -The shifter has the responsibility to follow up PRs if the relevant expert did not, -either interacting with the contributor or involving the relevant expert. Again, -feedback needs to be given within 24 hours after the PR submission. Simple PRs should -be reviewed. For simple PRs submitted by a contributor, the shifter should merge them -immediately if they are acceptable (i.e. passing continuous integration and shifter's review). - -### Incoming issues -The shifter should check incoming issues for completeness and do an assignment where it is clear. -For each unassigned issue, the shifter should assign to the relevant people and add labels, e.g. type of issue, related ROOT components, priority, -affected branches. - -### Links to check daily - -- [Nightly builds](https://github.com/root-project/root/actions/workflows/root-ci.yml?query=event%3Aschedule) -- [Forum](https://root-forum.cern.ch/latest) -- [Unassigned issues](https://github.com/root-project/root/issues?q=is%3Aopen+is%3Aissue+no%3Aassignee) -- [Unassigned pull requests](https://github.com/root-project/root/pulls?q=is%3Aopen+is%3Apr+no%3Aassignee) diff --git a/install/build_from_source.md b/install/build_from_source.md index 0f3b4927..19aa68c5 100644 --- a/install/build_from_source.md +++ b/install/build_from_source.md @@ -162,6 +162,12 @@ The user can set any CMake variable or option that controls the build process fr Click on one of the following dropdowns to see the full list of build options for a specific ROOT release: +
build options for ROOT 6.36 + +{% include build_options_v6-36-00-patches.md %} + +
+
build options for ROOT 6.34 {% include build_options_v6-34-00-patches.md %} diff --git a/reference/index.md b/reference/index.md index d7643dfc..809865c7 100644 --- a/reference/index.md +++ b/reference/index.md @@ -11,6 +11,7 @@ This page gives the list of all the past versions. | ROOT Version | HTML link | Download links | Link to the Tag file | Link to the QCH file | |------------------------|----------------------------------------------------------------------------|---------------------------------------|------------------------------------------------------|------------------------------------------------------| | HEAD of the git master | [browse](https://root.cern/doc/master/){:target="_blank"} | | [tag file](https://root.cern/doc/master/ROOT.tag.gz) | [qch file](https://root.cern/doc/master/ROOT.qch.gz) | +| 6.36 | [browse](https://root.cern/doc/v636/){:target="_blank"} | {% include download name="html636" %} | [tag file](https://root.cern/doc/v636/ROOT.tag.gz) | | 6.34 | [browse](https://root.cern/doc/v634/){:target="_blank"} | {% include download name="html634" %} | [tag file](https://root.cern/doc/v634/ROOT.tag.gz) | | 6.32 | [browse](https://root.cern/doc/v632/){:target="_blank"} | {% include download name="html632" %} | [tag file](https://root.cern/doc/v632/ROOT.tag.gz) | | 6.30 | [browse](https://root.cern/doc/v630/){:target="_blank"} | {% include download name="html630" %} | [tag file](https://root.cern/doc/v630/ROOT.tag.gz) |