diff --git a/LICENSE.txt b/LICENSE.txt index c2b0a996fedd1..0423854567b26 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1889,19 +1889,6 @@ for PyArrow. Ibis is released under the Apache License, Version 2.0. -------------------------------------------------------------------------------- -This project includes code from the autobrew project. - -The following files are based on code from the autobrew project: -* r/tools/autobrew -* dev/tasks/homebrew-formulae/autobrew/apache-arrow.rb -* dev/tasks/homebrew-formulae/autobrew/apache-arrow-static.rb - -Copyright (c) 2019, Jeroen Ooms -License: MIT -Homepage: https://github.com/autobrew/ - --------------------------------------------------------------------------------- - dev/tasks/homebrew-formulae/apache-arrow.rb has the following license: BSD 2-Clause License diff --git a/dev/release/01-prepare-test.rb b/dev/release/01-prepare-test.rb index 54437e9da60ce..8fb23f45f0f3a 100644 --- a/dev/release/01-prepare-test.rb +++ b/dev/release/01-prepare-test.rb @@ -150,13 +150,6 @@ def test_version_pre_tag "+ url \"https://www.apache.org/dyn/closer.lua?path=arrow/arrow-#{@release_version}/apache-arrow-#{@release_version}.tar.gz\""], ], }, - { - path: "dev/tasks/homebrew-formulae/autobrew/apache-arrow.rb", - hunks: [ - ["- url \"https://www.apache.org/dyn/closer.lua?path=arrow/arrow-#{@previous_version}.9000/apache-arrow-#{@previous_version}.9000.tar.gz\"", - "+ url \"https://www.apache.org/dyn/closer.lua?path=arrow/arrow-#{@release_version}/apache-arrow-#{@release_version}.tar.gz\""], - ], - }, ] unless release_type == :patch expected_changes += [ diff --git a/dev/release/post-11-bump-versions-test.rb b/dev/release/post-11-bump-versions-test.rb index 8253472ccc5b9..a017d2d70a167 100644 --- a/dev/release/post-11-bump-versions-test.rb +++ b/dev/release/post-11-bump-versions-test.rb @@ -128,13 +128,6 @@ def test_version_post_tag "+ url \"https://www.apache.org/dyn/closer.lua?path=arrow/arrow-#{@next_snapshot_version}/apache-arrow-#{@next_snapshot_version}.tar.gz\""], ], }, - { - path: "dev/tasks/homebrew-formulae/autobrew/apache-arrow.rb", - hunks: [ - ["- url \"https://www.apache.org/dyn/closer.lua?path=arrow/arrow-#{@previous_version}.9000/apache-arrow-#{@previous_version}.9000.tar.gz\"", - "+ url \"https://www.apache.org/dyn/closer.lua?path=arrow/arrow-#{@release_version}.9000/apache-arrow-#{@release_version}.9000.tar.gz\""], - ], - }, ] unless release_type == :patch expected_changes += [ diff --git a/dev/release/utils-prepare.sh b/dev/release/utils-prepare.sh index 464702b811d8b..23c89ad54eb01 100644 --- a/dev/release/utils-prepare.sh +++ b/dev/release/utils-prepare.sh @@ -80,11 +80,6 @@ update_versions() { popd pushd "${ARROW_DIR}/dev/tasks/homebrew-formulae" - sed -i.bak -E -e \ - "s/arrow-[0-9.]+[0-9]+/arrow-${r_version}/g" \ - autobrew/apache-arrow.rb - rm -f autobrew/apache-arrow.rb.bak - git add autobrew/apache-arrow.rb sed -i.bak -E -e \ "s/arrow-[0-9.\-]+[0-9SNAPHOT]+/arrow-${version}/g" \ apache-arrow-glib.rb \ diff --git a/dev/tasks/conda-recipes/r-arrow/build.sh b/dev/tasks/conda-recipes/r-arrow/build.sh index 340b2196a2c8f..9f5255cbaeee3 100755 --- a/dev/tasks/conda-recipes/r-arrow/build.sh +++ b/dev/tasks/conda-recipes/r-arrow/build.sh @@ -1,8 +1,6 @@ #!/bin/bash set -ex -export DISABLE_AUTOBREW=1 - # arrow uses C++17 export ARROW_R_CXXFLAGS="${ARROW_R_CXXFLAGS} -std=c++17" export LIBARROW_BUILD=false diff --git a/dev/tasks/homebrew-formulae/autobrew/apache-arrow-static.rb b/dev/tasks/homebrew-formulae/autobrew/apache-arrow-static.rb deleted file mode 100644 index 4586649d0c0bc..0000000000000 --- a/dev/tasks/homebrew-formulae/autobrew/apache-arrow-static.rb +++ /dev/null @@ -1,99 +0,0 @@ -# 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. - -# Cloned from https://github.com/autobrew/homebrew-core/blob/high-sierra/Formula/apache-arrow.rb -# Upstream any relevant changes (dependencies, build args ...) - -class ApacheArrowStatic < Formula - desc "Columnar in-memory analytics layer designed to accelerate big data" - homepage "https://arrow.apache.org/" - url "https://www.apache.org/dyn/closer.lua?path=arrow/arrow-8.0.0.9000/apache-arrow-8.0.0.9000.tar.gz" - # Uncomment and update to test on a release candidate - # mirror "https://dist.apache.org/repos/dist/dev/arrow/apache-arrow-8.0.0-rc1/apache-arrow-8.0.0.tar.gz" - sha256 "9948ddb6d4798b51552d0dca3252dd6e3a7d0f9702714fc6f5a1b59397ce1d28" - head "https://github.com/apache/arrow.git", branch: "main" - - bottle do - sha256 cellar: :any, arm64_big_sur: "ef89d21a110b89840cc6148add685d407e75bd633bc8f79625eb33d00e3694b4" - sha256 cellar: :any, big_sur: "6fcb9f55d44eb61d295a8020e039a0622bdc044b220cfffef855f3e3ab8057a1" - sha256 cellar: :any, catalina: "bf71b17766688077fb9b4e679f309742c16524015287dd3633758c679752c977" - end - - depends_on "boost" => :build - depends_on "cmake" => :build - depends_on "aws-sdk-cpp-static" - depends_on "brotli" - depends_on "lz4" - depends_on "snappy" - depends_on "thrift" - depends_on "zstd" - - conflicts_with "apache-arrow", because: "both install Arrow" - - def install - ENV.cxx11 - # https://github.com/Homebrew/homebrew-core/issues/94724 - # https://issues.apache.org/jira/browse/ARROW-15664 - ENV["HOMEBREW_OPTIMIZATION_LEVEL"] = "O2" - - args = %W[ - -DARROW_BUILD_SHARED=OFF - -DARROW_BUILD_UTILITIES=ON - -DARROW_ACERO=ON - -DARROW_COMPUTE=ON - -DARROW_CSV=ON - -DARROW_DATASET=ON - -DARROW_FILESYSTEM=ON - -DARROW_GCS=ON - -DARROW_JEMALLOC=ON - -DARROW_JSON=ON - -DARROW_MIMALLOC=ON - -DARROW_PARQUET=ON - -DARROW_S3=ON - -DARROW_VERBOSE_THIRDPARTY_BUILD=ON - -DARROW_WITH_BROTLI=ON - -DARROW_WITH_BZ2=ON - -DARROW_WITH_LZ4=ON - -DARROW_WITH_SNAPPY=ON - -DARROW_WITH_ZLIB=ON - -DARROW_WITH_ZSTD=ON - -DLZ4_HOME=#{Formula["lz4"].prefix} - -DPARQUET_BUILD_EXECUTABLES=ON - -DTHRIFT_HOME=#{Formula["thrift"].prefix} - ] - - mkdir "build" - cd "build" do - system "cmake", "../cpp", *std_cmake_args, *args - system "make" - system "make", "install" - end - end - - test do - (testpath/"test.cpp").write <<~EOS - #include "arrow/api.h" - int main(void) { - arrow::int64(); - return 0; - } - EOS - system ENV.cxx, "test.cpp", "-std=c++17", "-I#{include}", "-L#{lib}", \ - "-larrow", "-larrow_bundled_dependencies", "-o", "test" - system "./test" - end -end diff --git a/dev/tasks/homebrew-formulae/autobrew/apache-arrow.rb b/dev/tasks/homebrew-formulae/autobrew/apache-arrow.rb deleted file mode 100644 index 387759edf27e6..0000000000000 --- a/dev/tasks/homebrew-formulae/autobrew/apache-arrow.rb +++ /dev/null @@ -1,92 +0,0 @@ -# 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. - -# https://github.com/autobrew/homebrew-core/blob/-/Formula/apache-arrow.rb -class ApacheArrow < Formula - desc "Columnar in-memory analytics layer designed to accelerate big data" - homepage "https://arrow.apache.org/" - url "https://www.apache.org/dyn/closer.lua?path=arrow/arrow-13.0.0.9000/apache-arrow-13.0.0.9000.tar.gz" - sha256 "9948ddb6d4798b51552d0dca3252dd6e3a7d0f9702714fc6f5a1b59397ce1d28" - head "https://github.com/apache/arrow.git", branch: "main" - - bottle do - cellar :any - sha256 "9cd44700798638b5e3ee8774b3929f3fad815290d05572d1f39f01d6423eaad0" => :high_sierra - root_url "https://autobrew.github.io/bottles" - end - - # NOTE: if you add something here, be sure to add to PKG_LIBS in r/tools/autobrew - depends_on "boost" => :build - depends_on "cmake" => :build - depends_on "aws-sdk-cpp" - depends_on "brotli" - depends_on "lz4" - depends_on "openssl@1.1" - depends_on "snappy" - depends_on "thrift" - depends_on "zstd" - - def install - ENV.cxx11 - args = %W[ - -DARROW_BUILD_SHARED=OFF - -DARROW_BUILD_UTILITIES=ON - -DARROW_ACERO=ON - -DARROW_COMPUTE=ON - -DARROW_CSV=ON - -DARROW_CXXFLAGS="-D_LIBCPP_DISABLE_AVAILABILITY" - -DARROW_DATASET=ON - -DARROW_FILESYSTEM=ON - -DARROW_GCS=ON - -DARROW_JEMALLOC=ON - -DARROW_JSON=ON - -DARROW_MIMALLOC=ON - -DARROW_PARQUET=ON - -DARROW_S3=ON - -DARROW_VERBOSE_THIRDPARTY_BUILD=ON - -DARROW_WITH_BROTLI=ON - -DARROW_WITH_BZ2=ON - -DARROW_WITH_LZ4=ON - -DARROW_WITH_SNAPPY=ON - -DARROW_WITH_ZLIB=ON - -DARROW_WITH_ZSTD=ON - -DLZ4_HOME=#{Formula["lz4"].prefix} - -DPARQUET_BUILD_EXECUTABLES=ON - -DTHRIFT_HOME=#{Formula["thrift"].prefix} - ] - - mkdir "build" - cd "build" do - system "cmake", "../cpp", *std_cmake_args, *args - system "make" - system "make", "install" - end - end - - test do - (testpath/"test.cpp").write <<~EOS - #include "arrow/api.h" - int main(void) { - arrow::int64(); - return 0; - } - EOS - system ENV.cxx, "test.cpp", "-std=c++17", "-I#{include}", "-L#{lib}", \ - "-larrow", "-larrow_bundled_dependencies", "-o", "test" - system "./test" - end -end diff --git a/dev/tasks/macros.jinja b/dev/tasks/macros.jinja index 54f676fd49cd9..2a6cbe3e61109 100644 --- a/dev/tasks/macros.jinja +++ b/dev/tasks/macros.jinja @@ -256,22 +256,6 @@ on: done {% endmacro %} -{%- macro pin_brew_formulae(is_fork = false) -%} -{#- This macro expects the cwd to be arrow/r -#} - # Copy all *brew formulae - cp ../dev/tasks/homebrew-formulae/autobrew/apache-arrow*.rb tools/ - - # Pin the git commit in the formula to match - pushd tools - if [ "{{ is_fork }}" == "true" ]; then - sed -i.bak -E -e 's/apache\/arrow.git", branch: "main"$/{{ arrow.github_repo.split("/") | join("\/") }}.git", :revision => "'"{{ arrow.head }}"'"/' apache-arrow*.rb - else - sed -i.bak -E -e 's/arrow.git", branch: "main"$/arrow.git", :revision => "'"{{ arrow.head }}"'"/' apache-arrow*.rb - fi - rm -f apache-arrow*.rb.bak - popd -{% endmacro %} - {%- macro github_change_r_pkg_version(is_fork, version) -%} - name: Modify version shell: bash @@ -282,8 +266,6 @@ on: DESCRIPTION head DESCRIPTION rm -f DESCRIPTION.bak - - {{ pin_brew_formulae(is_fork) }} {% endmacro %} {%- macro github_test_r_src_pkg() -%} @@ -392,7 +374,7 @@ on: "AWS_SECRET_ACCESS_KEY": '${{ secrets.AWS_SECRET_ACCESS_KEY }}', "SCCACHE_BUCKET": '${{ secrets.SCCACHE_BUCKET }}', "SCCACHE_REGION": '${{ secrets.SCCACHE_REGION }}', - "SCCACHE_S3_KEY_PREFIX": sccache_key_prefix + "SCCACHE_S3_KEY_PREFIX": sccache_key_prefix } %} {% for key, value in sccache_vars.items() %} @@ -406,7 +388,7 @@ on: "AWS_SECRET_ACCESS_KEY": '$(AWS_SECRET_ACCESS_KEY)', "SCCACHE_BUCKET": '$(SCCACHE_BUCKET)', "SCCACHE_REGION": '$(SCCACHE_REGION)', - "SCCACHE_S3_KEY_PREFIX": sccache_key_prefix + "SCCACHE_S3_KEY_PREFIX": sccache_key_prefix } %} {% for key, value in sccache_vars.items() %} diff --git a/dev/tasks/r/github.macos-linux.local.yml b/dev/tasks/r/github.macos-linux.local.yml index f39471d5c5742..c65eb79f613c4 100644 --- a/dev/tasks/r/github.macos-linux.local.yml +++ b/dev/tasks/r/github.macos-linux.local.yml @@ -20,7 +20,7 @@ {{ macros.github_header() }} jobs: - autobrew: + local: name: "install from local source" runs-on: {{ "${{ matrix.os }}" }} {% if env is defined %} @@ -37,14 +37,14 @@ jobs: steps: {{ macros.github_checkout_arrow()|indent }} - - name: Configure non-autobrew dependencies (macos) + - name: Configure dependencies (macos) if: contains(matrix.os, 'macOS') run: | brew install openssl # disable sccache on macos as it timesout for unknown reasons # see GH-33721 # brew install sccache - - name: Configure non-autobrew dependencies (linux) + - name: Configure dependencies (linux) if: contains(matrix.os, 'ubuntu') run: | sudo env \ diff --git a/dev/tasks/r/github.macos.autobrew.yml b/dev/tasks/r/github.macos.autobrew.yml deleted file mode 100644 index b8e23690e2090..0000000000000 --- a/dev/tasks/r/github.macos.autobrew.yml +++ /dev/null @@ -1,88 +0,0 @@ -# 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. - -{% import 'macros.jinja' as macros with context %} -{% set is_fork = macros.is_fork %} - -{{ macros.github_header() }} - -jobs: - autobrew: - name: "Autobrew {{ '${{ matrix.platform }} R ${{ matrix.r-version }}' }}" - runs-on: {{ "${{ matrix.platform }}" }} - strategy: - fail-fast: false - matrix: - platform: - - macos-11 - - macos-10.13 # self-hosted - r-version: - - "{{ macros.r_release.ver }}" - - "{{ macros.r_oldrel.ver }}" - steps: - {{ macros.github_checkout_arrow(action_v='3')|indent }} - - name: Configure autobrew script - run: | - # minio and sccache are pre-installed on the self-hosted 10.13 runner - if [ {{ '${{ matrix.platform }}' }} != macos-10.13 ]; then - # install minio for tests - brew install minio - brew install sccache - fi - cd arrow/r - {{ macros.pin_brew_formulae(is_fork)|indent }} - - uses: r-lib/actions/setup-r@v2 - if: matrix.platform != 'macos-10.13' - with: - r-version: {{ '${{ matrix.r-version }}' }} - use-public-rspm: true - - name: Setup R - if: matrix.platform == 'macos-10.13' - run: | - # rig is a system utility that allows for switching - # between pre-installed R version on the self-hosted runners - rig default {{ '${{ matrix.r-version }}' }} - rig system setup-user-lib - rig system add-pak - - uses: r-lib/actions/setup-r-dependencies@v2 - with: - working-directory: 'arrow/r' - extra-packages: | - any::rcmdcheck - any::sys - any::readr - - name: Check - env: - _R_CHECK_CRAN_INCOMING_: false - NOT_CRAN: true - ARROW_USE_PKG_CONFIG: false - ARROW_R_DEV: true - FORCE_AUTOBREW: true - {{ macros.github_set_sccache_envvars()|indent(8)}} - run: arrow/ci/scripts/r_test.sh arrow - - name: Dump install logs - run: cat arrow/r/check/arrow.Rcheck/00install.out - if: always() - - name: Dump test logs - run: cat arrow/r/check/arrow.Rcheck/tests/testthat.Rout* - if: always() - - name: Save the test output - if: always() - uses: actions/upload-artifact@v2 - with: - name: test-output - path: arrow/r/check/arrow.Rcheck/tests/testthat.Rout* diff --git a/dev/tasks/r/github.macos.brew.yml b/dev/tasks/r/github.macos.brew.yml deleted file mode 100644 index 285eefa293eaa..0000000000000 --- a/dev/tasks/r/github.macos.brew.yml +++ /dev/null @@ -1,84 +0,0 @@ -# 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. - -{% import 'macros.jinja' as macros with context %} - -{{ macros.github_header() }} - -jobs: - autobrew: - name: "Homebrew + R package" - runs-on: macOS-11 - steps: - - name: Show system information - run: | - sysctl hw.optional machdep.cpu - - {{ macros.github_checkout_arrow()|indent }} - - {{ macros.configure_homebrew_arrow(formula)|indent }} - - name: Install apache-arrow - env: - {{ macros.github_set_sccache_envvars()|indent(8)}} - run: | - brew install sccache - # for testing - brew install minio - - # TODO(ARROW-16907): apache/arrow@main seems to be installed already - # so this does nothing on a branch/PR - brew install -v --HEAD {{ '$(brew --repository homebrew/core)/Formula/a/apache-arrow.rb' }} - - mkdir -p homebrew-logs - cp -a ~/Library/Logs/Homebrew/apache-arrow homebrew-logs/ - - name: Save logs - if: always() - uses: actions/upload-artifact@v2 - with: - name: homebrew-logs - path: homebrew-logs - - - uses: r-lib/actions/setup-r@v2 - - name: Install dependencies - run: | - install.packages("remotes") - remotes::install_deps("arrow/r", dependencies = TRUE) - remotes::install_cran(c("rcmdcheck", "sys", "sessioninfo")) - shell: Rscript {0} - - name: Session info - run: | - options(width = 100) - pkgs <- installed.packages()[, "Package"] - sessioninfo::session_info(pkgs, include_base = TRUE) - shell: Rscript {0} - - name: Check - env: - _R_CHECK_CRAN_INCOMING_: false - ARROW_R_VERBOSE_TEST: true - run: arrow/ci/scripts/r_test.sh arrow - - name: Dump install logs - run: cat arrow/r/check/arrow.Rcheck/00install.out - if: always() - - name: Dump test logs - run: cat arrow/r/check/arrow.Rcheck/tests/testthat.Rout* - if: always() - - name: Save the test output - if: always() - uses: actions/upload-artifact@v2 - with: - name: test-output - path: arrow/r/check/arrow.Rcheck/tests/testthat.Rout* diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml index bb6cdb212500a..e32e61bfbce46 100644 --- a/dev/tasks/tasks.yml +++ b/dev/tasks/tasks.yml @@ -82,8 +82,6 @@ groups: r: - test*-r-* - - homebrew-r-autobrew - - homebrew-r-brew # r-conda tasks - conda-linux-x64-cpu-r* - conda-linux-aarch64-cpu-r* @@ -149,10 +147,7 @@ groups: - conan-* - conda-* - java-jars - # List the homebrews explicitly because we don't care about running homebrew-cpp-autobrew - homebrew-cpp - - homebrew-r-autobrew - - homebrew-r-brew - nuget - test-* - example-* @@ -172,10 +167,7 @@ groups: - conda-* - conan-* - java-jars - # List the homebrews explicitly because we don't care about running homebrew-cpp-autobrew - homebrew-cpp - - homebrew-r-autobrew - - homebrew-r-brew - nuget - wheel-* - python-sdist @@ -779,24 +771,6 @@ tasks: params: formula: apache-arrow.rb - homebrew-cpp-autobrew: - ci: github - template: homebrew-formulae/github.macos.yml - params: - formula: autobrew/apache-arrow.rb - - homebrew-r-autobrew: - # This tests that the autobrew formula + script work in practice - ci: github - template: r/github.macos.autobrew.yml - - homebrew-r-brew: - # This tests that the autobrew formula + script work in practice - ci: github - template: r/github.macos.brew.yml - params: - formula: apache-arrow.rb - ############################## Arrow JAR's ################################## java-jars: diff --git a/go/LICENSE.txt b/go/LICENSE.txt index 9ea2e1f4497fb..57310329835da 100644 --- a/go/LICENSE.txt +++ b/go/LICENSE.txt @@ -1681,17 +1681,6 @@ for PyArrow. Ibis is released under the Apache License, Version 2.0. -------------------------------------------------------------------------------- -This project includes code from the autobrew project. - -* r/tools/autobrew and dev/tasks/homebrew-formulae/autobrew/apache-arrow.rb - are based on code from the autobrew project. - -Copyright (c) 2019, Jeroen Ooms -License: MIT -Homepage: https://github.com/jeroen/autobrew - --------------------------------------------------------------------------------- - dev/tasks/homebrew-formulae/apache-arrow.rb has the following license: BSD 2-Clause License diff --git a/r/.Rbuildignore b/r/.Rbuildignore index b8f768a8372b6..f5eeba4117454 100644 --- a/r/.Rbuildignore +++ b/r/.Rbuildignore @@ -20,8 +20,6 @@ clang_format.sh ^Makefile$ ^.*\.orig$ ^.*\.cmd$ -^autobrew$ -^apache-arrow.rb$ ^.*\.Rhistory$ ^extra-tests STYLE.md diff --git a/r/PACKAGING.md b/r/PACKAGING.md index edfca651e9d38..64423b4d8eb9b 100644 --- a/r/PACKAGING.md +++ b/r/PACKAGING.md @@ -38,32 +38,8 @@ For a high-level overview of the release process see the Wait for the release candidate to be cut: ## After release candidate has been cut -- [ ] Create a CRAN-release branch from the release candidate commit -## Optional: PRs for autobrew and rtools (release candidate) - -Make pull requests into the [autobrew](https://github.com/autobrew) and -[rtools-packages](https://github.com/r-windows/rtools-packages) repositories -used by the configure script on MacOS and Windows. These pull requests will -use the release candidate as the source. - -- [ ] Pull request to modify - [the apache-arrow autobrew formula]( https://github.com/autobrew/homebrew-core/blob/high-sierra/Formula/apache-arrow.rb) - to update the release version, SHA256 checksum of the release source file (which can be found in the same directory as the release source file), and any changes to dependencies and build steps that have changed in the - [copy of the formula we have of that formula in the Arrow repo](https://github.com/apache/arrow/blob/main/dev/tasks/homebrew-formulae/autobrew/apache-arrow.rb) -- [ ] Pull request to modify - [the apache-arrow-static autobrew formula](https://github.com/autobrew/homebrew-cran/blob/master/Formula/apache-arrow-static.rb) - to update the version, SHA, and any changes to dependencies and build steps that have changed in the - [copy of the formula we have of that formula in the Arrow repo](https://github.com/apache/arrow/blob/main/dev/tasks/homebrew-formulae/autobrew/apache-arrow-static.rb) -- [ ] Pull request to modify the - [autobrew script](https://github.com/autobrew/scripts/blob/master/apache-arrow) - to include any additions made to - [r/tools/autobrew](https://github.com/apache/arrow/blob/main/r/tools/autobrew). -- [ ] Pull request to modify the - [RTools PKGBUILD script](https://github.com/r-windows/rtools-packages/blob/master/mingw-w64-arrow/PKGBUILD) - to reflect changes in - [ci/PKGBUILD](https://github.com/apache/arrow/blob/main/ci/scripts/PKGBUILD), - uncommenting the line that says "uncomment to test the rc". +- [ ] Create a CRAN-release branch from the release candidate commit ## Prepare and check the .tar.gz that will be released to CRAN. @@ -77,19 +53,11 @@ use the release candidate as the source. - [ ] Run reverse dependency checks using `archery docker run r-revdepcheck`. ## Release vote -- [ ] Release vote passed! - -## PRs for autobrew and rtools (official release) -Create new autobrew and r-windows PRs such that they use the *release* -instead of the *release candidate*: - -- [ ] PR into autobrew/homebrew-core (apache-arrow autobrew formula) -- [ ] PR into autobrew/homebrew-core (apache-arrow-static autobrew formula) -- [ ] PR into autobrew/scripts -- [ ] PR into r-windows/rtools-packages +- [ ] Release vote passed! ## Generate R package to submit to CRAN + - [ ] If the release candidate commit updated, rebase the CRAN release branch on that commit. - [ ] Pick any commits that were made to main since the release commit that @@ -107,6 +75,7 @@ Ensure linux binary packages are available: https://apache.jfrog.io/ui/repos/tree/General/arrow/r ## Check binary Arrow C++ distributions specific to the R package + - [ ] Upload the .tar.gz to [win-builder](https://win-builder.r-project.org/upload.aspx) (r-devel only) and confirm (with Nic, who will automatically receive an email about the results) that the check is clean. This step cannot be completed before Jeroen has put the binaries in the MinGW repository, i.e. [here](https://ftp.opencpu.org/rtools/ucrt64/), [here](https://ftp.opencpu.org/rtools/mingw64/), and [here](https://ftp.opencpu.org/rtools/mingw32/). diff --git a/r/configure b/r/configure index d244b1a7c148f..ced3b40a68901 100755 --- a/r/configure +++ b/r/configure @@ -373,8 +373,6 @@ find_or_build_libarrow # We should have a valid libarrow build in $_LIBARROW_FOUND # Now set `PKG_LIBS`, `PKG_DIRS`, and `PKG_CFLAGS` based on that. -# _LIBARROW_FOUND should only be unset in the FORCE_AUTOBREW case, -# and autobrew sets its own PKG_* vars. (See the TODO about changing that.) if [ "$_LIBARROW_FOUND" != "false" ] && [ "$_LIBARROW_FOUND" != "" ]; then set_pkg_vars ${_LIBARROW_FOUND} fi diff --git a/r/tools/autobrew b/r/tools/autobrew deleted file mode 100644 index 35ffebcab3796..0000000000000 --- a/r/tools/autobrew +++ /dev/null @@ -1,80 +0,0 @@ -# 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. - -# https://github.com/jeroen/autobrew/blob/gh-pages/apache-arrow -export HOMEBREW_NO_ANALYTICS=1 -export HOMEBREW_NO_AUTO_UPDATE=1 - -if [[ ${OSTYPE:6} -ge 20 ]]; then - # We are on a modern enough macOS, we can use the real brew - UPSTREAM_ORG="homebrew" - PKG_BREW_NAME="$PKG_BREW_NAME-static" -else - # Official Homebrew no longer supports El-Capitan - # so we need to use the forked autobrew version of brew that supports old macOSes - UPSTREAM_ORG="autobrew" -fi - -if [ "$DISABLE_AUTOBREW" ]; then return 0; fi -AUTOBREW=${TMPDIR-/tmp} -export HOMEBREW_TEMP="$AUTOBREW/hbtmp" -BREWDIR="$AUTOBREW/build-$PKG_BREW_NAME" -BREW="$BREWDIR/bin/brew" -rm -Rf $BREWDIR -mkdir -p $BREWDIR -echo "$(date): Auto-brewing $PKG_BREW_NAME in $BREWDIR..." -curl -fsSL https://github.com/$UPSTREAM_ORG/brew/tarball/master | tar xz --strip 1 -C $BREWDIR - -# Install bottle + dependencies -export HOMEBREW_CACHE="$AUTOBREW" -LOCAL_FORMULA="tools/${PKG_BREW_NAME}.rb" -if [ -f "$LOCAL_FORMULA" ]; then - if [[ ${OSTYPE:6} -ge 20 ]]; then - $BREW tap - - # Tap https://github.com/autobrew/homebrew-cran so that we can get dependencies from there - $BREW tap autobrew/cran - fi - - # Use the local brew formula and install --HEAD - $BREW deps -n "$LOCAL_FORMULA" 2>/dev/null - BREW_DEPS=$($BREW deps -n "$LOCAL_FORMULA" 2>/dev/null) - $BREW install --force-bottle $BREW_DEPS 2>&1 | perl -pe 's/Warning/Note/gi' - $BREW install -v --build-from-source --HEAD "$LOCAL_FORMULA" 2>&1 | perl -pe 's/Warning/Note/gi' -else - $BREW install --force-bottle $BREW_DEPS $PKG_BREW_NAME 2>&1 | perl -pe 's/Warning/Note/gi' -fi - -# Hardcode this for my custom autobrew build -rm -f $BREWDIR/lib/*.dylib -AWS_LIBS="-laws-cpp-sdk-config -laws-cpp-sdk-transfer -laws-cpp-sdk-identity-management -laws-cpp-sdk-cognito-identity -laws-cpp-sdk-sts -laws-cpp-sdk-s3 -laws-cpp-sdk-core -laws-c-event-stream -laws-checksums -laws-c-common -laws-crt-cpp -laws-c-io -laws-c-s3 -laws-c-auth -laws-c-http -laws-c-cal -laws-c-compression -laws-c-mqtt -lpthread -lcurl" -PKG_LIBS="-lparquet -larrow_dataset -larrow_acero -larrow -larrow_bundled_dependencies -lthrift -lbrotlienc-static -lbrotlidec-static -lbrotlicommon-static -llz4 -lsnappy -lzstd $AWS_LIBS -lssl -lcrypto" -PKG_DIRS="-L$BREWDIR/lib" - -# Prevent CRAN builder from linking against old libs in /usr/local/lib -for FILE in $BREWDIR/Cellar/*/*/lib/*.a; do - BASENAME=`basename $FILE` - LIBNAME=`echo "${BASENAME%.*}" | cut -c4-` - cp -f $FILE $BREWDIR/lib/libbrew$LIBNAME.a - echo "created $BREWDIR/lib/libbrew$LIBNAME.a" - PKG_LIBS=`echo $PKG_LIBS | sed "s/-l$LIBNAME/-lbrew$LIBNAME/g"` -done - -PKG_CFLAGS="-I$BREWDIR/opt/$PKG_BREW_NAME/include -DARROW_R_WITH_PARQUET -DARROW_R_WITH_ACERO -DARROW_R_WITH_DATASET -DARROW_R_WITH_JSON -DARROW_R_WITH_S3 -DARROW_R_WITH_GCS -D_LIBCPP_DISABLE_AVAILABILITY" - -unset HOMEBREW_NO_ANALYTICS -unset HOMEBREW_NO_AUTO_UPDATE