raulcd commented on code in PR #39960: URL: https://github.com/apache/arrow/pull/39960#discussion_r1492300061
########## docs/source/developers/release_verification.rst: ########## @@ -0,0 +1,148 @@ +.. 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 +------ + +You might have to install some packages on your system. The following +utility script can be used to set your Ubuntu system. This wil install +the required packages to perform a source verification on a clean +Ubuntu: + +.. code-block:: + + # From the arrow clone + popd dev/release + sudo ./setup-ubuntu.sh + pushd + +macOS ARM +--------- + +.. code-block:: + + # From the arrow clone + brew install gpg + brew bundle --file=cpp/Brewfile + brew bundle --file=c_glib/Brewfile + brew uninstall node + # You might need to add node, ruby java and maven to the PATH, follow + # instructions from brew after installing. + brew install node@20 + brew install ruby + brew install openjdk + brew install maven + # libffi required for gobject-introspection gem + brew install libffi Review Comment: After `brew uninstall libffi` this is the error I get: ``` Resolving dependencies... Fetching power_assert 2.0.3 Fetching native-package-installer 1.1.9 Fetching pkg-config 1.5.6 Installing power_assert 2.0.3 Installing native-package-installer 1.1.9 Installing pkg-config 1.5.6 Fetching test-unit 3.6.2 Fetching glib2 4.2.0 Installing test-unit 3.6.2 Installing glib2 4.2.0 with native extensions Fetching gobject-introspection 4.2.0 Installing gobject-introspection 4.2.0 with native extensions Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /private/var/folders/rr/t_15q7dx4_lf1nv0btypffcw0000gn/T/arrow-15.0.0.XXXXX.li0gqOMB3O/apache-arrow-15.0.0/c_glib/vendor/bundle/ruby/3.3.0/gems/gobject-introspection-4.2.0/ext/gobject-introspection /opt/homebrew/opt/ruby/bin/ruby extconf.rb checking for --enable-debug-build option... no checking for -Wall option to compiler... yes checking for -Wcast-align option to compiler... yes checking for -Wextra option to compiler... yes checking for -Wformat=2 option to compiler... yes checking for -Winit-self option to compiler... yes checking for -Wlarger-than-65500 option to compiler... yes checking for -Wmissing-declarations option to compiler... yes checking for -Wmissing-format-attribute option to compiler... yes checking for -Wmissing-include-dirs option to compiler... yes checking for -Wmissing-noreturn option to compiler... yes checking for -Wmissing-prototypes option to compiler... yes checking for -Wnested-externs option to compiler... yes checking for -Wold-style-definition option to compiler... yes checking for -Wpacked option to compiler... yes checking for -Wp,-D_FORTIFY_SOURCE=2 option to compiler... yes checking for -Wpointer-arith option to compiler... yes checking for -Wundef option to compiler... yes checking for -Wout-of-line-declaration option to compiler... yes checking for -Wunsafe-loop-optimizations option to compiler... no checking for -Wwrite-strings option to compiler... yes checking for Homebrew... yes checking for gobject-introspection-1.0... yes (1.78.1) creating rbgiversion.h creating gobject-introspection-enum-types.c creating gobject-introspection-enum-types.h creating ruby-gobject-introspection.pc creating Makefile current directory: /private/var/folders/rr/t_15q7dx4_lf1nv0btypffcw0000gn/T/arrow-15.0.0.XXXXX.li0gqOMB3O/apache-arrow-15.0.0/c_glib/vendor/bundle/ruby/3.3.0/gems/gobject-introspection-4.2.0/ext/gobject-introspection make DESTDIR\= sitearchdir\=./.gem.20240216-45788-684atu sitelibdir\=./.gem.20240216-45788-684atu clean current directory: /private/var/folders/rr/t_15q7dx4_lf1nv0btypffcw0000gn/T/arrow-15.0.0.XXXXX.li0gqOMB3O/apache-arrow-15.0.0/c_glib/vendor/bundle/ruby/3.3.0/gems/gobject-introspection-4.2.0/ext/gobject-introspection make DESTDIR\= sitearchdir\=./.gem.20240216-45788-684atu sitelibdir\=./.gem.20240216-45788-684atu compiling gobject-introspection-enum-types.c compiling rb-gi-arg-info.c In file included from rb-gi-arg-info.c:21: In file included from ./rb-gi-private.h:24: In file included from /private/var/folders/rr/t_15q7dx4_lf1nv0btypffcw0000gn/T/arrow-15.0.0.XXXXX.li0gqOMB3O/apache-arrow-15.0.0/c_glib/vendor/bundle/ruby/3.3.0/gems/glib2-4.2.0/ext/glib2/../../lib/rbgobject.h:27: In file included from /private/var/folders/rr/t_15q7dx4_lf1nv0btypffcw0000gn/T/arrow-15.0.0.XXXXX.li0gqOMB3O/apache-arrow-15.0.0/c_glib/vendor/bundle/ruby/3.3.0/gems/glib2-4.2.0/ext/glib2/../../lib/rbgutil.h:26: In file included from /opt/homebrew/Cellar/ruby/3.3.0/include/ruby-3.3.0/ruby/encoding.h:22: /opt/homebrew/Cellar/ruby/3.3.0/include/ruby-3.3.0/ruby/internal/encoding/ctype.h:82:46: warning: unused parameter 'enc' [-Wunused-parameter] rb_enc_isascii(OnigCodePoint c, rb_encoding *enc) ^ In file included from rb-gi-arg-info.c:21: In file included from ./rb-gi-private.h:28: /opt/homebrew/Cellar/gobject-introspection/1.78.1/include/gobject-introspection-1.0/girffi.h:25:10: fatal error: 'ffi.h' file not found #include <ffi.h> ^~~~~~~ 1 warning and 1 error generated. make: *** [rb-gi-arg-info.o] Error 1 make failed, exit code 2 Gem files will remain installed in /private/var/folders/rr/t_15q7dx4_lf1nv0btypffcw0000gn/T/arrow-15.0.0.XXXXX.li0gqOMB3O/apache-arrow-15.0.0/c_glib/vendor/bundle/ruby/3.3.0/gems/gobject-introspection-4.2.0 for inspection. Results logged to /private/var/folders/rr/t_15q7dx4_lf1nv0btypffcw0000gn/T/arrow-15.0.0.XXXXX.li0gqOMB3O/apache-arrow-15.0.0/c_glib/vendor/bundle/ruby/3.3.0/extensions/arm64-darwin-23/3.3.0/gobject-introspection-4.2.0/gem_make.out /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/ext/builder.rb:125:in `run' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/ext/builder.rb:51:in `block in make' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/ext/builder.rb:43:in `each' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/ext/builder.rb:43:in `make' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/ext/ext_conf_builder.rb:42:in `build' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/ext/builder.rb:193:in `build_extension' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/ext/builder.rb:227:in `block in build_extensions' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/ext/builder.rb:224:in `each' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/ext/builder.rb:224:in `build_extensions' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/rubygems/installer.rb:852:in `build_extensions' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/bundler/rubygems_gem_installer.rb:76:in `build_extensions' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/bundler/rubygems_gem_installer.rb:28:in `install' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/bundler/source/rubygems.rb:205:in `install' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/bundler/installer/gem_installer.rb:54:in `install' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/bundler/installer/gem_installer.rb:16:in `install_from_spec' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/bundler/installer/parallel_installer.rb:132:in `do_install' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/bundler/installer/parallel_installer.rb:123:in `block in worker_pool' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/bundler/worker.rb:62:in `apply_func' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/bundler/worker.rb:57:in `block in process_queue' <internal:kernel>:187:in `loop' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/bundler/worker.rb:54:in `process_queue' /opt/homebrew/Cellar/ruby/3.3.0/lib/ruby/3.3.0/bundler/worker.rb:90:in `block (2 levels) in create_threads' An error occurred while installing gobject-introspection (4.2.0), and Bundler cannot continue. In Gemfile: gobject-introspection Failed to verify release candidate. See /var/folders/rr/t_15q7dx4_lf1nv0btypffcw0000gn/T/arrow-15.0.0.XXXXX.li0gqOMB3O for details. ``` -- 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]
