pitrou commented on a change in pull request #11820:
URL: https://github.com/apache/arrow/pull/11820#discussion_r761252165



##########
File path: docs/source/developers/guide/step_by_step/building.rst
##########
@@ -35,17 +35,83 @@
 Building Arrow's libraries 🏋🏿‍♀️
 *********************************
 
+If you decide to contribute to Arrow you will meet the topic of
+compiling source code and use of CMake. You may have some

Review comment:
       The mention of CMake applies mostly to Arrow C++ and C++-derived 
bindings such as Python or R (not Java or Go, for example). Perhaps you could 
start this document by mentioning this context?

##########
File path: docs/source/developers/guide/step_by_step/building.rst
##########
@@ -35,17 +35,83 @@
 Building Arrow's libraries 🏋🏿‍♀️

Review comment:
       It's not in this PR, but this should probably be "Building the Arrow 
libraries".

##########
File path: docs/source/developers/guide/step_by_step/building.rst
##########
@@ -35,17 +35,83 @@
 Building Arrow's libraries 🏋🏿‍♀️
 *********************************
 
+If you decide to contribute to Arrow you will meet the topic of
+compiling source code and use of CMake. You may have some
+experience with it or not. If not, it is good to read through
+this part so you understand what is happening in the process of
+building Arrow better.
 
+If you feel comfortable with compiling then feel free to proceed
+to the :ref:`C++ <building-arrow-cpp>`, :ref:`PyArrow <build_pyarrow>` or
+`R package build section 
<https://arrow.apache.org/docs/r/articles/developing.html>`_.
 
 Building C++
 ============
 
+Why build C++ from source?
+--------------------------
+
+The core of Arrow is written in C++ and all bindings in other
+languages (Python, R, ..) are wrapping underlying
+C++ functions. Even if you want to work on PyArrow or R package
+the source code of C++ may have to be edited also.
+
+About CMake
+-----------
+
+CMake is a cross platform build system generator and it uses make
+for the actual build. In the compiling process of Arrow what will
+most probably be needed is some tweaking of the flags that are added
+to cmake in the compiling process of Arrow.
+
+
+Optional flags and why might we use them
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+.. TODO short description of the use of flags
+
+.. seealso::
+       Full list of optional flags: :ref:`cpp_build_optional_components`
+
+.. Environment variables useful for developers
+.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+.. TODO short description of the use of env vars
+
+Building from source vs. using binaries
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Using binaries is a fast and simple way of working with the latest
+Arrow version. But you do not have the possibility to add or change
+the code and as a contributor you will need to.
+
+Detailed instructions on building C++ library from source can
+be found :ref:`here <building-arrow-cpp>`.
+
 .. _build-pyarrow:
 
 Building PyArrow
 ================
 
-.. _build-rarrow:
+After building C++ part of Arrow you have to build PyArrow on top of it

Review comment:
       "the Arrow C++ libraries"

##########
File path: docs/source/developers/guide/step_by_step/building.rst
##########
@@ -35,17 +35,83 @@
 Building Arrow's libraries 🏋🏿‍♀️
 *********************************
 
+If you decide to contribute to Arrow you will meet the topic of
+compiling source code and use of CMake. You may have some
+experience with it or not. If not, it is good to read through
+this part so you understand what is happening in the process of
+building Arrow better.
 
+If you feel comfortable with compiling then feel free to proceed
+to the :ref:`C++ <building-arrow-cpp>`, :ref:`PyArrow <build_pyarrow>` or
+`R package build section 
<https://arrow.apache.org/docs/r/articles/developing.html>`_.
 
 Building C++
 ============
 
+Why build C++ from source?

Review comment:
       "Arrow C++", not just "C++" (and in the title above as well) :-)

##########
File path: docs/source/developers/guide/step_by_step/building.rst
##########
@@ -35,17 +35,83 @@
 Building Arrow's libraries 🏋🏿‍♀️
 *********************************
 
+If you decide to contribute to Arrow you will meet the topic of
+compiling source code and use of CMake. You may have some
+experience with it or not. If not, it is good to read through
+this part so you understand what is happening in the process of
+building Arrow better.
 
+If you feel comfortable with compiling then feel free to proceed
+to the :ref:`C++ <building-arrow-cpp>`, :ref:`PyArrow <build_pyarrow>` or
+`R package build section 
<https://arrow.apache.org/docs/r/articles/developing.html>`_.
 
 Building C++
 ============
 
+Why build C++ from source?
+--------------------------
+
+The core of Arrow is written in C++ and all bindings in other
+languages (Python, R, ..) are wrapping underlying
+C++ functions. Even if you want to work on PyArrow or R package
+the source code of C++ may have to be edited also.
+
+About CMake
+-----------
+
+CMake is a cross platform build system generator and it uses make
+for the actual build. In the compiling process of Arrow what will
+most probably be needed is some tweaking of the flags that are added
+to cmake in the compiling process of Arrow.

Review comment:
       "CMake"

##########
File path: docs/source/developers/guide/step_by_step/building.rst
##########
@@ -35,17 +35,83 @@
 Building Arrow's libraries 🏋🏿‍♀️
 *********************************
 
+If you decide to contribute to Arrow you will meet the topic of
+compiling source code and use of CMake. You may have some
+experience with it or not. If not, it is good to read through
+this part so you understand what is happening in the process of
+building Arrow better.
 
+If you feel comfortable with compiling then feel free to proceed
+to the :ref:`C++ <building-arrow-cpp>`, :ref:`PyArrow <build_pyarrow>` or
+`R package build section 
<https://arrow.apache.org/docs/r/articles/developing.html>`_.
 
 Building C++
 ============
 
+Why build C++ from source?
+--------------------------
+
+The core of Arrow is written in C++ and all bindings in other
+languages (Python, R, ..) are wrapping underlying
+C++ functions. Even if you want to work on PyArrow or R package
+the source code of C++ may have to be edited also.
+
+About CMake
+-----------
+
+CMake is a cross platform build system generator and it uses make
+for the actual build. In the compiling process of Arrow what will
+most probably be needed is some tweaking of the flags that are added
+to cmake in the compiling process of Arrow.
+
+
+Optional flags and why might we use them
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+.. TODO short description of the use of flags
+
+.. seealso::
+       Full list of optional flags: :ref:`cpp_build_optional_components`
+
+.. Environment variables useful for developers
+.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+.. TODO short description of the use of env vars
+
+Building from source vs. using binaries
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+Using binaries is a fast and simple way of working with the latest
+Arrow version. But you do not have the possibility to add or change
+the code and as a contributor you will need to.
+
+Detailed instructions on building C++ library from source can
+be found :ref:`here <building-arrow-cpp>`.
+
 .. _build-pyarrow:
 
 Building PyArrow
 ================
 
-.. _build-rarrow:
+After building C++ part of Arrow you have to build PyArrow on top of it
+also. The reason is the same, so you can edit the code and run tests on
+the edited code you have locally.
 
-Building R-Arrow
-================
+**Why do we have to do builds separately?**

Review comment:
       I'm not sure it's worth bothering beginners with this question :-) If we 
want to, though, we'll need to find a better wording for the answer, as 
currently it feels a bit confusing.

##########
File path: docs/source/developers/guide/step_by_step/building.rst
##########
@@ -35,17 +35,83 @@
 Building Arrow's libraries 🏋🏿‍♀️
 *********************************
 
+If you decide to contribute to Arrow you will meet the topic of
+compiling source code and use of CMake. You may have some
+experience with it or not. If not, it is good to read through
+this part so you understand what is happening in the process of
+building Arrow better.
 
+If you feel comfortable with compiling then feel free to proceed
+to the :ref:`C++ <building-arrow-cpp>`, :ref:`PyArrow <build_pyarrow>` or
+`R package build section 
<https://arrow.apache.org/docs/r/articles/developing.html>`_.
 
 Building C++
 ============
 
+Why build C++ from source?
+--------------------------
+
+The core of Arrow is written in C++ and all bindings in other
+languages (Python, R, ..) are wrapping underlying
+C++ functions. Even if you want to work on PyArrow or R package
+the source code of C++ may have to be edited also.
+
+About CMake
+-----------
+
+CMake is a cross platform build system generator and it uses make
+for the actual build. In the compiling process of Arrow what will

Review comment:
       Hmm, it doesn't necessarily use make (we actually recommend 
[Ninja](https://ninja-build.org/) in the C++ build docs).
   
   Therefore you could rephrase this as : "... and it defers to another program 
such as `make` or `ninja` for the actual 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-unsubscr...@arrow.apache.org

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


Reply via email to