summaryrefslogtreecommitdiffstats
path: root/Help
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2021-10-07 13:46:29 (GMT)
committerBrad King <brad.king@kitware.com>2021-10-07 13:46:29 (GMT)
commit48e503ec78ced6da83f78a8d26d5867ee56873a3 (patch)
treec4d553a858e38374fefe409b470f2b7fe114c368 /Help
parent24fb43e3e757ad963082d9e92362242efb6ad265 (diff)
downloadCMake-48e503ec78ced6da83f78a8d26d5867ee56873a3.zip
CMake-48e503ec78ced6da83f78a8d26d5867ee56873a3.tar.gz
CMake-48e503ec78ced6da83f78a8d26d5867ee56873a3.tar.bz2
Help: Consolidate 3.22 release notes
Run the `Utilities/Release/consolidate-relnotes.bash` script to move notes from `Help/release/dev/*` into `Help/release/3.22.rst`.
Diffstat (limited to 'Help')
-rw-r--r--Help/release/3.22.rst124
-rw-r--r--Help/release/dev/FindJasper-imported-target.rst4
-rw-r--r--Help/release/dev/FindPkgConfig-PKG_CONFIG-args.rst5
-rw-r--r--Help/release/dev/GoogleTest-gtest-filter.rst6
-rw-r--r--Help/release/dev/LINK_WHAT_USE_USE-configuration.rst5
-rw-r--r--Help/release/dev/UseSWIG-dependencies.rst6
-rw-r--r--Help/release/dev/cmake-install-mode-symlink.rst16
-rw-r--r--Help/release/dev/cmake_dependent_option_policy.rst6
-rw-r--r--Help/release/dev/compile-features-standard-logic-rework.rst10
-rw-r--r--Help/release/dev/cpack-deb-add-zstd-compression.rst6
-rw-r--r--Help/release/dev/cpack-rpm-requires-exclude-from.rst6
-rw-r--r--Help/release/dev/ctest-environment-modifications.rst7
-rw-r--r--Help/release/dev/ctest-runtime-labels.rst7
-rw-r--r--Help/release/dev/ctest_memcheck-generate-test.xml.rst6
-rw-r--r--Help/release/dev/env-init-configs.rst9
-rw-r--r--Help/release/dev/fetchcontent-CMAKE-vars-passthrough.rst8
-rw-r--r--Help/release/dev/find-blas-lapack-sizeof-integer.rst6
-rw-r--r--Help/release/dev/find-matlab-imported-targets.rst4
-rw-r--r--Help/release/dev/find_package-required-var.rst5
-rw-r--r--Help/release/dev/msvc-isystem.rst7
-rw-r--r--Help/release/dev/ninja-edit_cache.rst5
-rw-r--r--Help/release/dev/nsis-minimal-version.rst4
-rw-r--r--Help/release/dev/nsis_ignore_install_page.rst6
-rw-r--r--Help/release/dev/os-release.rst6
-rw-r--r--Help/release/dev/string-TIMESTAMP-specifier-V.rst5
-rw-r--r--Help/release/dev/target_compile_features-ignore-disabled-langs.rst5
-rw-r--r--Help/release/dev/vs10-deprecate.rst5
-rw-r--r--Help/release/dev/vs_settings.rst5
-rw-r--r--Help/release/index.rst1
29 files changed, 125 insertions, 170 deletions
diff --git a/Help/release/3.22.rst b/Help/release/3.22.rst
new file mode 100644
index 0000000..d8427a6
--- /dev/null
+++ b/Help/release/3.22.rst
@@ -0,0 +1,124 @@
+CMake 3.22 Release Notes
+************************
+
+.. only:: html
+
+ .. contents::
+
+Changes made since CMake 3.21 include the following.
+
+* The :module:`CMakeDependentOption` module :command:`cmake_dependent_option`
+ macro now supports full :ref:`Condition Syntax`.
+ See policy :policy:`CMP0127`.
+
+* The :envvar:`CMAKE_INSTALL_MODE` environment variable was added to
+ allow users to override the default file-copying behavior of
+ :command:`install` and :command:`file(INSTALL)` into creating
+ symbolic links. This can aid in lowering storage space requirements
+ and avoiding redundancy.
+
+* The :command:`file(INSTALL)` can now be affected / modified by the
+ :envvar:`CMAKE_INSTALL_MODE` environment variable causing installation
+ of symbolic links instead of copying of files.
+
+* The :command:`install` can now be affected / modified by the
+ :envvar:`CMAKE_INSTALL_MODE` environment variable causing installation
+ of symbolic links instead of copying of files.
+
+* The :manual:`Compile Features <cmake-compile-features(7)>` functionality now
+ correctly disables or enables compiler extensions when no standard level is
+ specified and avoids unnecessarily adding language standard flags if the
+ requested settings match the compiler's defaults. See :policy:`CMP0128`.
+
+* :prop_tgt:`<LANG>_EXTENSIONS` is initialized to
+ :variable:`CMAKE_<LANG>_EXTENSIONS_DEFAULT`. See :policy:`CMP0128`.
+
+* The :cpack_gen:`CPack DEB Generator` gained the
+ option to set :variable:`CPACK_DEBIAN_COMPRESSION_TYPE` to zstd,
+ which enables Zstandard compression for deb packages.
+
+* The :cpack_gen:`CPack RPM Generator` gained the
+ :variable:`CPACK_RPM_REQUIRES_EXCLUDE_FROM` option avoid scanning
+ specific paths for dependencies.
+
+* :manual:`ctest(1)` learned to be able to modify the environment for a test
+ through the :prop_test:`ENVIRONMENT_MODIFICATION` property. This is allows
+ for updates to environment variables based on the environment present at
+ test time.
+
+* The :command:`ctest_memcheck` command now also generates a
+ `DynamicAnalysis-Test.xml` file which may be used to submit test results to
+ CDash.
+
+* :manual:`ctest(1)` learned to recognize labels attached to a test at run time.
+ Previously it was only possible to attach labels to tests at configure time
+ by using the :prop_test:`LABELS` test property.
+ See :ref:`Additional Test Measurements` for more information.
+
+* The :envvar:`CMAKE_BUILD_TYPE` environment variable was added to
+ provide a default value for the :variable:`CMAKE_BUILD_TYPE` variable.
+
+* The :envvar:`CMAKE_CONFIGURATION_TYPES` environment variable was added to
+ provide a default value for the :variable:`CMAKE_CONFIGURATION_TYPES`
+ variable.
+
+* The :module:`FetchContent` module now passes through the
+ :variable:`CMAKE_TLS_VERIFY`, :variable:`CMAKE_TLS_CAINFO`,
+ :variable:`CMAKE_NETRC` and :variable:`CMAKE_NETRC_FILE` variables (when
+ defined) to the underlying :module:`ExternalProject` sub-build.
+ Previously, those variables were silently ignored by :module:`FetchContent`.
+
+* The :module:`FindBLAS` and :module:`FindLAPACK` modules gained
+ a ``BLA_SIZEOF_INTEGER`` option to find a BLAS/LAPACK whose ABI
+ uses a specific integer size.
+
+* The :module:`FindJasper` module now provides an imported target.
+
+* The :module:`FindMatlab` module now provides imported targets.
+
+* The :variable:`CMAKE_REQUIRE_FIND_PACKAGE_<PackageName>` variable was added
+ to turn a non-REQUIRED :command:`find_package` call into a REQUIRED one.
+
+* The :module:`FindPkgConfig` module gained a :variable:`PKG_CONFIG_ARGN`
+ variable to specify arguments to ``pkg-config`` calls.
+
+* The :module:`GoogleTest` module :command:`gtest_discover_tests`
+ function gained a ``TEST_FILTER`` option to filter tests using
+ ``--gtest_filter`` during test discovery.
+
+* Configuration for :prop_tgt:`LINK_WHAT_YOU_USE` feature is now controlled by
+ ``CMake`` variables and only active for ``ELF`` platforms.
+
+* The MSVC compilers learned to pass the ``-external:I`` flag for system
+ includes when using the :generator:`Ninja` and :generator:`NMake Makefiles`
+ generators. This became available as of Visual Studio 16.10 (toolchain
+ version 14.29.30037).
+
+* The :ref:`Ninja Generators` now implement the ``edit_cache`` target
+ using :manual:`ccmake(1)` if available.
+
+* The :cpack_gen:`CPack NSIS Generator` gained a new variable
+ :variable:`CPACK_NSIS_IGNORE_LICENSE_PAGE` to ignore the
+ license page in the installer.
+
+* The :cpack_gen:`CPack NSIS Generator` now requires NSIS 3.03 or later.
+
+* The :command:`cmake_host_system_information` command query operating system
+ identification `variables <https://www.freedesktop.org/software/systemd/man/os-release.html>`_
+ from the :file:`/etc/os-release` file.
+
+* The :command:`string(TIMESTAMP)` command now supports the ``%V``
+ specifier for ISO 8601 week numbers.
+
+* :command:`target_compile_features` learned to ignored features for languages that
+ aren't enabled.
+
+* :module:`UseSWIG` module gained the capability, for
+ :ref:`Visual Studio Generators` to use `swig` tool to generate implicit
+ dependencies.
+
+* The :generator:`Visual Studio 10 2010` generator is now deprecated
+ and will be removed in a future version of CMake.
+
+* The :prop_sf:`VS_SETTINGS` source file property is now supported for
+ all source file types. Previously it worked only for non-built sources.
diff --git a/Help/release/dev/FindJasper-imported-target.rst b/Help/release/dev/FindJasper-imported-target.rst
deleted file mode 100644
index 33ee885..0000000
--- a/Help/release/dev/FindJasper-imported-target.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-FindJasper-imported-target
---------------------------
-
-* The :module:`FindJasper` module now provides an imported target.
diff --git a/Help/release/dev/FindPkgConfig-PKG_CONFIG-args.rst b/Help/release/dev/FindPkgConfig-PKG_CONFIG-args.rst
deleted file mode 100644
index 44c26b5..0000000
--- a/Help/release/dev/FindPkgConfig-PKG_CONFIG-args.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-FindPkgConfig-PKG_CONFIG-args
------------------------------
-
-* The :module:`FindPkgConfig` module gained a :variable:`PKG_CONFIG_ARGN`
- variable to specify arguments to ``pkg-config`` calls.
diff --git a/Help/release/dev/GoogleTest-gtest-filter.rst b/Help/release/dev/GoogleTest-gtest-filter.rst
deleted file mode 100644
index 48b97a7..0000000
--- a/Help/release/dev/GoogleTest-gtest-filter.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-GoogleTest-gtest-filter
------------------------
-
-* The :module:`GoogleTest` module :command:`gtest_discover_tests`
- function gained a ``TEST_FILTER`` option to filter tests using
- ``--gtest_filter`` during test discovery.
diff --git a/Help/release/dev/LINK_WHAT_USE_USE-configuration.rst b/Help/release/dev/LINK_WHAT_USE_USE-configuration.rst
deleted file mode 100644
index 990ed36..0000000
--- a/Help/release/dev/LINK_WHAT_USE_USE-configuration.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-LINK_WHAT_YOU_USE-configuration
--------------------------------
-
-* Configuration for :prop_tgt:`LINK_WHAT_YOU_USE` feature is now controlled by
- ``CMake`` variables and only active for ``ELF`` platforms.
diff --git a/Help/release/dev/UseSWIG-dependencies.rst b/Help/release/dev/UseSWIG-dependencies.rst
deleted file mode 100644
index a3ec29e..0000000
--- a/Help/release/dev/UseSWIG-dependencies.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-UseSWIG-dependencies
---------------------
-
-* :module:`UseSWIG` module gained the capability, for
- :ref:`Visual Studio Generators` to use `swig` tool to generate implicit
- dependencies.
diff --git a/Help/release/dev/cmake-install-mode-symlink.rst b/Help/release/dev/cmake-install-mode-symlink.rst
deleted file mode 100644
index a5f75ca..0000000
--- a/Help/release/dev/cmake-install-mode-symlink.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-cmake-install-mode-symlink
---------------------------
-
-* The :envvar:`CMAKE_INSTALL_MODE` environment variable was added to
- allow users to override the default file-copying behavior of
- :command:`install` and :command:`file(INSTALL)` into creating
- symbolic links. This can aid in lowering storage space requirements
- and avoiding redundancy.
-
-* The :command:`file(INSTALL)` can now be affected / modified by the
- :envvar:`CMAKE_INSTALL_MODE` environment variable causing installation
- of symbolic links instead of copying of files.
-
-* The :command:`install` can now be affected / modified by the
- :envvar:`CMAKE_INSTALL_MODE` environment variable causing installation
- of symbolic links instead of copying of files.
diff --git a/Help/release/dev/cmake_dependent_option_policy.rst b/Help/release/dev/cmake_dependent_option_policy.rst
deleted file mode 100644
index c131170..0000000
--- a/Help/release/dev/cmake_dependent_option_policy.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-cmake_dependent_option_policy
------------------------------
-
-* The :module:`CMakeDependentOption` module :command:`cmake_dependent_option`
- macro now supports full :ref:`Condition Syntax`.
- See policy :policy:`CMP0127`.
diff --git a/Help/release/dev/compile-features-standard-logic-rework.rst b/Help/release/dev/compile-features-standard-logic-rework.rst
deleted file mode 100644
index 432a756..0000000
--- a/Help/release/dev/compile-features-standard-logic-rework.rst
+++ /dev/null
@@ -1,10 +0,0 @@
-compile-features-standard-logic-rework
---------------------------------------
-
-* The :manual:`Compile Features <cmake-compile-features(7)>` functionality now
- correctly disables or enables compiler extensions when no standard level is
- specified and avoids unnecessarily adding language standard flags if the
- requested settings match the compiler's defaults. See :policy:`CMP0128`.
-
-* :prop_tgt:`<LANG>_EXTENSIONS` is initialized to
- :variable:`CMAKE_<LANG>_EXTENSIONS_DEFAULT`. See :policy:`CMP0128`.
diff --git a/Help/release/dev/cpack-deb-add-zstd-compression.rst b/Help/release/dev/cpack-deb-add-zstd-compression.rst
deleted file mode 100644
index a138455..0000000
--- a/Help/release/dev/cpack-deb-add-zstd-compression.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-cpack-deb-add-zstd-compression
-------------------------------
-
-* The :cpack_gen:`CPack DEB Generator` gained the
- option to set :variable:`CPACK_DEBIAN_COMPRESSION_TYPE` to zstd,
- which enables Zstandard compression for deb packages.
diff --git a/Help/release/dev/cpack-rpm-requires-exclude-from.rst b/Help/release/dev/cpack-rpm-requires-exclude-from.rst
deleted file mode 100644
index 7125901..0000000
--- a/Help/release/dev/cpack-rpm-requires-exclude-from.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-cpack-rpm-requires-exclude-from
--------------------------------
-
-* The :cpack_gen:`CPack RPM Generator` gained the
- :variable:`CPACK_RPM_REQUIRES_EXCLUDE_FROM` option avoid scanning
- specific paths for dependencies.
diff --git a/Help/release/dev/ctest-environment-modifications.rst b/Help/release/dev/ctest-environment-modifications.rst
deleted file mode 100644
index 64265f0..0000000
--- a/Help/release/dev/ctest-environment-modifications.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ctest-environment-modifications
--------------------------------
-
-* :manual:`ctest(1)` learned to be able to modify the environment for a test
- through the :prop_test:`ENVIRONMENT_MODIFICATION` property. This is allows
- for updates to environment variables based on the environment present at
- test time.
diff --git a/Help/release/dev/ctest-runtime-labels.rst b/Help/release/dev/ctest-runtime-labels.rst
deleted file mode 100644
index 7ce0b64..0000000
--- a/Help/release/dev/ctest-runtime-labels.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-ctest-runtime-labels
---------------------
-
-* :manual:`ctest(1)` learned to recognize labels attached to a test at run time.
- Previously it was only possible to attach labels to tests at configure time
- by using the :prop_test:`LABELS` test property.
- See :ref:`Additional Test Measurements` for more information.
diff --git a/Help/release/dev/ctest_memcheck-generate-test.xml.rst b/Help/release/dev/ctest_memcheck-generate-test.xml.rst
deleted file mode 100644
index fac02d8..0000000
--- a/Help/release/dev/ctest_memcheck-generate-test.xml.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-ctest_memcheck-generate-test.xml
---------------------------------
-
-* The :command:`ctest_memcheck` command now also generates a
- `DynamicAnalysis-Test.xml` file which may be used to submit test results to
- CDash.
diff --git a/Help/release/dev/env-init-configs.rst b/Help/release/dev/env-init-configs.rst
deleted file mode 100644
index 5c9892d..0000000
--- a/Help/release/dev/env-init-configs.rst
+++ /dev/null
@@ -1,9 +0,0 @@
-env-init-configs
-----------------
-
-* The :envvar:`CMAKE_BUILD_TYPE` environment variable was added to
- provide a default value for the :variable:`CMAKE_BUILD_TYPE` variable.
-
-* The :envvar:`CMAKE_CONFIGURATION_TYPES` environment variable was added to
- provide a default value for the :variable:`CMAKE_CONFIGURATION_TYPES`
- variable.
diff --git a/Help/release/dev/fetchcontent-CMAKE-vars-passthrough.rst b/Help/release/dev/fetchcontent-CMAKE-vars-passthrough.rst
deleted file mode 100644
index 842c016..0000000
--- a/Help/release/dev/fetchcontent-CMAKE-vars-passthrough.rst
+++ /dev/null
@@ -1,8 +0,0 @@
-fetchcontent-CMAKE-vars-passthrough.rst
----------------------------------------
-
-* The :module:`FetchContent` module now passes through the
- :variable:`CMAKE_TLS_VERIFY`, :variable:`CMAKE_TLS_CAINFO`,
- :variable:`CMAKE_NETRC` and :variable:`CMAKE_NETRC_FILE` variables (when
- defined) to the underlying :module:`ExternalProject` sub-build.
- Previously, those variables were silently ignored by :module:`FetchContent`.
diff --git a/Help/release/dev/find-blas-lapack-sizeof-integer.rst b/Help/release/dev/find-blas-lapack-sizeof-integer.rst
deleted file mode 100644
index bb20654..0000000
--- a/Help/release/dev/find-blas-lapack-sizeof-integer.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-find-blas-lapack-sizeof-integer
--------------------------------
-
-* The :module:`FindBLAS` and :module:`FindLAPACK` modules gained
- a ``BLA_SIZEOF_INTEGER`` option to find a BLAS/LAPACK whose ABI
- uses a specific integer size.
diff --git a/Help/release/dev/find-matlab-imported-targets.rst b/Help/release/dev/find-matlab-imported-targets.rst
deleted file mode 100644
index 33a93ff..0000000
--- a/Help/release/dev/find-matlab-imported-targets.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-find-matlab-imported-targets
-----------------------------
-
-* The :module:`FindMatlab` module now provides imported targets.
diff --git a/Help/release/dev/find_package-required-var.rst b/Help/release/dev/find_package-required-var.rst
deleted file mode 100644
index 36935ef..0000000
--- a/Help/release/dev/find_package-required-var.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-find_package-required-var
--------------------------
-
-* The :variable:`CMAKE_REQUIRE_FIND_PACKAGE_<PackageName>` variable was added
- to turn a non-REQUIRED :command:`find_package` call into a REQUIRED one.
diff --git a/Help/release/dev/msvc-isystem.rst b/Help/release/dev/msvc-isystem.rst
deleted file mode 100644
index 4a5d79f..0000000
--- a/Help/release/dev/msvc-isystem.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-msvc-isystem
-------------
-
-* The MSVC compilers learned to pass the ``-external:I`` flag for system
- includes when using the :generator:`Ninja` and :generator:`NMake Makefiles`
- generators. This became available as of Visual Studio 16.10 (toolchain
- version 14.29.30037).
diff --git a/Help/release/dev/ninja-edit_cache.rst b/Help/release/dev/ninja-edit_cache.rst
deleted file mode 100644
index 9083f56..0000000
--- a/Help/release/dev/ninja-edit_cache.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-ninja-edit_cache
-----------------
-
-* The :ref:`Ninja Generators` now implement the ``edit_cache`` target
- using :manual:`ccmake(1)` if available.
diff --git a/Help/release/dev/nsis-minimal-version.rst b/Help/release/dev/nsis-minimal-version.rst
deleted file mode 100644
index b19597a..0000000
--- a/Help/release/dev/nsis-minimal-version.rst
+++ /dev/null
@@ -1,4 +0,0 @@
-nsis-minimal-version.rst
-------------------------
-
-* The :cpack_gen:`CPack NSIS Generator` now requires NSIS 3.03 or later.
diff --git a/Help/release/dev/nsis_ignore_install_page.rst b/Help/release/dev/nsis_ignore_install_page.rst
deleted file mode 100644
index 2d8a8d0..0000000
--- a/Help/release/dev/nsis_ignore_install_page.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-nsis_ignore_install_page
-------------------------
-
-* The :cpack_gen:`CPack NSIS Generator` gained a new variable
- :variable:`CPACK_NSIS_IGNORE_LICENSE_PAGE` to ignore the
- license page in the installer.
diff --git a/Help/release/dev/os-release.rst b/Help/release/dev/os-release.rst
deleted file mode 100644
index cce6aee..0000000
--- a/Help/release/dev/os-release.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-os-release
-----------
-
-* The :command:`cmake_host_system_information` command query operating system
- identification `variables <https://www.freedesktop.org/software/systemd/man/os-release.html>`_
- from the :file:`/etc/os-release` file.
diff --git a/Help/release/dev/string-TIMESTAMP-specifier-V.rst b/Help/release/dev/string-TIMESTAMP-specifier-V.rst
deleted file mode 100644
index afd3f03..0000000
--- a/Help/release/dev/string-TIMESTAMP-specifier-V.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-string-TIMESTAMP-specifier-V
-----------------------------
-
-* The :command:`string(TIMESTAMP)` command now supports the ``%V``
- specifier for ISO 8601 week numbers.
diff --git a/Help/release/dev/target_compile_features-ignore-disabled-langs.rst b/Help/release/dev/target_compile_features-ignore-disabled-langs.rst
deleted file mode 100644
index 0eba125..0000000
--- a/Help/release/dev/target_compile_features-ignore-disabled-langs.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-target_compile_features-ignore-disabled-langs
----------------------------------------------
-
-* :command:`target_compile_features` learned to ignored features for languages that
- aren't enabled.
diff --git a/Help/release/dev/vs10-deprecate.rst b/Help/release/dev/vs10-deprecate.rst
deleted file mode 100644
index 7bec391..0000000
--- a/Help/release/dev/vs10-deprecate.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-vs10-deprecate
---------------
-
-* The :generator:`Visual Studio 10 2010` generator is now deprecated
- and will be removed in a future version of CMake.
diff --git a/Help/release/dev/vs_settings.rst b/Help/release/dev/vs_settings.rst
deleted file mode 100644
index 64f3ced..0000000
--- a/Help/release/dev/vs_settings.rst
+++ /dev/null
@@ -1,5 +0,0 @@
-vs_settings
------------
-
-* The :prop_sf:`VS_SETTINGS` source file property is now supported for
- all source file types. Previously it worked only for non-built sources.
diff --git a/Help/release/index.rst b/Help/release/index.rst
index 5938878..131595a 100644
--- a/Help/release/index.rst
+++ b/Help/release/index.rst
@@ -15,6 +15,7 @@ Releases
.. toctree::
:maxdepth: 1
+ 3.22 <3.22>
3.21 <3.21>
3.20 <3.20>
3.19 <3.19>