raulcd commented on code in PR #39960: URL: https://github.com/apache/arrow/pull/39960#discussion_r1483397377
########## docs/source/developers/release_verification.rst: ########## @@ -0,0 +1,156 @@ +.. Licensed to the Apache Software Foundation (ASF) under one +.. or more contributor license agreements. See the NOTICE file +.. distributed with this work for additional information +.. regarding copyright ownership. The ASF licenses this file +.. to you under the Apache License, Version 2.0 (the +.. "License"); you may not use this file except in compliance +.. with the License. You may obtain a copy of the License at + +.. http://www.apache.org/licenses/LICENSE-2.0 + +.. Unless required by applicable law or agreed to in writing, +.. software distributed under the License is distributed on an +.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +.. KIND, either express or implied. See the License for the +.. specific language governing permissions and limitations +.. under the License. + +.. _release_verification: + +============================ +Release Verification Process +============================ + +This page provides detailed information on the steps followed to perform +a release verification on the major platforms. + +Principles +========== + +The Apache Arrow Release Approval process follows the guidelines defined at the +`Apache Software Foundation Release Approval <https://www.apache.org/legal/release-policy.html#release-approval>`_. + +For a release vote to pass, a minimum of three positive binding votes and more +positive binding votes than negative binding votes MUST be cast. +Releases may not be vetoed. Votes cast by PMC members are binding, however, +non-binding votes are greatly encouraged and a sign of a healthy project. + +Running the release verification +================================ + +Linux and macOS +--------------- + +In order to run the verification script either for the source release or the +binary artifacts see the following guidelines: + +.. code-block:: + + # this will create and automatically clean up a temporary directory for the verification environment and will run the source verification + TEST_DEFAULT=0 TEST_SOURCE=1 verify-release-candidate.sh $VERSION $RC_NUM + + # this will create and automatically clean up a temporary directory for the verification environment and will run the binary verification + TEST_DEFAULT=0 TEST_BINARIES=1 dev/release/verify-release-candidate.sh $VERSION $RC_NUM + + # to verify only certain implementations use the TEST_DEFAULT=0 and TEST_* variables + # here are a couple of examples, but see the source code for the available options + TEST_DEFAULT=0 TEST_CPP=1 verify-release-candidate.sh $VERSION $RC_NUM # only C++ tests + TEST_DEFAULT=0 TEST_CPP=1 TEST_PYTHON=1 verify-release-candidate.sh $VERSION $RC_NUM # C++ and Python tests + TEST_DEFAULT=0 TEST_INTEGRATION_CPP=1 TEST_INTEGRATION_JAVA=1 verify-release-candidate.sh $VERSION $RC_NUM # C++ and Java integration tests + + # to verify certain binaries use the TEST_* variables as: + TEST_DEFAULT=0 TEST_WHEELS=1 verify-release-candidate.sh $VERSION $RC_NUM # only Wheels + TEST_DEFAULT=0 TEST_APT=1 verify-release-candidate.sh $VERSION $RC_NUM # only APT packages + TEST_DEFAULT=0 TEST_YUM=1 verify-release-candidate.sh $VERSION $RC_NUM # only YUM packages + TEST_DEFAULT=0 TEST_JARS=1 verify-release-candidate.sh $VERSION $RC_NUM # only JARS + +Windows +------- + +In order to run the verification script on Windows you have to download +the source tarball from the SVN dist system that you wish to verify: + +.. code-block:: + + dev\release\verify-release-candidate.bat %VERSION% %RC_NUM% + +System Configuration Instructions +================================= + +You will need some tools installed like curl, git, etcetera. + +Ubuntu 22.04 +------------ + +You might have to install some packages on your system. The following +packages were required to perform a source verification on a clean +Ubuntu 22.04 from an AWS instance: + +.. code-block:: + + sudo apt update + + # Install miscellanious required packages + sudo apt install \ + build-essential \ + clang \ + cmake \ + libsqlite3-dev \ + libssh-dev \ + libyaml-dev \ + llvm-dev \ + python3-dev \ + python3.10-venv + + # Install ruby Review Comment: @kou I am trying to run a source verification from scratch on a new Ubuntu to take the notes on what is needed, these are the things that I have installed but I am currently having an issue on the `C GLib` source verification, any idea? ``` ubuntu@ip:~/arrow/dev/release$ tail -100f /tmp/arrow-15.0.0.XCn9G/c-glib-build/meson-logs/meson-log.txt - "--no-warn-unused-cli" - "--trace-redirect=cmake_trace.txt" - "-DCMAKE_TOOLCHAIN_FILE=/tmp/arrow-15.0.0.XCn9G/c-glib-build/meson-private/cmake_gobject-introspection-1.0/CMakeMesonToolchainFile.cmake" - "." - "-DCMAKE_PREFIX_PATH=/tmp/arrow-15.0.0.XCn9G/install" -- Module search paths: ['/', '/opt', '/tmp/arrow-15.0.0.XCn9G/install', '/usr', '/usr/local'] -- CMake root: /usr/share/cmake-3.22 -- CMake architectures: ['x86_64-linux-gnu'] -- CMake lib search paths: ['lib', 'lib32', 'lib64', 'libx32', 'share', '', 'lib/x86_64-linux-gnu'] Preliminary CMake check failed. Aborting. Run-time dependency gobject-introspection-1.0 found: NO (tried pkgconfig and cmake) Dependency lookup for arrow with method 'pkgconfig' failed: Pkg-config for machine host machine not found. Giving up. CMake binary for host machine is cached. Determining dependency 'arrow' with CMake executable '/usr/bin/cmake' CMake Toolchain: Calling CMake once to generate the compiler state Calling CMake (['/usr/bin/cmake']) in /tmp/arrow-15.0.0.XCn9G/c-glib-build/meson-private/__CMake_compiler_info__ with: - "--trace-expand" - "--trace-format=json-v1" - "--no-warn-unused-cli" - "--trace-redirect=cmake_trace.txt" - "-G" - "Ninja" - "-DCMAKE_TOOLCHAIN_FILE=/tmp/arrow-15.0.0.XCn9G/c-glib-build/meson-private/__CMake_compiler_info__/CMakeMesonTempToolchainFile.cmake" - "." - "-DCMAKE_PREFIX_PATH=/tmp/arrow-15.0.0.XCn9G/install" WARNING: CMake Toolchain: Failed to determine CMake compilers state Try CMake generator: auto Calling CMake (['/usr/bin/cmake']) in /tmp/arrow-15.0.0.XCn9G/c-glib-build/meson-private/cmake_arrow with: - "-DNAME=arrow" - "-DARCHS=x86_64-linux-gnu" - "-DVERSION=" - "-DCOMPS=" - "-DSTATIC=False" - "--trace-expand" - "--trace-format=json-v1" - "--no-warn-unused-cli" - "--trace-redirect=cmake_trace.txt" - "-DCMAKE_TOOLCHAIN_FILE=/tmp/arrow-15.0.0.XCn9G/c-glib-build/meson-private/cmake_arrow/CMakeMesonToolchainFile.cmake" - "." - "-DCMAKE_PREFIX_PATH=/tmp/arrow-15.0.0.XCn9G/install" WARNING: Could not find and exact match for the CMake dependency arrow. However, Meson found the following partial matches: ['Arrow::arrow_shared', 'Arrow::arrow_static', 'Arrow::arrow_bundled_dependencies'] Using imported is recommended, since this approach is less error prone and better supported by Meson. Consider explicitly specifying one of these in the dependency call with: dependency('arrow', modules: ['arrow::<name>', ...]) Meson will now continue to use the old-style arrow_LIBRARIES CMake variables to extract the dependency information since no explicit target is currently specified. More info for the partial match targets: CMake TARGET: -- name: Arrow::arrow_shared -- type: SHARED -- imported: True -- properties: { 'INTERFACE_COMPILE_FEATURES': ['cxx_std_17'] 'INTERFACE_INCLUDE_DIRECTORIES': ['/tmp/arrow-15.0.0.XCn9G/install/include'] 'IMPORTED_CONFIGURATIONS': ['RELEASE'] 'IMPORTED_LOCATION_RELEASE': ['/tmp/arrow-15.0.0.XCn9G/install/lib/libarrow.so.1500.0.0'] 'IMPORTED_SONAME_RELEASE': ['libarrow.so.1500'] } -- tline: CMake TRACE: /tmp/arrow-15.0.0.XCn9G/install/lib/cmake/Arrow/ArrowTargets.cmake:54 add_library(['Arrow::arrow_shared', 'SHARED', 'IMPORTED']) CMake TARGET: -- name: Arrow::arrow_static -- type: STATIC -- imported: True -- properties: { 'INTERFACE_COMPILE_FEATURES': ['cxx_std_17'] 'INTERFACE_INCLUDE_DIRECTORIES': ['/tmp/arrow-15.0.0.XCn9G/install/include'] 'INTERFACE_LINK_LIBRARIES': ['Arrow::arrow_bundled_dependencies', 'OpenSSL::Crypto', 'OpenSSL::SSL', 'ZLIB::ZLIB', 'dl', 'Threads::Threads', 'rt'] 'IMPORTED_CONFIGURATIONS': ['RELEASE'] 'IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE': ['C', 'CXX'] 'IMPORTED_LOCATION_RELEASE': ['/tmp/arrow-15.0.0.XCn9G/install/lib/libarrow.a'] } -- tline: CMake TRACE: /tmp/arrow-15.0.0.XCn9G/install/lib/cmake/Arrow/ArrowTargets.cmake:62 add_library(['Arrow::arrow_static', 'STATIC', 'IMPORTED']) CMake TARGET: -- name: Arrow::arrow_bundled_dependencies -- type: STATIC -- imported: True -- properties: { 'IMPORTED_CONFIGURATIONS': ['RELEASE'] 'IMPORTED_LOCATION_RELEASE': ['/tmp/arrow-15.0.0.XCn9G/install/lib/libarrow_bundled_dependencies.a'] } -- tline: CMake TRACE: /tmp/arrow-15.0.0.XCn9G/install/lib/cmake/Arrow/ArrowConfig.cmake:128 add_library(['Arrow::arrow_bundled_dependencies', 'STATIC', 'IMPORTED']) Dependency lookup for arrow with method 'cmake' failed: Dependency arrow not found: CMake: failed to guess a CMake target for arrow. Try to explicitly specify one or more targets with the "modules" property. Valid targets are: ['Threads::Threads', 'OpenSSL::Crypto', 'OpenSSL::SSL', 'ZLIB::ZLIB', 'Arrow::arrow_shared', 'Arrow::arrow_static', 'Arrow::arrow_bundled_dependencies', 'arrow_shared', 'arrow_static'] Run-time dependency arrow found: NO meson.build:80:10: ERROR: Dependency lookup for arrow with method 'pkgconfig' failed: Pkg-config for machine host machine not found. Giving up. ``` -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
