You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2021/11/25 18:08:37 UTC

[GitHub] [arrow] pitrou opened a new pull request #11778: ARROW-14714: [C++] Rework CMake presets

pitrou opened a new pull request #11778:
URL: https://github.com/apache/arrow/pull/11778


   Try to define CMake presets that correspond to common use cases.
   Also add display names so that the command-line can be more informative.
   
   Summary of available presets:
   ```
   $ cmake --list-presets
   Available configure presets:
   
     "ninja-debug-minimal"     - Debug build without anything enabled
     "ninja-debug-basic"       - Debug build with tests and reduced dependencies
     "ninja-debug"             - Debug build with tests and more optional components
     "ninja-debug-cuda"        - Debug build with tests and CUDA integration
     "ninja-debug-filesystems" - Debug build with tests and filesystems
     "ninja-debug-flight"      - Debug build with tests and Flight
     "ninja-debug-gandiva"     - Debug build with tests and Gandiva
     "ninja-debug-python"      - Debug build with tests and Python support
     "ninja-debug-maximal"     - Debug build with everything enabled (except benchmarks and CUDA)
     "ninja-release-minimal"   - Release build without anything enabled
     "ninja-release-basic"     - Release build with reduced dependencies
     "ninja-release"           - Release build with more optional components
     "ninja-release-cuda"      - Release build with CUDA integration
     "ninja-release-flight"    - Release build with Flight
     "ninja-release-gandiva"   - Release build with Gandiva
     "ninja-release-python"    - Release build with Python support
     "ninja-release-maximal"   - Release build with everything enabled (except benchmarks and CUDA)
     "ninja-benchmarks-basic"  - Benchmarking build with reduced dependencies
     "ninja-benchmarks"        - Benchmarking build with more optional components
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] lidavidm commented on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
lidavidm commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-980792499


   Right, I think the only time I'd want a debug-without-tests build is when I plan to debug Python or R. But even then usually the investigation will lead back into C++ anyways.
   
   Would including ASAN/UBSAN in the debug builds be useful? And/or things like extra error context and GLog.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] ursabot commented on pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
ursabot commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-983989131


   Benchmark runs are scheduled for baseline = 704d123d0e00e88b4d0ad28d2f193ea20e54f7e3 and contender = 200f1679f9837a83b105ba081f31ca47cbe22de1. 200f1679f9837a83b105ba081f31ca47cbe22de1 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
   Conbench compare runs links:
   [Scheduled] [ec2-t3-xlarge-us-east-2](https://conbench.ursa.dev/compare/runs/9e127d5483ce49a698eb07f625ba8502...a8779635087d4dca91f81e1b36c31064/)
   [Scheduled] [ursa-i9-9960x](https://conbench.ursa.dev/compare/runs/fc9c4d4cbc37410183cbcc02b8650c54...261584bbf92946cdad09914abd83954a/)
   [Scheduled] [ursa-thinkcentre-m75q](https://conbench.ursa.dev/compare/runs/f54d71eca2ee44d2a3732c07c6d2d258...84b1c177605b4549b54e8e8c4a09ed54/)
   Supported benchmarks:
   ursa-i9-9960x: langs = Python, R, JavaScript
   ursa-thinkcentre-m75q: langs = C++, Java
   ec2-t3-xlarge-us-east-2: cloud = True
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] 9prady9 commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
9prady9 commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r759962655



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -121,6 +121,99 @@ On MSYS2:
 Building
 ========
 
+All the instructions below assume that you have cloned the Arrow git
+repository and navigated to the ``cpp`` subdirectory:
+
+.. code-block:: shell
+
+   $ git clone https://github.com/apache/arrow.git
+   $ cd arrow/cpp
+
+CMake presets
+-------------
+
+Using CMake version 3.21.0 or higher, some presets for various build
+configurations are provided.  You can get a list of the available presets
+using ``cmake --list-presets``:
+
+.. code-block:: shell
+
+   $ cmake --list-presets
+   Available configure presets:
+
+     "ninja-debug-minimal"     - Debug build without anything enabled
+     "ninja-debug-basic"       - Debug build with tests and reduced dependencies
+     "ninja-debug"             - Debug build with tests and more optional components
+      [ etc. ]
+
+You can inspect the specific options enabled by a given preset using
+``cmake -N --preset <preset name>``:
+
+.. code-block:: shell
+
+   $ cmake --preset -N ninja-debug-minimal
+   Preset CMake variables:
+
+     ARROW_BUILD_INTEGRATION="OFF"
+     ARROW_BUILD_STATIC="OFF"
+     ARROW_BUILD_TESTS="OFF"
+     ARROW_EXTRA_ERROR_CONTEXT="ON"
+     ARROW_WITH_RE2="OFF"
+     ARROW_WITH_UTF8PROC="OFF"
+     CMAKE_BUILD_TYPE="Debug"
+
+You can also create a build from a given preset:
+
+.. code-block:: shell
+
+   $ mkdir build
+   $ cd build
+   $ cmake .. --preset ninja-debug-minimal
+      Preset CMake variables:
+
+        ARROW_BUILD_INTEGRATION="OFF"
+        ARROW_BUILD_STATIC="OFF"
+        ARROW_BUILD_TESTS="OFF"
+        ARROW_EXTRA_ERROR_CONTEXT="ON"
+        ARROW_WITH_RE2="OFF"
+        ARROW_WITH_UTF8PROC="OFF"
+        CMAKE_BUILD_TYPE="Debug"
+
+      -- Building using CMake version: 3.21.3
+      [ etc. ]
+
+and then ask to compile the build targets:
+
+.. code-block:: shell
+
+   $ cmake --build .

Review comment:
       No, that command is available even without presets i.e. in the build folder, even in older cmake versions we can run `cmake --build .` which runs build as per generated files from the previous `cmake ..` command.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] 9prady9 commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
9prady9 commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r761278812



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -121,6 +121,99 @@ On MSYS2:
 Building
 ========
 
+All the instructions below assume that you have cloned the Arrow git
+repository and navigated to the ``cpp`` subdirectory:
+
+.. code-block:: shell
+
+   $ git clone https://github.com/apache/arrow.git
+   $ cd arrow/cpp
+
+CMake presets
+-------------
+
+Using CMake version 3.21.0 or higher, some presets for various build
+configurations are provided.  You can get a list of the available presets
+using ``cmake --list-presets``:
+
+.. code-block:: shell
+
+   $ cmake --list-presets
+   Available configure presets:
+
+     "ninja-debug-minimal"     - Debug build without anything enabled
+     "ninja-debug-basic"       - Debug build with tests and reduced dependencies
+     "ninja-debug"             - Debug build with tests and more optional components
+      [ etc. ]
+
+You can inspect the specific options enabled by a given preset using
+``cmake -N --preset <preset name>``:
+
+.. code-block:: shell
+
+   $ cmake --preset -N ninja-debug-minimal
+   Preset CMake variables:
+
+     ARROW_BUILD_INTEGRATION="OFF"
+     ARROW_BUILD_STATIC="OFF"
+     ARROW_BUILD_TESTS="OFF"
+     ARROW_EXTRA_ERROR_CONTEXT="ON"
+     ARROW_WITH_RE2="OFF"
+     ARROW_WITH_UTF8PROC="OFF"
+     CMAKE_BUILD_TYPE="Debug"
+
+You can also create a build from a given preset:
+
+.. code-block:: shell
+
+   $ mkdir build
+   $ cd build
+   $ cmake .. --preset ninja-debug-minimal
+      Preset CMake variables:
+
+        ARROW_BUILD_INTEGRATION="OFF"
+        ARROW_BUILD_STATIC="OFF"
+        ARROW_BUILD_TESTS="OFF"
+        ARROW_EXTRA_ERROR_CONTEXT="ON"
+        ARROW_WITH_RE2="OFF"
+        ARROW_WITH_UTF8PROC="OFF"
+        CMAKE_BUILD_TYPE="Debug"
+
+      -- Building using CMake version: 3.21.3
+      [ etc. ]
+
+and then ask to compile the build targets:
+
+.. code-block:: shell
+
+   $ cmake --build .

Review comment:
       just to add to what @pitrou said, note that you can still do `make` or `ninja` to build the project. It is in no way mandatory to do `cmake --build .`




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
pitrou commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-981647326


   Presets are much less flexible than the current individual selection in `cpp_build.sh`, so I'm not sure that's a good idea. And we don't want nightly builds to change because we changed the definition of a preset.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] 9prady9 commented on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
9prady9 commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-979645317


   > We could perhaps further categorize by having separate "debug" and "tests" builds (the former category with tests disabled), but I'm not sure how useful that would be. It's probably rare to make a debug build if not for testing Arrow.
   
   I agree that targeted separation of debug and test is not required unless there is an existing use case that has this requirement.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
pitrou commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-979406701


   I still need to add some docs around this.
   
   @9prady9 @kou 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
pitrou commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r760932161



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -145,45 +238,34 @@ Minimal release build (1GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow/cpp
-   mkdir release
-   cd release
-   cmake ..
-   make
+   $ mkdir build-release
+   $ cd build-release
+   $ cmake ..
+   $ make -j8       # if you have 8 CPU cores, otherwise adjust
 
 Minimal debug build with unit tests (4GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow
-   git submodule update --init --recursive
-   export ARROW_TEST_DATA=$PWD/testing/data
-   cd cpp
-   mkdir debug
-   cd debug
-   cmake -DCMAKE_BUILD_TYPE=Debug -DARROW_BUILD_TESTS=ON ..
-   make unittest
+   $ git submodule update --init --recursive

Review comment:
       We can definitely add useful extensions. Perhaps open a JIRA?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] AlenkaF commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
AlenkaF commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r760945432



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -145,45 +238,34 @@ Minimal release build (1GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow/cpp
-   mkdir release
-   cd release
-   cmake ..
-   make
+   $ mkdir build-release
+   $ cd build-release
+   $ cmake ..
+   $ make -j8       # if you have 8 CPU cores, otherwise adjust
 
 Minimal debug build with unit tests (4GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow
-   git submodule update --init --recursive
-   export ARROW_TEST_DATA=$PWD/testing/data
-   cd cpp
-   mkdir debug
-   cd debug
-   cmake -DCMAKE_BUILD_TYPE=Debug -DARROW_BUILD_TESTS=ON ..
-   make unittest
+   $ git submodule update --init --recursive

Review comment:
       Created [ARROW-14963](https://issues.apache.org/jira/browse/ARROW-14963).




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorisvandenbossche commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
jorisvandenbossche commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r761282525



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -121,6 +121,99 @@ On MSYS2:
 Building
 ========
 
+All the instructions below assume that you have cloned the Arrow git
+repository and navigated to the ``cpp`` subdirectory:
+
+.. code-block:: shell
+
+   $ git clone https://github.com/apache/arrow.git
+   $ cd arrow/cpp
+
+CMake presets
+-------------
+
+Using CMake version 3.21.0 or higher, some presets for various build
+configurations are provided.  You can get a list of the available presets
+using ``cmake --list-presets``:
+
+.. code-block:: shell
+
+   $ cmake --list-presets
+   Available configure presets:
+
+     "ninja-debug-minimal"     - Debug build without anything enabled
+     "ninja-debug-basic"       - Debug build with tests and reduced dependencies
+     "ninja-debug"             - Debug build with tests and more optional components
+      [ etc. ]
+
+You can inspect the specific options enabled by a given preset using
+``cmake -N --preset <preset name>``:
+
+.. code-block:: shell
+
+   $ cmake --preset -N ninja-debug-minimal
+   Preset CMake variables:
+
+     ARROW_BUILD_INTEGRATION="OFF"
+     ARROW_BUILD_STATIC="OFF"
+     ARROW_BUILD_TESTS="OFF"
+     ARROW_EXTRA_ERROR_CONTEXT="ON"
+     ARROW_WITH_RE2="OFF"
+     ARROW_WITH_UTF8PROC="OFF"
+     CMAKE_BUILD_TYPE="Debug"
+
+You can also create a build from a given preset:
+
+.. code-block:: shell
+
+   $ mkdir build
+   $ cd build
+   $ cmake .. --preset ninja-debug-minimal
+      Preset CMake variables:
+
+        ARROW_BUILD_INTEGRATION="OFF"
+        ARROW_BUILD_STATIC="OFF"
+        ARROW_BUILD_TESTS="OFF"
+        ARROW_EXTRA_ERROR_CONTEXT="ON"
+        ARROW_WITH_RE2="OFF"
+        ARROW_WITH_UTF8PROC="OFF"
+        CMAKE_BUILD_TYPE="Debug"
+
+      -- Building using CMake version: 3.21.3
+      [ etc. ]
+
+and then ask to compile the build targets:
+
+.. code-block:: shell
+
+   $ cmake --build .

Review comment:
       OK, I understand, but I just want to give the feedback that we should try to be consistent with those things (or explain what it is equivalent to, since we use something else lower down in the text). Building C++ / CMake is already quite confusing, so we try to be as clear as possible :)




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] ursabot edited a comment on pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
ursabot edited a comment on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-983989131


   Benchmark runs are scheduled for baseline = 704d123d0e00e88b4d0ad28d2f193ea20e54f7e3 and contender = 200f1679f9837a83b105ba081f31ca47cbe22de1. 200f1679f9837a83b105ba081f31ca47cbe22de1 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
   Conbench compare runs links:
   [Finished :arrow_down:0.0% :arrow_up:0.0%] [ec2-t3-xlarge-us-east-2](https://conbench.ursa.dev/compare/runs/9e127d5483ce49a698eb07f625ba8502...a8779635087d4dca91f81e1b36c31064/)
   [Scheduled] [ursa-i9-9960x](https://conbench.ursa.dev/compare/runs/fc9c4d4cbc37410183cbcc02b8650c54...261584bbf92946cdad09914abd83954a/)
   [Finished :arrow_down:0.53% :arrow_up:0.0%] [ursa-thinkcentre-m75q](https://conbench.ursa.dev/compare/runs/f54d71eca2ee44d2a3732c07c6d2d258...84b1c177605b4549b54e8e8c4a09ed54/)
   Supported benchmarks:
   ursa-i9-9960x: langs = Python, R, JavaScript
   ursa-thinkcentre-m75q: langs = C++, Java
   ec2-t3-xlarge-us-east-2: cloud = True
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
pitrou commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-979411194


   We could perhaps further categorize by having separate "debug" and "tests" build (the former with tests disabled), but I'm not sure how useful that would be. It's probably rare to make a debug build if not for testing Arrow.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
pitrou commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-983703565


   Any concerns with merging this?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs closed pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
kszucs closed pull request #11778:
URL: https://github.com/apache/arrow/pull/11778


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] github-actions[bot] commented on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-979406658


   https://issues.apache.org/jira/browse/ARROW-14714


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorisvandenbossche commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
jorisvandenbossche commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r761008478



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -145,45 +238,34 @@ Minimal release build (1GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow/cpp
-   mkdir release
-   cd release
-   cmake ..
-   make
+   $ mkdir build-release
+   $ cd build-release
+   $ cmake ..
+   $ make -j8       # if you have 8 CPU cores, otherwise adjust
 
 Minimal debug build with unit tests (4GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow
-   git submodule update --init --recursive
-   export ARROW_TEST_DATA=$PWD/testing/data
-   cd cpp
-   mkdir debug
-   cd debug
-   cmake -DCMAKE_BUILD_TYPE=Debug -DARROW_BUILD_TESTS=ON ..
-   make unittest
+   $ git submodule update --init --recursive

Review comment:
       Apparently, sphinx actually already supports having a `$` not copy-pastable out of the box (see eg https://pydata-sphinx-theme.readthedocs.io/en/latest/contributing.html#set-up-a-basic-development-environment), I _think_ it's a matter of specifying the correct highlighting language for the code blocks (`console` was used in the case of the linked example)




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] ursabot edited a comment on pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
ursabot edited a comment on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-983989131


   Benchmark runs are scheduled for baseline = 704d123d0e00e88b4d0ad28d2f193ea20e54f7e3 and contender = 200f1679f9837a83b105ba081f31ca47cbe22de1. 200f1679f9837a83b105ba081f31ca47cbe22de1 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
   Conbench compare runs links:
   [Finished :arrow_down:0.0% :arrow_up:0.0%] [ec2-t3-xlarge-us-east-2](https://conbench.ursa.dev/compare/runs/9e127d5483ce49a698eb07f625ba8502...a8779635087d4dca91f81e1b36c31064/)
   [Scheduled] [ursa-i9-9960x](https://conbench.ursa.dev/compare/runs/fc9c4d4cbc37410183cbcc02b8650c54...261584bbf92946cdad09914abd83954a/)
   [Scheduled] [ursa-thinkcentre-m75q](https://conbench.ursa.dev/compare/runs/f54d71eca2ee44d2a3732c07c6d2d258...84b1c177605b4549b54e8e8c4a09ed54/)
   Supported benchmarks:
   ursa-i9-9960x: langs = Python, R, JavaScript
   ursa-thinkcentre-m75q: langs = C++, Java
   ec2-t3-xlarge-us-east-2: cloud = True
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
pitrou commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-979414114


   Also cc @lidavidm 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
kszucs commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-981649503


   Then we should run a sanity check that the json configuration is valid, e.g. run `cmake --list-presets` somewhere.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorisvandenbossche commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
jorisvandenbossche commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r759946404



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -121,6 +121,99 @@ On MSYS2:
 Building
 ========
 
+All the instructions below assume that you have cloned the Arrow git
+repository and navigated to the ``cpp`` subdirectory:
+
+.. code-block:: shell
+
+   $ git clone https://github.com/apache/arrow.git
+   $ cd arrow/cpp
+
+CMake presets
+-------------
+
+Using CMake version 3.21.0 or higher, some presets for various build
+configurations are provided.  You can get a list of the available presets
+using ``cmake --list-presets``:
+
+.. code-block:: shell
+
+   $ cmake --list-presets
+   Available configure presets:
+
+     "ninja-debug-minimal"     - Debug build without anything enabled
+     "ninja-debug-basic"       - Debug build with tests and reduced dependencies
+     "ninja-debug"             - Debug build with tests and more optional components
+      [ etc. ]
+
+You can inspect the specific options enabled by a given preset using
+``cmake -N --preset <preset name>``:
+
+.. code-block:: shell
+
+   $ cmake --preset -N ninja-debug-minimal
+   Preset CMake variables:
+
+     ARROW_BUILD_INTEGRATION="OFF"
+     ARROW_BUILD_STATIC="OFF"
+     ARROW_BUILD_TESTS="OFF"
+     ARROW_EXTRA_ERROR_CONTEXT="ON"
+     ARROW_WITH_RE2="OFF"
+     ARROW_WITH_UTF8PROC="OFF"
+     CMAKE_BUILD_TYPE="Debug"
+
+You can also create a build from a given preset:
+
+.. code-block:: shell
+
+   $ mkdir build
+   $ cd build
+   $ cmake .. --preset ninja-debug-minimal
+      Preset CMake variables:
+
+        ARROW_BUILD_INTEGRATION="OFF"
+        ARROW_BUILD_STATIC="OFF"
+        ARROW_BUILD_TESTS="OFF"
+        ARROW_EXTRA_ERROR_CONTEXT="ON"
+        ARROW_WITH_RE2="OFF"
+        ARROW_WITH_UTF8PROC="OFF"
+        CMAKE_BUILD_TYPE="Debug"
+
+      -- Building using CMake version: 3.21.3
+      [ etc. ]
+
+and then ask to compile the build targets:
+
+.. code-block:: shell
+
+   $ cmake --build .

Review comment:
       Is this `cmake --build` something presets specific? (in other parts of the docs I think we mention to do the `make` and `make install` combo)

##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -145,45 +238,34 @@ Minimal release build (1GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow/cpp
-   mkdir release
-   cd release
-   cmake ..
-   make
+   $ mkdir build-release

Review comment:
       I know you added on top that all instructions assume you navigated to `arrow/cpp`, but I think it might be worth repeating this a few times at least when creating a new directory (eg could add a comment on the same line like `# inside arrow/cpp directory`)
   
   

##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -121,6 +121,99 @@ On MSYS2:
 Building
 ========
 
+All the instructions below assume that you have cloned the Arrow git
+repository and navigated to the ``cpp`` subdirectory:
+
+.. code-block:: shell
+
+   $ git clone https://github.com/apache/arrow.git
+   $ cd arrow/cpp
+
+CMake presets
+-------------
+
+Using CMake version 3.21.0 or higher, some presets for various build
+configurations are provided.  You can get a list of the available presets
+using ``cmake --list-presets``:
+
+.. code-block:: shell
+
+   $ cmake --list-presets
+   Available configure presets:
+
+     "ninja-debug-minimal"     - Debug build without anything enabled
+     "ninja-debug-basic"       - Debug build with tests and reduced dependencies
+     "ninja-debug"             - Debug build with tests and more optional components
+      [ etc. ]
+
+You can inspect the specific options enabled by a given preset using
+``cmake -N --preset <preset name>``:
+
+.. code-block:: shell
+
+   $ cmake --preset -N ninja-debug-minimal
+   Preset CMake variables:
+
+     ARROW_BUILD_INTEGRATION="OFF"
+     ARROW_BUILD_STATIC="OFF"
+     ARROW_BUILD_TESTS="OFF"
+     ARROW_EXTRA_ERROR_CONTEXT="ON"
+     ARROW_WITH_RE2="OFF"
+     ARROW_WITH_UTF8PROC="OFF"
+     CMAKE_BUILD_TYPE="Debug"
+
+You can also create a build from a given preset:
+
+.. code-block:: shell
+
+   $ mkdir build
+   $ cd build
+   $ cmake .. --preset ninja-debug-minimal

Review comment:
       Is there a way you can combine a preset with some additional manual config options? (eg in practice you will most of the time also have to specify for example DCMAKE_INSTALL_PREFIX, or for example specifying the dependency source?)

##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -145,45 +238,34 @@ Minimal release build (1GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow/cpp
-   mkdir release
-   cd release
-   cmake ..
-   make
+   $ mkdir build-release
+   $ cd build-release
+   $ cmake ..
+   $ make -j8       # if you have 8 CPU cores, otherwise adjust
 
 Minimal debug build with unit tests (4GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow
-   git submodule update --init --recursive
-   export ARROW_TEST_DATA=$PWD/testing/data
-   cd cpp
-   mkdir debug
-   cd debug
-   cmake -DCMAKE_BUILD_TYPE=Debug -DARROW_BUILD_TESTS=ON ..
-   make unittest
+   $ git submodule update --init --recursive

Review comment:
       When giving tutorials, I have noticed that many beginners don't necessarily know the meaning of `$` as signaling "this is on the prompt" (I also think that not all platforms / consoles actually use this symbol?) So I have been actively removing it from instructions (because otherwise people naively copy this line from the docs, and get an error about $). 
   
   If we could make the `$` non-copy-pastable, that would be a nice combination I think.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
pitrou commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r759977365



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -145,45 +238,34 @@ Minimal release build (1GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow/cpp
-   mkdir release
-   cd release
-   cmake ..
-   make
+   $ mkdir build-release
+   $ cd build-release
+   $ cmake ..
+   $ make -j8       # if you have 8 CPU cores, otherwise adjust
 
 Minimal debug build with unit tests (4GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow
-   git submodule update --init --recursive
-   export ARROW_TEST_DATA=$PWD/testing/data
-   cd cpp
-   mkdir debug
-   cd debug
-   cmake -DCMAKE_BUILD_TYPE=Debug -DARROW_BUILD_TESTS=ON ..
-   make unittest
+   $ git submodule update --init --recursive

Review comment:
       Hmm, I didn't know this confused beginners. I do think it is a nice cue that something is happening at the command prompt, and it also allows to distinguish commands and their output.
   
   How many people building Arrow C++ would be confused about this, though?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] 9prady9 commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
9prady9 commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r759966438



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -121,6 +121,99 @@ On MSYS2:
 Building
 ========
 
+All the instructions below assume that you have cloned the Arrow git
+repository and navigated to the ``cpp`` subdirectory:
+
+.. code-block:: shell
+
+   $ git clone https://github.com/apache/arrow.git
+   $ cd arrow/cpp
+
+CMake presets
+-------------
+
+Using CMake version 3.21.0 or higher, some presets for various build
+configurations are provided.  You can get a list of the available presets
+using ``cmake --list-presets``:
+
+.. code-block:: shell
+
+   $ cmake --list-presets
+   Available configure presets:
+
+     "ninja-debug-minimal"     - Debug build without anything enabled
+     "ninja-debug-basic"       - Debug build with tests and reduced dependencies
+     "ninja-debug"             - Debug build with tests and more optional components
+      [ etc. ]
+
+You can inspect the specific options enabled by a given preset using
+``cmake -N --preset <preset name>``:
+
+.. code-block:: shell
+
+   $ cmake --preset -N ninja-debug-minimal
+   Preset CMake variables:
+
+     ARROW_BUILD_INTEGRATION="OFF"
+     ARROW_BUILD_STATIC="OFF"
+     ARROW_BUILD_TESTS="OFF"
+     ARROW_EXTRA_ERROR_CONTEXT="ON"
+     ARROW_WITH_RE2="OFF"
+     ARROW_WITH_UTF8PROC="OFF"
+     CMAKE_BUILD_TYPE="Debug"
+
+You can also create a build from a given preset:
+
+.. code-block:: shell
+
+   $ mkdir build
+   $ cd build
+   $ cmake .. --preset ninja-debug-minimal

Review comment:
       One can still do that with presets i.e `cmake .. --preset ninja-debug-minimal -DCMAKE_BUILD_TYPE:STRING=Release` will override build type. Command line options take precendence




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorisvandenbossche commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
jorisvandenbossche commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r761014315



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -121,6 +121,99 @@ On MSYS2:
 Building
 ========
 
+All the instructions below assume that you have cloned the Arrow git
+repository and navigated to the ``cpp`` subdirectory:
+
+.. code-block:: shell
+
+   $ git clone https://github.com/apache/arrow.git
+   $ cd arrow/cpp
+
+CMake presets
+-------------
+
+Using CMake version 3.21.0 or higher, some presets for various build
+configurations are provided.  You can get a list of the available presets
+using ``cmake --list-presets``:
+
+.. code-block:: shell
+
+   $ cmake --list-presets
+   Available configure presets:
+
+     "ninja-debug-minimal"     - Debug build without anything enabled
+     "ninja-debug-basic"       - Debug build with tests and reduced dependencies
+     "ninja-debug"             - Debug build with tests and more optional components
+      [ etc. ]
+
+You can inspect the specific options enabled by a given preset using
+``cmake -N --preset <preset name>``:
+
+.. code-block:: shell
+
+   $ cmake --preset -N ninja-debug-minimal
+   Preset CMake variables:
+
+     ARROW_BUILD_INTEGRATION="OFF"
+     ARROW_BUILD_STATIC="OFF"
+     ARROW_BUILD_TESTS="OFF"
+     ARROW_EXTRA_ERROR_CONTEXT="ON"
+     ARROW_WITH_RE2="OFF"
+     ARROW_WITH_UTF8PROC="OFF"
+     CMAKE_BUILD_TYPE="Debug"
+
+You can also create a build from a given preset:
+
+.. code-block:: shell
+
+   $ mkdir build
+   $ cd build
+   $ cmake .. --preset ninja-debug-minimal
+      Preset CMake variables:
+
+        ARROW_BUILD_INTEGRATION="OFF"
+        ARROW_BUILD_STATIC="OFF"
+        ARROW_BUILD_TESTS="OFF"
+        ARROW_EXTRA_ERROR_CONTEXT="ON"
+        ARROW_WITH_RE2="OFF"
+        ARROW_WITH_UTF8PROC="OFF"
+        CMAKE_BUILD_TYPE="Debug"
+
+      -- Building using CMake version: 3.21.3
+      [ etc. ]
+
+and then ask to compile the build targets:
+
+.. code-block:: shell
+
+   $ cmake --build .

Review comment:
       I find it a bit confusing to use here a different way to build than in the rest of our documentation. 
   
   It's also not yet clear to me what `cmake --build .` exactly does. Is it equivalent to running `make`?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
pitrou commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r761308104



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -121,6 +121,99 @@ On MSYS2:
 Building
 ========
 
+All the instructions below assume that you have cloned the Arrow git
+repository and navigated to the ``cpp`` subdirectory:
+
+.. code-block:: shell
+
+   $ git clone https://github.com/apache/arrow.git
+   $ cd arrow/cpp
+
+CMake presets
+-------------
+
+Using CMake version 3.21.0 or higher, some presets for various build
+configurations are provided.  You can get a list of the available presets
+using ``cmake --list-presets``:
+
+.. code-block:: shell
+
+   $ cmake --list-presets
+   Available configure presets:
+
+     "ninja-debug-minimal"     - Debug build without anything enabled
+     "ninja-debug-basic"       - Debug build with tests and reduced dependencies
+     "ninja-debug"             - Debug build with tests and more optional components
+      [ etc. ]
+
+You can inspect the specific options enabled by a given preset using
+``cmake -N --preset <preset name>``:
+
+.. code-block:: shell
+
+   $ cmake --preset -N ninja-debug-minimal
+   Preset CMake variables:
+
+     ARROW_BUILD_INTEGRATION="OFF"
+     ARROW_BUILD_STATIC="OFF"
+     ARROW_BUILD_TESTS="OFF"
+     ARROW_EXTRA_ERROR_CONTEXT="ON"
+     ARROW_WITH_RE2="OFF"
+     ARROW_WITH_UTF8PROC="OFF"
+     CMAKE_BUILD_TYPE="Debug"
+
+You can also create a build from a given preset:
+
+.. code-block:: shell
+
+   $ mkdir build
+   $ cd build
+   $ cmake .. --preset ninja-debug-minimal
+      Preset CMake variables:
+
+        ARROW_BUILD_INTEGRATION="OFF"
+        ARROW_BUILD_STATIC="OFF"
+        ARROW_BUILD_TESTS="OFF"
+        ARROW_EXTRA_ERROR_CONTEXT="ON"
+        ARROW_WITH_RE2="OFF"
+        ARROW_WITH_UTF8PROC="OFF"
+        CMAKE_BUILD_TYPE="Debug"
+
+      -- Building using CMake version: 3.21.3
+      [ etc. ]
+
+and then ask to compile the build targets:
+
+.. code-block:: shell
+
+   $ cmake --build .

Review comment:
       Hmm, can you add a JIRA for that? We can then decide on which convention we want to settle in the docs.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
kszucs commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r760465560



##########
File path: .github/workflows/cpp.yml
##########
@@ -113,6 +113,23 @@ jobs:
           cd cpp/examples/minimal_build
           docker-compose run --rm minimal
 
+  cmake-checks:
+    name: CMake checks
+    runs-on: ubuntu-latest
+    if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
+    timeout-minutes: 5
+    strategy:
+      fail-fast: false
+    steps:
+      - name: Checkout Arrow
+        uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+      - name: Run
+        run: |
+          cd cpp
+          cmake --list-presets

Review comment:
       @pitrou could we call this from one of the existing C++ build so we don't need to run an additional build? Perhaps from build-example or the macos one.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
pitrou commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r760467282



##########
File path: .github/workflows/cpp.yml
##########
@@ -113,6 +113,23 @@ jobs:
           cd cpp/examples/minimal_build
           docker-compose run --rm minimal
 
+  cmake-checks:
+    name: CMake checks
+    runs-on: ubuntu-latest
+    if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
+    timeout-minutes: 5
+    strategy:
+      fail-fast: false
+    steps:
+      - name: Checkout Arrow
+        uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+      - name: Run
+        run: |
+          cd cpp
+          cmake --list-presets

Review comment:
       If you prefer, though the additional build takes 10 seconds.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
kszucs commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-981645939


   > > Shall we add nightly builds for these presets?
   > 
   > How many additional nightly builds would that add for little value?
   
   Not necessarily new builds. I assume there should be some overlap, so we could replace older ones with presets.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] 9prady9 commented on a change in pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
9prady9 commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r757190086



##########
File path: cpp/CMakePresets.json
##########
@@ -1,165 +1,231 @@
-{
-  "version": 2,
-  "cmakeMinimumRequired": {
-    "major": 3,
-    "minor": 20,
-    "patch": 0
-  },
-  "configurePresets": [
-    {
-      "name": "ninja-benchmarks",
-      "description": "Build for benchmarks",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_BUILD_BENCHMARKS": "ON",
-        "ARROW_BUILD_BENCHMARKS_REFERENCE": "ON",
-        "ARROW_BUILD_TESTS": "OFF"
-      }
-    },
-    {
-      "name": "ninja-debug",
-      "description": "Debug configuration with basic build",
-      "binaryDir": "${sourceDir}/build/${presetName}",
-      "generator": "Ninja",
-      "cacheVariables": {
-        "ARROW_BUILD_BENCHMARKS": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_BUILD_TESTS": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_COMPUTE": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_CSV": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_CUDA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_DATASET": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA_JAVA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA_JNI": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_FILESYSTEM": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_IPC": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_PARQUET": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_PLASMA_JAVA_CLIENT": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_PYTHON": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_SKYHOOK": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_WITH_RE2": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "CMAKE_BUILD_TYPE": {
-          "type": "String",
-          "value": "Debug"
-        },
-        "CMAKE_INSTALL_PREFIX": {
-          "type": "PATH",
-          "value": "${sourceDir}/build/${presetName}/pkg"
-        }
-      }
-    },
-    {
-      "name": "ninja-debug-cuda",
-      "description": "Debug Arrow build with CUDA extensions (requires CUDA toolkit)",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_CUDA": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-dataset",
-      "description": "Builds Arrow Dataset modules",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_DATASET": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-gandiva",
-      "description": "Builds Gandiva libraries",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_GANDIVA": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-parquet",
-      "description": "Builds Parquet libraries",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_PARQUET": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-skyhook",
-      "description": "Builds Skyhook libraries",
-
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_SKYHOOK": "ON"
-      }
-    },
-    {
-      "name": "ninja-release",
-      "description": "Release configuration",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "CMAKE_BUILD_TYPE": "Release"
-      }
-    },
-    {
-      "name": "ninja-release-gandiva",
-      "description": "Release configuration with Gandiva",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_GANDIVA": "ON"
-      }
-    },
-    {
-      "name": "ninja-release-parquet",
-      "description": "Release configuration with Parquet",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_PARQUET": "ON"
-      }
-    }
-  ]
-}
+{
+  "version": 3,
+  "cmakeMinimumRequired": {
+    "major": 3,
+    "minor": 21,
+    "patch": 0
+  },
+  "configurePresets": [
+    {
+      "name": "ninja-debug-minimal",
+      "displayName": "Debug build without anything enabled",
+      "generator": "Ninja",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_STATIC": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "ON",
+        "ARROW_WITH_RE2": "OFF",
+        "ARROW_WITH_UTF8PROC": "OFF",
+        "CMAKE_BUILD_TYPE": "Debug"
+      }
+    },
+    {
+      "name": "ninja-debug-basic",
+      "inherits": "ninja-debug-minimal",
+      "displayName": "Debug build with tests and reduced dependencies",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "ON",
+        "ARROW_BUILD_TESTS": "ON",
+        "ARROW_COMPUTE": "ON",
+        "ARROW_CSV": "ON",
+        "ARROW_DATASET": "ON",
+        "ARROW_EXTRA_ERROR_CONTEXT": "ON",
+        "ARROW_FILESYSTEM": "ON",
+        "ARROW_JSON": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and more optional components",
+      "cacheVariables": {
+        "ARROW_ENGINE": "ON",
+        "ARROW_MIMALLOC": "ON",
+        "ARROW_PARQUET": "ON",
+        "ARROW_WITH_BROTLI": "ON",
+        "ARROW_WITH_BZ2": "ON",
+        "ARROW_WITH_LZ4": "ON",
+        "ARROW_WITH_RE2": "ON",
+        "ARROW_WITH_SNAPPY": "ON",
+        "ARROW_WITH_UTF8PROC": "ON",
+        "ARROW_WITH_ZLIB": "ON",
+        "ARROW_WITH_ZSTD": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-cuda",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and CUDA integration",
+      "cacheVariables": {
+        "ARROW_CUDA": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-filesystems",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and filesystems",
+      "cacheVariables": {
+        "ARROW_GCS": "ON",
+        "ARROW_HDFS": "ON",
+        "ARROW_S3": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-flight",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Flight",
+      "cacheVariables": {
+        "ARROW_FLIGHT": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-gandiva",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Gandiva",
+      "cacheVariables": {
+        "ARROW_GANDIVA": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-python",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Python support",
+      "cacheVariables": {
+        "ARROW_PYTHON": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-maximal",
+      "inherits": "ninja-debug",
+      "displayName": "Debug build with everything enabled (except benchmarks and CUDA)",
+      "cacheVariables": {
+        "ARROW_BUILD_EXAMPLES": "ON",
+        "ARROW_BUILD_UTILITIES": "ON",
+        "ARROW_FLIGHT": "ON",
+        "ARROW_GANDIVA": "ON",
+        "ARROW_GCS": "ON",
+        "ARROW_HDFS": "ON",
+        "ARROW_HIVESERVER2": "ON",
+        "ARROW_ORC": "ON",
+        "ARROW_PLASMA": "ON",
+        "ARROW_PYTHON": "ON",
+        "ARROW_S3": "ON",
+        "ARROW_SKYHOOK": "ON",
+        "ARROW_TENSORFLOW": "ON",
+        "PARQUET_BUILD_EXAMPLES": "ON",
+        "PARQUET_BUILD_EXECUTABLES": "ON",
+        "PARQUET_REQUIRE_ENCRYPTION": "ON"
+      }
+    },
+
+    {
+      "name": "ninja-release-minimal",
+      "inherits": "ninja-debug-minimal",
+      "displayName": "Release build without anything enabled",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",

Review comment:
       This is already specified in parent unless the parent has it set to `OFF` incorrectly.

##########
File path: cpp/CMakePresets.json
##########
@@ -1,165 +1,231 @@
-{
-  "version": 2,
-  "cmakeMinimumRequired": {
-    "major": 3,
-    "minor": 20,
-    "patch": 0
-  },
-  "configurePresets": [
-    {
-      "name": "ninja-benchmarks",
-      "description": "Build for benchmarks",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_BUILD_BENCHMARKS": "ON",
-        "ARROW_BUILD_BENCHMARKS_REFERENCE": "ON",
-        "ARROW_BUILD_TESTS": "OFF"
-      }
-    },
-    {
-      "name": "ninja-debug",
-      "description": "Debug configuration with basic build",
-      "binaryDir": "${sourceDir}/build/${presetName}",
-      "generator": "Ninja",
-      "cacheVariables": {
-        "ARROW_BUILD_BENCHMARKS": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_BUILD_TESTS": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_COMPUTE": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_CSV": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_CUDA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_DATASET": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA_JAVA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA_JNI": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_FILESYSTEM": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_IPC": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_PARQUET": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_PLASMA_JAVA_CLIENT": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_PYTHON": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_SKYHOOK": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_WITH_RE2": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "CMAKE_BUILD_TYPE": {
-          "type": "String",
-          "value": "Debug"
-        },
-        "CMAKE_INSTALL_PREFIX": {
-          "type": "PATH",
-          "value": "${sourceDir}/build/${presetName}/pkg"
-        }
-      }
-    },
-    {
-      "name": "ninja-debug-cuda",
-      "description": "Debug Arrow build with CUDA extensions (requires CUDA toolkit)",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_CUDA": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-dataset",
-      "description": "Builds Arrow Dataset modules",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_DATASET": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-gandiva",
-      "description": "Builds Gandiva libraries",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_GANDIVA": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-parquet",
-      "description": "Builds Parquet libraries",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_PARQUET": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-skyhook",
-      "description": "Builds Skyhook libraries",
-
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_SKYHOOK": "ON"
-      }
-    },
-    {
-      "name": "ninja-release",
-      "description": "Release configuration",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "CMAKE_BUILD_TYPE": "Release"
-      }
-    },
-    {
-      "name": "ninja-release-gandiva",
-      "description": "Release configuration with Gandiva",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_GANDIVA": "ON"
-      }
-    },
-    {
-      "name": "ninja-release-parquet",
-      "description": "Release configuration with Parquet",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_PARQUET": "ON"
-      }
-    }
-  ]
-}
+{
+  "version": 3,
+  "cmakeMinimumRequired": {
+    "major": 3,
+    "minor": 21,
+    "patch": 0
+  },
+  "configurePresets": [
+    {
+      "name": "ninja-debug-minimal",
+      "displayName": "Debug build without anything enabled",
+      "generator": "Ninja",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_STATIC": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "ON",
+        "ARROW_WITH_RE2": "OFF",
+        "ARROW_WITH_UTF8PROC": "OFF",
+        "CMAKE_BUILD_TYPE": "Debug"
+      }
+    },
+    {
+      "name": "ninja-debug-basic",
+      "inherits": "ninja-debug-minimal",
+      "displayName": "Debug build with tests and reduced dependencies",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "ON",
+        "ARROW_BUILD_TESTS": "ON",
+        "ARROW_COMPUTE": "ON",
+        "ARROW_CSV": "ON",
+        "ARROW_DATASET": "ON",
+        "ARROW_EXTRA_ERROR_CONTEXT": "ON",
+        "ARROW_FILESYSTEM": "ON",
+        "ARROW_JSON": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and more optional components",
+      "cacheVariables": {
+        "ARROW_ENGINE": "ON",
+        "ARROW_MIMALLOC": "ON",
+        "ARROW_PARQUET": "ON",
+        "ARROW_WITH_BROTLI": "ON",
+        "ARROW_WITH_BZ2": "ON",
+        "ARROW_WITH_LZ4": "ON",
+        "ARROW_WITH_RE2": "ON",
+        "ARROW_WITH_SNAPPY": "ON",
+        "ARROW_WITH_UTF8PROC": "ON",
+        "ARROW_WITH_ZLIB": "ON",
+        "ARROW_WITH_ZSTD": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-cuda",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and CUDA integration",
+      "cacheVariables": {
+        "ARROW_CUDA": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-filesystems",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and filesystems",
+      "cacheVariables": {
+        "ARROW_GCS": "ON",
+        "ARROW_HDFS": "ON",
+        "ARROW_S3": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-flight",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Flight",
+      "cacheVariables": {
+        "ARROW_FLIGHT": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-gandiva",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Gandiva",
+      "cacheVariables": {
+        "ARROW_GANDIVA": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-python",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Python support",
+      "cacheVariables": {
+        "ARROW_PYTHON": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-maximal",
+      "inherits": "ninja-debug",
+      "displayName": "Debug build with everything enabled (except benchmarks and CUDA)",
+      "cacheVariables": {
+        "ARROW_BUILD_EXAMPLES": "ON",
+        "ARROW_BUILD_UTILITIES": "ON",
+        "ARROW_FLIGHT": "ON",
+        "ARROW_GANDIVA": "ON",
+        "ARROW_GCS": "ON",
+        "ARROW_HDFS": "ON",
+        "ARROW_HIVESERVER2": "ON",
+        "ARROW_ORC": "ON",
+        "ARROW_PLASMA": "ON",
+        "ARROW_PYTHON": "ON",
+        "ARROW_S3": "ON",
+        "ARROW_SKYHOOK": "ON",
+        "ARROW_TENSORFLOW": "ON",
+        "PARQUET_BUILD_EXAMPLES": "ON",
+        "PARQUET_BUILD_EXECUTABLES": "ON",
+        "PARQUET_REQUIRE_ENCRYPTION": "ON"
+      }
+    },
+
+    {
+      "name": "ninja-release-minimal",
+      "inherits": "ninja-debug-minimal",
+      "displayName": "Release build without anything enabled",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release-basic",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Release build with reduced dependencies",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release",
+      "inherits": "ninja-debug",
+      "displayName": "Release build with more optional components",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release-cuda",
+      "inherits": "ninja-debug-cuda",
+      "displayName": "Release build with CUDA integration",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"

Review comment:
       Even here we can inherit from two I think: `ninja-debug-cuda` and `ninja-reelase-basic`

##########
File path: cpp/CMakePresets.json
##########
@@ -1,165 +1,231 @@
-{
-  "version": 2,
-  "cmakeMinimumRequired": {
-    "major": 3,
-    "minor": 20,
-    "patch": 0
-  },
-  "configurePresets": [
-    {
-      "name": "ninja-benchmarks",
-      "description": "Build for benchmarks",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_BUILD_BENCHMARKS": "ON",
-        "ARROW_BUILD_BENCHMARKS_REFERENCE": "ON",
-        "ARROW_BUILD_TESTS": "OFF"
-      }
-    },
-    {
-      "name": "ninja-debug",
-      "description": "Debug configuration with basic build",
-      "binaryDir": "${sourceDir}/build/${presetName}",
-      "generator": "Ninja",
-      "cacheVariables": {
-        "ARROW_BUILD_BENCHMARKS": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_BUILD_TESTS": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_COMPUTE": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_CSV": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_CUDA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_DATASET": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA_JAVA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA_JNI": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_FILESYSTEM": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_IPC": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_PARQUET": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_PLASMA_JAVA_CLIENT": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_PYTHON": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_SKYHOOK": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_WITH_RE2": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "CMAKE_BUILD_TYPE": {
-          "type": "String",
-          "value": "Debug"
-        },
-        "CMAKE_INSTALL_PREFIX": {
-          "type": "PATH",
-          "value": "${sourceDir}/build/${presetName}/pkg"
-        }
-      }
-    },
-    {
-      "name": "ninja-debug-cuda",
-      "description": "Debug Arrow build with CUDA extensions (requires CUDA toolkit)",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_CUDA": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-dataset",
-      "description": "Builds Arrow Dataset modules",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_DATASET": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-gandiva",
-      "description": "Builds Gandiva libraries",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_GANDIVA": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-parquet",
-      "description": "Builds Parquet libraries",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_PARQUET": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-skyhook",
-      "description": "Builds Skyhook libraries",
-
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_SKYHOOK": "ON"
-      }
-    },
-    {
-      "name": "ninja-release",
-      "description": "Release configuration",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "CMAKE_BUILD_TYPE": "Release"
-      }
-    },
-    {
-      "name": "ninja-release-gandiva",
-      "description": "Release configuration with Gandiva",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_GANDIVA": "ON"
-      }
-    },
-    {
-      "name": "ninja-release-parquet",
-      "description": "Release configuration with Parquet",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_PARQUET": "ON"
-      }
-    }
-  ]
-}
+{
+  "version": 3,
+  "cmakeMinimumRequired": {
+    "major": 3,
+    "minor": 21,
+    "patch": 0
+  },
+  "configurePresets": [
+    {
+      "name": "ninja-debug-minimal",
+      "displayName": "Debug build without anything enabled",
+      "generator": "Ninja",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_STATIC": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "ON",
+        "ARROW_WITH_RE2": "OFF",
+        "ARROW_WITH_UTF8PROC": "OFF",
+        "CMAKE_BUILD_TYPE": "Debug"
+      }
+    },
+    {
+      "name": "ninja-debug-basic",
+      "inherits": "ninja-debug-minimal",
+      "displayName": "Debug build with tests and reduced dependencies",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "ON",
+        "ARROW_BUILD_TESTS": "ON",
+        "ARROW_COMPUTE": "ON",
+        "ARROW_CSV": "ON",
+        "ARROW_DATASET": "ON",
+        "ARROW_EXTRA_ERROR_CONTEXT": "ON",

Review comment:
       Parent preset has the same value, we can avoid this here.

##########
File path: cpp/CMakePresets.json
##########
@@ -1,165 +1,231 @@
-{
-  "version": 2,
-  "cmakeMinimumRequired": {
-    "major": 3,
-    "minor": 20,
-    "patch": 0
-  },
-  "configurePresets": [
-    {
-      "name": "ninja-benchmarks",
-      "description": "Build for benchmarks",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_BUILD_BENCHMARKS": "ON",
-        "ARROW_BUILD_BENCHMARKS_REFERENCE": "ON",
-        "ARROW_BUILD_TESTS": "OFF"
-      }
-    },
-    {
-      "name": "ninja-debug",
-      "description": "Debug configuration with basic build",
-      "binaryDir": "${sourceDir}/build/${presetName}",
-      "generator": "Ninja",
-      "cacheVariables": {
-        "ARROW_BUILD_BENCHMARKS": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_BUILD_TESTS": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_COMPUTE": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_CSV": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_CUDA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_DATASET": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA_JAVA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA_JNI": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_FILESYSTEM": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_IPC": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_PARQUET": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_PLASMA_JAVA_CLIENT": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_PYTHON": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_SKYHOOK": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_WITH_RE2": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "CMAKE_BUILD_TYPE": {
-          "type": "String",
-          "value": "Debug"
-        },
-        "CMAKE_INSTALL_PREFIX": {
-          "type": "PATH",
-          "value": "${sourceDir}/build/${presetName}/pkg"
-        }
-      }
-    },
-    {
-      "name": "ninja-debug-cuda",
-      "description": "Debug Arrow build with CUDA extensions (requires CUDA toolkit)",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_CUDA": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-dataset",
-      "description": "Builds Arrow Dataset modules",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_DATASET": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-gandiva",
-      "description": "Builds Gandiva libraries",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_GANDIVA": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-parquet",
-      "description": "Builds Parquet libraries",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_PARQUET": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-skyhook",
-      "description": "Builds Skyhook libraries",
-
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_SKYHOOK": "ON"
-      }
-    },
-    {
-      "name": "ninja-release",
-      "description": "Release configuration",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "CMAKE_BUILD_TYPE": "Release"
-      }
-    },
-    {
-      "name": "ninja-release-gandiva",
-      "description": "Release configuration with Gandiva",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_GANDIVA": "ON"
-      }
-    },
-    {
-      "name": "ninja-release-parquet",
-      "description": "Release configuration with Parquet",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_PARQUET": "ON"
-      }
-    }
-  ]
-}
+{
+  "version": 3,
+  "cmakeMinimumRequired": {
+    "major": 3,
+    "minor": 21,
+    "patch": 0
+  },
+  "configurePresets": [
+    {
+      "name": "ninja-debug-minimal",
+      "displayName": "Debug build without anything enabled",
+      "generator": "Ninja",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_STATIC": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "ON",
+        "ARROW_WITH_RE2": "OFF",
+        "ARROW_WITH_UTF8PROC": "OFF",
+        "CMAKE_BUILD_TYPE": "Debug"
+      }
+    },
+    {
+      "name": "ninja-debug-basic",
+      "inherits": "ninja-debug-minimal",
+      "displayName": "Debug build with tests and reduced dependencies",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "ON",
+        "ARROW_BUILD_TESTS": "ON",
+        "ARROW_COMPUTE": "ON",
+        "ARROW_CSV": "ON",
+        "ARROW_DATASET": "ON",
+        "ARROW_EXTRA_ERROR_CONTEXT": "ON",
+        "ARROW_FILESYSTEM": "ON",
+        "ARROW_JSON": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and more optional components",
+      "cacheVariables": {
+        "ARROW_ENGINE": "ON",
+        "ARROW_MIMALLOC": "ON",
+        "ARROW_PARQUET": "ON",
+        "ARROW_WITH_BROTLI": "ON",
+        "ARROW_WITH_BZ2": "ON",
+        "ARROW_WITH_LZ4": "ON",
+        "ARROW_WITH_RE2": "ON",
+        "ARROW_WITH_SNAPPY": "ON",
+        "ARROW_WITH_UTF8PROC": "ON",
+        "ARROW_WITH_ZLIB": "ON",
+        "ARROW_WITH_ZSTD": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-cuda",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and CUDA integration",
+      "cacheVariables": {
+        "ARROW_CUDA": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-filesystems",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and filesystems",
+      "cacheVariables": {
+        "ARROW_GCS": "ON",
+        "ARROW_HDFS": "ON",
+        "ARROW_S3": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-flight",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Flight",
+      "cacheVariables": {
+        "ARROW_FLIGHT": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-gandiva",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Gandiva",
+      "cacheVariables": {
+        "ARROW_GANDIVA": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-python",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Python support",
+      "cacheVariables": {
+        "ARROW_PYTHON": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-maximal",
+      "inherits": "ninja-debug",
+      "displayName": "Debug build with everything enabled (except benchmarks and CUDA)",
+      "cacheVariables": {
+        "ARROW_BUILD_EXAMPLES": "ON",
+        "ARROW_BUILD_UTILITIES": "ON",
+        "ARROW_FLIGHT": "ON",
+        "ARROW_GANDIVA": "ON",
+        "ARROW_GCS": "ON",
+        "ARROW_HDFS": "ON",
+        "ARROW_HIVESERVER2": "ON",
+        "ARROW_ORC": "ON",
+        "ARROW_PLASMA": "ON",
+        "ARROW_PYTHON": "ON",
+        "ARROW_S3": "ON",
+        "ARROW_SKYHOOK": "ON",
+        "ARROW_TENSORFLOW": "ON",
+        "PARQUET_BUILD_EXAMPLES": "ON",
+        "PARQUET_BUILD_EXECUTABLES": "ON",
+        "PARQUET_REQUIRE_ENCRYPTION": "ON"
+      }
+    },
+
+    {
+      "name": "ninja-release-minimal",
+      "inherits": "ninja-debug-minimal",
+      "displayName": "Release build without anything enabled",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release-basic",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Release build with reduced dependencies",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release",
+      "inherits": "ninja-debug",
+      "displayName": "Release build with more optional components",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release-cuda",
+      "inherits": "ninja-debug-cuda",
+      "displayName": "Release build with CUDA integration",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release-flight",
+      "inherits": "ninja-debug-flight",
+      "displayName": "Release build with Flight",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release-gandiva",
+      "inherits": "ninja-debug-gandiva",
+      "displayName": "Release build with Gandiva",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release-python",
+      "inherits": "ninja-debug-python",
+      "displayName": "Release build with Python support",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release-maximal",
+      "inherits": "ninja-debug-maximal",
+      "displayName": "Release build with everything enabled (except benchmarks and CUDA)",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+
+    {
+      "name": "ninja-benchmarks-basic",
+      "inherits": "ninja-release-basic",
+      "displayName": "Benchmarking build with reduced dependencies",
+      "cacheVariables": {
+        "ARROW_BUILD_BENCHMARKS": "ON",
+        "ARROW_BUILD_BENCHMARKS_REFERENCE": "ON",
+        "CMAKE_BUILD_TYPE": "RelWithDebInfo"
+      }
+    },
+    {
+      "name": "ninja-benchmarks",
+      "inherits": "ninja-release",
+      "displayName": "Benchmarking build with more optional components",
+      "cacheVariables": {
+        "ARROW_BUILD_BENCHMARKS": "ON",
+        "ARROW_BUILD_BENCHMARKS_REFERENCE": "ON",
+        "CMAKE_BUILD_TYPE": "RelWithDebInfo"

Review comment:
       inherit from `ninja-benchmarks-basic` and `ninja-release` and we avoid the variables.

##########
File path: cpp/CMakePresets.json
##########
@@ -1,165 +1,231 @@
-{
-  "version": 2,
-  "cmakeMinimumRequired": {
-    "major": 3,
-    "minor": 20,
-    "patch": 0
-  },
-  "configurePresets": [
-    {
-      "name": "ninja-benchmarks",
-      "description": "Build for benchmarks",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_BUILD_BENCHMARKS": "ON",
-        "ARROW_BUILD_BENCHMARKS_REFERENCE": "ON",
-        "ARROW_BUILD_TESTS": "OFF"
-      }
-    },
-    {
-      "name": "ninja-debug",
-      "description": "Debug configuration with basic build",
-      "binaryDir": "${sourceDir}/build/${presetName}",
-      "generator": "Ninja",
-      "cacheVariables": {
-        "ARROW_BUILD_BENCHMARKS": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_BUILD_TESTS": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_COMPUTE": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_CSV": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_CUDA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_DATASET": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA_JAVA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA_JNI": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_FILESYSTEM": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_IPC": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_PARQUET": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_PLASMA_JAVA_CLIENT": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_PYTHON": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_SKYHOOK": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_WITH_RE2": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "CMAKE_BUILD_TYPE": {
-          "type": "String",
-          "value": "Debug"
-        },
-        "CMAKE_INSTALL_PREFIX": {
-          "type": "PATH",
-          "value": "${sourceDir}/build/${presetName}/pkg"
-        }
-      }
-    },
-    {
-      "name": "ninja-debug-cuda",
-      "description": "Debug Arrow build with CUDA extensions (requires CUDA toolkit)",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_CUDA": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-dataset",
-      "description": "Builds Arrow Dataset modules",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_DATASET": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-gandiva",
-      "description": "Builds Gandiva libraries",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_GANDIVA": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-parquet",
-      "description": "Builds Parquet libraries",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_PARQUET": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-skyhook",
-      "description": "Builds Skyhook libraries",
-
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_SKYHOOK": "ON"
-      }
-    },
-    {
-      "name": "ninja-release",
-      "description": "Release configuration",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "CMAKE_BUILD_TYPE": "Release"
-      }
-    },
-    {
-      "name": "ninja-release-gandiva",
-      "description": "Release configuration with Gandiva",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_GANDIVA": "ON"
-      }
-    },
-    {
-      "name": "ninja-release-parquet",
-      "description": "Release configuration with Parquet",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_PARQUET": "ON"
-      }
-    }
-  ]
-}
+{
+  "version": 3,
+  "cmakeMinimumRequired": {
+    "major": 3,
+    "minor": 21,
+    "patch": 0
+  },
+  "configurePresets": [
+    {
+      "name": "ninja-debug-minimal",
+      "displayName": "Debug build without anything enabled",
+      "generator": "Ninja",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_STATIC": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "ON",
+        "ARROW_WITH_RE2": "OFF",
+        "ARROW_WITH_UTF8PROC": "OFF",
+        "CMAKE_BUILD_TYPE": "Debug"
+      }
+    },
+    {
+      "name": "ninja-debug-basic",
+      "inherits": "ninja-debug-minimal",
+      "displayName": "Debug build with tests and reduced dependencies",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "ON",
+        "ARROW_BUILD_TESTS": "ON",
+        "ARROW_COMPUTE": "ON",
+        "ARROW_CSV": "ON",
+        "ARROW_DATASET": "ON",
+        "ARROW_EXTRA_ERROR_CONTEXT": "ON",
+        "ARROW_FILESYSTEM": "ON",
+        "ARROW_JSON": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and more optional components",
+      "cacheVariables": {
+        "ARROW_ENGINE": "ON",
+        "ARROW_MIMALLOC": "ON",
+        "ARROW_PARQUET": "ON",
+        "ARROW_WITH_BROTLI": "ON",
+        "ARROW_WITH_BZ2": "ON",
+        "ARROW_WITH_LZ4": "ON",
+        "ARROW_WITH_RE2": "ON",
+        "ARROW_WITH_SNAPPY": "ON",
+        "ARROW_WITH_UTF8PROC": "ON",
+        "ARROW_WITH_ZLIB": "ON",
+        "ARROW_WITH_ZSTD": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-cuda",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and CUDA integration",
+      "cacheVariables": {
+        "ARROW_CUDA": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-filesystems",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and filesystems",
+      "cacheVariables": {
+        "ARROW_GCS": "ON",
+        "ARROW_HDFS": "ON",
+        "ARROW_S3": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-flight",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Flight",
+      "cacheVariables": {
+        "ARROW_FLIGHT": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-gandiva",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Gandiva",
+      "cacheVariables": {
+        "ARROW_GANDIVA": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-python",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Python support",
+      "cacheVariables": {
+        "ARROW_PYTHON": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-maximal",
+      "inherits": "ninja-debug",
+      "displayName": "Debug build with everything enabled (except benchmarks and CUDA)",
+      "cacheVariables": {
+        "ARROW_BUILD_EXAMPLES": "ON",
+        "ARROW_BUILD_UTILITIES": "ON",
+        "ARROW_FLIGHT": "ON",
+        "ARROW_GANDIVA": "ON",
+        "ARROW_GCS": "ON",
+        "ARROW_HDFS": "ON",
+        "ARROW_HIVESERVER2": "ON",
+        "ARROW_ORC": "ON",
+        "ARROW_PLASMA": "ON",
+        "ARROW_PYTHON": "ON",
+        "ARROW_S3": "ON",
+        "ARROW_SKYHOOK": "ON",
+        "ARROW_TENSORFLOW": "ON",
+        "PARQUET_BUILD_EXAMPLES": "ON",
+        "PARQUET_BUILD_EXECUTABLES": "ON",
+        "PARQUET_REQUIRE_ENCRYPTION": "ON"
+      }
+    },
+
+    {
+      "name": "ninja-release-minimal",
+      "inherits": "ninja-debug-minimal",
+      "displayName": "Release build without anything enabled",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release-basic",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Release build with reduced dependencies",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release",
+      "inherits": "ninja-debug",
+      "displayName": "Release build with more optional components",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release-cuda",
+      "inherits": "ninja-debug-cuda",
+      "displayName": "Release build with CUDA integration",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"

Review comment:
       Seems like, all the following can use this:
   - ninja-release-flight
   - ninja-release-gandiva
   - ninja-release-python
   - ninja-release-maximal

##########
File path: cpp/CMakePresets.json
##########
@@ -1,165 +1,231 @@
-{
-  "version": 2,
-  "cmakeMinimumRequired": {
-    "major": 3,
-    "minor": 20,
-    "patch": 0
-  },
-  "configurePresets": [
-    {
-      "name": "ninja-benchmarks",
-      "description": "Build for benchmarks",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_BUILD_BENCHMARKS": "ON",
-        "ARROW_BUILD_BENCHMARKS_REFERENCE": "ON",
-        "ARROW_BUILD_TESTS": "OFF"
-      }
-    },
-    {
-      "name": "ninja-debug",
-      "description": "Debug configuration with basic build",
-      "binaryDir": "${sourceDir}/build/${presetName}",
-      "generator": "Ninja",
-      "cacheVariables": {
-        "ARROW_BUILD_BENCHMARKS": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_BUILD_TESTS": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_COMPUTE": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_CSV": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_CUDA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_DATASET": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA_JAVA": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_GANDIVA_JNI": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_FILESYSTEM": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_IPC": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_PARQUET": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_PLASMA_JAVA_CLIENT": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_PYTHON": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "ARROW_SKYHOOK": {
-          "type": "BOOL",
-          "value": "OFF"
-        },
-        "ARROW_WITH_RE2": {
-          "type": "BOOL",
-          "value": "ON"
-        },
-        "CMAKE_BUILD_TYPE": {
-          "type": "String",
-          "value": "Debug"
-        },
-        "CMAKE_INSTALL_PREFIX": {
-          "type": "PATH",
-          "value": "${sourceDir}/build/${presetName}/pkg"
-        }
-      }
-    },
-    {
-      "name": "ninja-debug-cuda",
-      "description": "Debug Arrow build with CUDA extensions (requires CUDA toolkit)",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_CUDA": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-dataset",
-      "description": "Builds Arrow Dataset modules",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_DATASET": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-gandiva",
-      "description": "Builds Gandiva libraries",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_GANDIVA": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-parquet",
-      "description": "Builds Parquet libraries",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_PARQUET": "ON"
-      }
-    },
-    {
-      "name": "ninja-debug-skyhook",
-      "description": "Builds Skyhook libraries",
-
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "ARROW_SKYHOOK": "ON"
-      }
-    },
-    {
-      "name": "ninja-release",
-      "description": "Release configuration",
-      "inherits": "ninja-debug",
-      "cacheVariables": {
-        "CMAKE_BUILD_TYPE": "Release"
-      }
-    },
-    {
-      "name": "ninja-release-gandiva",
-      "description": "Release configuration with Gandiva",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_GANDIVA": "ON"
-      }
-    },
-    {
-      "name": "ninja-release-parquet",
-      "description": "Release configuration with Parquet",
-      "inherits": "ninja-release",
-      "cacheVariables": {
-        "ARROW_PARQUET": "ON"
-      }
-    }
-  ]
-}
+{
+  "version": 3,
+  "cmakeMinimumRequired": {
+    "major": 3,
+    "minor": 21,
+    "patch": 0
+  },
+  "configurePresets": [
+    {
+      "name": "ninja-debug-minimal",
+      "displayName": "Debug build without anything enabled",
+      "generator": "Ninja",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_STATIC": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "ON",
+        "ARROW_WITH_RE2": "OFF",
+        "ARROW_WITH_UTF8PROC": "OFF",
+        "CMAKE_BUILD_TYPE": "Debug"
+      }
+    },
+    {
+      "name": "ninja-debug-basic",
+      "inherits": "ninja-debug-minimal",
+      "displayName": "Debug build with tests and reduced dependencies",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "ON",
+        "ARROW_BUILD_TESTS": "ON",
+        "ARROW_COMPUTE": "ON",
+        "ARROW_CSV": "ON",
+        "ARROW_DATASET": "ON",
+        "ARROW_EXTRA_ERROR_CONTEXT": "ON",
+        "ARROW_FILESYSTEM": "ON",
+        "ARROW_JSON": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and more optional components",
+      "cacheVariables": {
+        "ARROW_ENGINE": "ON",
+        "ARROW_MIMALLOC": "ON",
+        "ARROW_PARQUET": "ON",
+        "ARROW_WITH_BROTLI": "ON",
+        "ARROW_WITH_BZ2": "ON",
+        "ARROW_WITH_LZ4": "ON",
+        "ARROW_WITH_RE2": "ON",
+        "ARROW_WITH_SNAPPY": "ON",
+        "ARROW_WITH_UTF8PROC": "ON",
+        "ARROW_WITH_ZLIB": "ON",
+        "ARROW_WITH_ZSTD": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-cuda",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and CUDA integration",
+      "cacheVariables": {
+        "ARROW_CUDA": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-filesystems",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and filesystems",
+      "cacheVariables": {
+        "ARROW_GCS": "ON",
+        "ARROW_HDFS": "ON",
+        "ARROW_S3": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-flight",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Flight",
+      "cacheVariables": {
+        "ARROW_FLIGHT": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-gandiva",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Gandiva",
+      "cacheVariables": {
+        "ARROW_GANDIVA": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-python",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Debug build with tests and Python support",
+      "cacheVariables": {
+        "ARROW_PYTHON": "ON"
+      }
+    },
+    {
+      "name": "ninja-debug-maximal",
+      "inherits": "ninja-debug",
+      "displayName": "Debug build with everything enabled (except benchmarks and CUDA)",
+      "cacheVariables": {
+        "ARROW_BUILD_EXAMPLES": "ON",
+        "ARROW_BUILD_UTILITIES": "ON",
+        "ARROW_FLIGHT": "ON",
+        "ARROW_GANDIVA": "ON",
+        "ARROW_GCS": "ON",
+        "ARROW_HDFS": "ON",
+        "ARROW_HIVESERVER2": "ON",
+        "ARROW_ORC": "ON",
+        "ARROW_PLASMA": "ON",
+        "ARROW_PYTHON": "ON",
+        "ARROW_S3": "ON",
+        "ARROW_SKYHOOK": "ON",
+        "ARROW_TENSORFLOW": "ON",
+        "PARQUET_BUILD_EXAMPLES": "ON",
+        "PARQUET_BUILD_EXECUTABLES": "ON",
+        "PARQUET_REQUIRE_ENCRYPTION": "ON"
+      }
+    },
+
+    {
+      "name": "ninja-release-minimal",
+      "inherits": "ninja-debug-minimal",
+      "displayName": "Release build without anything enabled",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release-basic",
+      "inherits": "ninja-debug-basic",
+      "displayName": "Release build with reduced dependencies",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    },
+    {
+      "name": "ninja-release",
+      "inherits": "ninja-debug",
+      "displayName": "Release build with more optional components",
+      "cacheVariables": {
+        "ARROW_BUILD_INTEGRATION": "OFF",
+        "ARROW_BUILD_TESTS": "OFF",
+        "ARROW_EXTRA_ERROR_CONTEXT": "OFF",
+        "CMAKE_BUILD_TYPE": "Release"

Review comment:
       We can have multiple inheritances using a list. Have you tried inheriting from `"ninja-debug, ninja-release-basic"` ?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
pitrou commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r761033809



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -121,6 +121,99 @@ On MSYS2:
 Building
 ========
 
+All the instructions below assume that you have cloned the Arrow git
+repository and navigated to the ``cpp`` subdirectory:
+
+.. code-block:: shell
+
+   $ git clone https://github.com/apache/arrow.git
+   $ cd arrow/cpp
+
+CMake presets
+-------------
+
+Using CMake version 3.21.0 or higher, some presets for various build
+configurations are provided.  You can get a list of the available presets
+using ``cmake --list-presets``:
+
+.. code-block:: shell
+
+   $ cmake --list-presets
+   Available configure presets:
+
+     "ninja-debug-minimal"     - Debug build without anything enabled
+     "ninja-debug-basic"       - Debug build with tests and reduced dependencies
+     "ninja-debug"             - Debug build with tests and more optional components
+      [ etc. ]
+
+You can inspect the specific options enabled by a given preset using
+``cmake -N --preset <preset name>``:
+
+.. code-block:: shell
+
+   $ cmake --preset -N ninja-debug-minimal
+   Preset CMake variables:
+
+     ARROW_BUILD_INTEGRATION="OFF"
+     ARROW_BUILD_STATIC="OFF"
+     ARROW_BUILD_TESTS="OFF"
+     ARROW_EXTRA_ERROR_CONTEXT="ON"
+     ARROW_WITH_RE2="OFF"
+     ARROW_WITH_UTF8PROC="OFF"
+     CMAKE_BUILD_TYPE="Debug"
+
+You can also create a build from a given preset:
+
+.. code-block:: shell
+
+   $ mkdir build
+   $ cd build
+   $ cmake .. --preset ninja-debug-minimal
+      Preset CMake variables:
+
+        ARROW_BUILD_INTEGRATION="OFF"
+        ARROW_BUILD_STATIC="OFF"
+        ARROW_BUILD_TESTS="OFF"
+        ARROW_EXTRA_ERROR_CONTEXT="ON"
+        ARROW_WITH_RE2="OFF"
+        ARROW_WITH_UTF8PROC="OFF"
+        CMAKE_BUILD_TYPE="Debug"
+
+      -- Building using CMake version: 3.21.3
+      [ etc. ]
+
+and then ask to compile the build targets:
+
+.. code-block:: shell
+
+   $ cmake --build .

Review comment:
       It's equivalent to running whatever generator you're using (`make`, `ninja`, `msbuild`...).




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorisvandenbossche commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
jorisvandenbossche commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r759961208



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -145,45 +238,34 @@ Minimal release build (1GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow/cpp
-   mkdir release
-   cd release
-   cmake ..
-   make
+   $ mkdir build-release
+   $ cd build-release
+   $ cmake ..
+   $ make -j8       # if you have 8 CPU cores, otherwise adjust
 
 Minimal debug build with unit tests (4GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow
-   git submodule update --init --recursive
-   export ARROW_TEST_DATA=$PWD/testing/data
-   cd cpp
-   mkdir debug
-   cd debug
-   cmake -DCMAKE_BUILD_TYPE=Debug -DARROW_BUILD_TESTS=ON ..
-   make unittest
+   $ git submodule update --init --recursive

Review comment:
       In https://github.com/pydata/pydata-sphinx-theme/issues/41 I listed some options around this. It seems sphinx now does this out of the box, but only for >>> python prompts. https://github.com/sbrunner/sphinx-prompt might be the closest thing.
   
   (but to be clear I don't mean this as a suggestion that needs to be done in this PR)




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
kszucs commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-981475563


   Shall we add nightly builds for these presets?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
pitrou commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-981641914


   > Shall we add nightly builds for these presets?
   
   How many additional nightly builds would that add for little value?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
pitrou commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-982762994


   cc @jorisvandenbossche and @AlenkaF  for the documentation additions.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou edited a comment on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
pitrou edited a comment on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-979411194


   We could perhaps further categorize by having separate "debug" and "tests" builds (the former category with tests disabled), but I'm not sure how useful that would be. It's probably rare to make a debug build if not for testing Arrow.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] pitrou commented on pull request #11778: ARROW-14714: [C++] Rework CMake presets

Posted by GitBox <gi...@apache.org>.
pitrou commented on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-982543291


   @9prady9 I've avoided repetition using multiple inheritance now. I think it's pointless to add explicit types, since these are mostly booleans (which is already explicit given the "ON" and "OFF" values).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] AlenkaF commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
AlenkaF commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r760930052



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -145,45 +238,34 @@ Minimal release build (1GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow/cpp
-   mkdir release
-   cd release
-   cmake ..
-   make
+   $ mkdir build-release
+   $ cd build-release
+   $ cmake ..
+   $ make -j8       # if you have 8 CPU cores, otherwise adjust
 
 Minimal debug build with unit tests (4GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow
-   git submodule update --init --recursive
-   export ARROW_TEST_DATA=$PWD/testing/data
-   cd cpp
-   mkdir debug
-   cd debug
-   cmake -DCMAKE_BUILD_TYPE=Debug -DARROW_BUILD_TESTS=ON ..
-   make unittest
+   $ git submodule update --init --recursive

Review comment:
       I think using something like `sphinx-prompt` + having an icon to copy the content of the code box would be great! Something like [sphinx-copybutton](https://sphinx-copybutton.readthedocs.io/en/latest/). Could be a beginner ticket for the docs to add/change this in developers section =)
   
   How many ppl would be confused? Well, not much I would say. But if we could make life easier even for one that is not yet used to the terminal and needs to build Arrow C++ that could be worth it?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] ursabot edited a comment on pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
ursabot edited a comment on pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#issuecomment-983989131


   Benchmark runs are scheduled for baseline = 704d123d0e00e88b4d0ad28d2f193ea20e54f7e3 and contender = 200f1679f9837a83b105ba081f31ca47cbe22de1. 200f1679f9837a83b105ba081f31ca47cbe22de1 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
   Conbench compare runs links:
   [Finished :arrow_down:0.0% :arrow_up:0.0%] [ec2-t3-xlarge-us-east-2](https://conbench.ursa.dev/compare/runs/9e127d5483ce49a698eb07f625ba8502...a8779635087d4dca91f81e1b36c31064/)
   [Failed :arrow_down:3.23% :arrow_up:0.0%] [ursa-i9-9960x](https://conbench.ursa.dev/compare/runs/fc9c4d4cbc37410183cbcc02b8650c54...261584bbf92946cdad09914abd83954a/)
   [Finished :arrow_down:0.53% :arrow_up:0.0%] [ursa-thinkcentre-m75q](https://conbench.ursa.dev/compare/runs/f54d71eca2ee44d2a3732c07c6d2d258...84b1c177605b4549b54e8e8c4a09ed54/)
   Supported benchmarks:
   ursa-i9-9960x: langs = Python, R, JavaScript
   ursa-thinkcentre-m75q: langs = C++, Java
   ec2-t3-xlarge-us-east-2: cloud = True
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] AlenkaF commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
AlenkaF commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r760917599



##########
File path: docs/source/developers/cpp/building.rst
##########
@@ -145,45 +238,34 @@ Minimal release build (1GB of RAM for building or more recommended):
 
 .. code-block:: shell
 
-   git clone https://github.com/apache/arrow.git
-   cd arrow/cpp
-   mkdir release
-   cd release
-   cmake ..
-   make
+   $ mkdir build-release

Review comment:
       +1




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on a change in pull request #11778: ARROW-14714: [C++][Doc] Rework CMake presets and add documentation

Posted by GitBox <gi...@apache.org>.
kszucs commented on a change in pull request #11778:
URL: https://github.com/apache/arrow/pull/11778#discussion_r760465560



##########
File path: .github/workflows/cpp.yml
##########
@@ -113,6 +113,23 @@ jobs:
           cd cpp/examples/minimal_build
           docker-compose run --rm minimal
 
+  cmake-checks:
+    name: CMake checks
+    runs-on: ubuntu-latest
+    if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
+    timeout-minutes: 5
+    strategy:
+      fail-fast: false
+    steps:
+      - name: Checkout Arrow
+        uses: actions/checkout@v2
+        with:
+          fetch-depth: 0
+      - name: Run
+        run: |
+          cd cpp
+          cmake --list-presets

Review comment:
       @pitrou could we call this from one of the existing C++ builds so we don't need to run an additional build? Perhaps from build-example or the macos one.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscribe@arrow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org