diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml index b0072791b36..56cf75d2864 100644 --- a/.github/workflows/cpp.yml +++ b/.github/workflows/cpp.yml @@ -94,12 +94,12 @@ jobs: title: AMD64 Ubuntu 22.04 C++ ASAN UBSAN ubuntu: 22.04 - arch: arm64v8 - clang-tools: 10 + clang-tools: 14 image: ubuntu-cpp - llvm: 10 + llvm: 14 runs-on: ubuntu-24.04-arm - title: ARM64 Ubuntu 20.04 C++ - ubuntu: 20.04 + title: ARM64 Ubuntu 22.04 C++ + ubuntu: 22.04 env: ARCH: ${{ matrix.arch }} ARROW_SIMD_LEVEL: ${{ matrix.simd-level }} diff --git a/ci/docker/ubuntu-20.04-cpp-minimal.dockerfile b/ci/docker/ubuntu-20.04-cpp-minimal.dockerfile deleted file mode 100644 index 79a0c786aaf..00000000000 --- a/ci/docker/ubuntu-20.04-cpp-minimal.dockerfile +++ /dev/null @@ -1,108 +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. - -ARG base=amd64/ubuntu:20.04 -FROM ${base} - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN echo "debconf debconf/frontend select Noninteractive" | \ - debconf-set-selections - -RUN apt-get update -y -q && \ - apt-get install -y -q \ - build-essential \ - ccache \ - curl \ - gdb \ - git \ - libssl-dev \ - libcurl4-openssl-dev \ - python3-pip \ - python3-venv \ - tzdata \ - wget && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* - -# Installs LLVM toolchain, for Gandiva and testing other compilers -# -# Note that this is installed before the base packages to improve iteration -# while debugging package list with docker build. -ARG llvm -RUN latest_system_llvm=10 && \ - if [ ${llvm} -gt ${latest_system_llvm} ]; then \ - apt-get update -y -q && \ - apt-get install -y -q --no-install-recommends \ - apt-transport-https \ - ca-certificates \ - gnupg \ - lsb-release \ - wget && \ - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \ - code_name=$(lsb_release --codename --short) && \ - if [ ${llvm} -gt 10 ]; then \ - echo "deb https://apt.llvm.org/${code_name}/ llvm-toolchain-${code_name}-${llvm} main" > \ - /etc/apt/sources.list.d/llvm.list; \ - fi; \ - fi && \ - apt-get update -y -q && \ - apt-get install -y -q --no-install-recommends \ - clang-${llvm} \ - llvm-${llvm}-dev && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* - -ARG cmake -COPY ci/scripts/install_cmake.sh /arrow/ci/scripts/ -RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local/ - -COPY ci/scripts/install_minio.sh /arrow/ci/scripts/ -RUN /arrow/ci/scripts/install_minio.sh latest /usr/local - -COPY ci/scripts/install_gcs_testbench.sh /arrow/ci/scripts/ -RUN /arrow/ci/scripts/install_gcs_testbench.sh default - -COPY ci/scripts/install_sccache.sh /arrow/ci/scripts/ -RUN /arrow/ci/scripts/install_sccache.sh unknown-linux-musl /usr/local/bin - -ENV ARROW_ACERO=ON \ - ARROW_AZURE=OFF \ - ARROW_BUILD_TESTS=ON \ - ARROW_DATASET=ON \ - ARROW_FLIGHT=ON \ - ARROW_GANDIVA=ON \ - ARROW_GCS=ON \ - ARROW_HDFS=ON \ - ARROW_HOME=/usr/local \ - ARROW_INSTALL_NAME_RPATH=OFF \ - ARROW_ORC=ON \ - ARROW_PARQUET=ON \ - ARROW_S3=ON \ - ARROW_USE_CCACHE=ON \ - ARROW_WITH_BROTLI=ON \ - ARROW_WITH_BZ2=ON \ - ARROW_WITH_LZ4=ON \ - ARROW_WITH_OPENTELEMETRY=OFF \ - ARROW_WITH_SNAPPY=ON \ - ARROW_WITH_ZLIB=ON \ - ARROW_WITH_ZSTD=ON \ - CMAKE_GENERATOR="Unix Makefiles" \ - PARQUET_BUILD_EXAMPLES=ON \ - PARQUET_BUILD_EXECUTABLES=ON \ - PATH=/usr/lib/ccache/:$PATH \ - PYTHON=python3 diff --git a/ci/docker/ubuntu-20.04-cpp.dockerfile b/ci/docker/ubuntu-20.04-cpp.dockerfile deleted file mode 100644 index db7e03b8bfb..00000000000 --- a/ci/docker/ubuntu-20.04-cpp.dockerfile +++ /dev/null @@ -1,197 +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. - -ARG base=amd64/ubuntu:20.04 -FROM ${base} - -SHELL ["/bin/bash", "-o", "pipefail", "-c"] - -RUN echo "debconf debconf/frontend select Noninteractive" | \ - debconf-set-selections - -# Installs LLVM toolchain, for Gandiva and testing other compilers -# -# Note that this is installed before the base packages to improve iteration -# while debugging package list with docker build. -ARG clang_tools -ARG llvm -RUN latest_system_llvm=10 && \ - if [ ${llvm} -gt ${latest_system_llvm} -o \ - ${clang_tools} -gt ${latest_system_llvm} ]; then \ - apt-get update -y -q && \ - apt-get install -y -q --no-install-recommends \ - apt-transport-https \ - ca-certificates \ - gnupg \ - lsb-release \ - wget && \ - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \ - code_name=$(lsb_release --codename --short) && \ - if [ ${llvm} -gt 10 ]; then \ - echo "deb https://apt.llvm.org/${code_name}/ llvm-toolchain-${code_name}-${llvm} main" > \ - /etc/apt/sources.list.d/llvm.list; \ - fi && \ - if [ ${clang_tools} -ne ${llvm} -a \ - ${clang_tools} -gt ${latest_system_llvm} ]; then \ - echo "deb https://apt.llvm.org/${code_name}/ llvm-toolchain-${code_name}-${clang_tools} main" > \ - /etc/apt/sources.list.d/clang-tools.list; \ - fi; \ - fi && \ - apt-get update -y -q && \ - apt-get install -y -q --no-install-recommends \ - clang-${clang_tools} \ - clang-${llvm} \ - clang-format-${clang_tools} \ - clang-tidy-${clang_tools} \ - llvm-${llvm}-dev && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* - -# Installs C++ toolchain and dependencies -RUN apt-get update -y -q && \ - apt-get install -y -q --no-install-recommends \ - autoconf \ - ca-certificates \ - ccache \ - curl \ - g++ \ - gcc \ - gdb \ - git \ - libbenchmark-dev \ - libboost-filesystem-dev \ - libboost-system-dev \ - libbrotli-dev \ - libbz2-dev \ - libc-ares-dev \ - libcurl4-openssl-dev \ - libgflags-dev \ - libgoogle-glog-dev \ - libidn2-dev \ - libkrb5-dev \ - libldap-dev \ - liblz4-dev \ - libnghttp2-dev \ - libprotobuf-dev \ - libprotoc-dev \ - libpsl-dev \ - libradospp-dev \ - libre2-dev \ - librtmp-dev \ - libsnappy-dev \ - libssh-dev \ - libssh2-1-dev \ - libssl-dev \ - libthrift-dev \ - libutf8proc-dev \ - libxml2-dev \ - libzstd-dev \ - lld \ - make \ - ninja-build \ - nlohmann-json3-dev \ - npm \ - patch \ - pkg-config \ - protobuf-compiler \ - python3-dev \ - python3-pip \ - python3-rados \ - python3-venv \ - rados-objclass-dev \ - rapidjson-dev \ - rsync \ - tzdata \ - wget && \ - apt-get clean && \ - rm -rf /var/lib/apt/lists* - -ARG cmake -COPY ci/scripts/install_cmake.sh /arrow/ci/scripts/ -RUN /arrow/ci/scripts/install_cmake.sh ${cmake} /usr/local/ - -COPY ci/scripts/install_minio.sh /arrow/ci/scripts/ -RUN /arrow/ci/scripts/install_minio.sh latest /usr/local - -COPY ci/scripts/install_gcs_testbench.sh /arrow/ci/scripts/ -RUN /arrow/ci/scripts/install_gcs_testbench.sh default - -COPY ci/scripts/install_azurite.sh /arrow/ci/scripts/ -RUN /arrow/ci/scripts/install_azurite.sh - -COPY ci/scripts/install_ceph.sh /arrow/ci/scripts/ -RUN /arrow/ci/scripts/install_ceph.sh - -COPY ci/scripts/install_sccache.sh /arrow/ci/scripts/ -RUN /arrow/ci/scripts/install_sccache.sh unknown-linux-musl /usr/local/bin - -# Prioritize system packages and local installation. -# -# The following dependencies will be downloaded due to missing/invalid packages -# provided by the distribution: -# - Abseil is not packaged -# - libc-ares-dev does not install CMake config files -# - flatbuffer is not packaged -# - libgtest-dev only provide sources -# - libprotobuf-dev only provide sources -# - opentelemetry-cpp-dev is not packaged -# -# ARROW-17051: this build uses static Protobuf, so we must also use -# static Arrow to run Flight/Flight SQL tests. -ENV absl_SOURCE=BUNDLED \ - ARROW_ACERO=ON \ - ARROW_AZURE=OFF \ - ARROW_BUILD_STATIC=ON \ - ARROW_BUILD_TESTS=ON \ - ARROW_DEPENDENCY_SOURCE=SYSTEM \ - ARROW_DATASET=ON \ - ARROW_FLIGHT=OFF \ - ARROW_GANDIVA=ON \ - ARROW_GCS=ON \ - ARROW_HDFS=ON \ - ARROW_HOME=/usr/local \ - ARROW_INSTALL_NAME_RPATH=OFF \ - ARROW_JEMALLOC=ON \ - ARROW_ORC=ON \ - ARROW_PARQUET=ON \ - ARROW_S3=ON \ - ARROW_SUBSTRAIT=ON \ - ARROW_USE_ASAN=OFF \ - ARROW_USE_CCACHE=ON \ - ARROW_USE_LLD=ON \ - ARROW_USE_UBSAN=OFF \ - ARROW_WITH_BROTLI=ON \ - ARROW_WITH_BZ2=ON \ - ARROW_WITH_LZ4=ON \ - ARROW_WITH_OPENTELEMETRY=ON \ - ARROW_WITH_SNAPPY=ON \ - ARROW_WITH_ZLIB=ON \ - ARROW_WITH_ZSTD=ON \ - ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-${llvm}/bin/llvm-symbolizer \ - AWSSDK_SOURCE=BUNDLED \ - Azure_SOURCE=BUNDLED \ - google_cloud_cpp_storage_SOURCE=BUNDLED \ - gRPC_SOURCE=BUNDLED \ - GTest_SOURCE=BUNDLED \ - opentelemetry_cpp_SOURCE=BUNDLED \ - ORC_SOURCE=BUNDLED \ - PARQUET_BUILD_EXAMPLES=ON \ - PARQUET_BUILD_EXECUTABLES=ON \ - Protobuf_SOURCE=BUNDLED \ - PATH=/usr/lib/ccache/:$PATH \ - PYTHON=python3 \ - xsimd_SOURCE=BUNDLED diff --git a/ci/docker/ubuntu-22.04-cpp.dockerfile b/ci/docker/ubuntu-22.04-cpp.dockerfile index 4a3d311acbf..8235e72c4ef 100644 --- a/ci/docker/ubuntu-22.04-cpp.dockerfile +++ b/ci/docker/ubuntu-22.04-cpp.dockerfile @@ -41,7 +41,7 @@ RUN latest_system_llvm=14 && \ wget && \ wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \ code_name=$(lsb_release --codename --short) && \ - if [ ${llvm} -gt 10 ]; then \ + if [ ${llvm} -gt ${latest_system_llvm} ]; then \ echo "deb https://apt.llvm.org/${code_name}/ llvm-toolchain-${code_name}-${llvm} main" > \ /etc/apt/sources.list.d/llvm.list; \ fi && \ @@ -68,9 +68,6 @@ RUN apt-get update -y -q && \ bzip2 \ ca-certificates \ ccache \ - ceph \ - ceph-fuse \ - ceph-mds \ curl \ gdb \ git \ @@ -180,6 +177,9 @@ RUN /arrow/ci/scripts/install_gcs_testbench.sh default COPY ci/scripts/install_azurite.sh /arrow/ci/scripts/ RUN /arrow/ci/scripts/install_azurite.sh +COPY ci/scripts/install_ceph.sh /arrow/ci/scripts/ +RUN /arrow/ci/scripts/install_ceph.sh + COPY ci/scripts/install_sccache.sh /arrow/ci/scripts/ RUN /arrow/ci/scripts/install_sccache.sh unknown-linux-musl /usr/local/bin diff --git a/ci/docker/ubuntu-24.04-cpp.dockerfile b/ci/docker/ubuntu-24.04-cpp.dockerfile index 592a9a6a232..0347d452d7b 100644 --- a/ci/docker/ubuntu-24.04-cpp.dockerfile +++ b/ci/docker/ubuntu-24.04-cpp.dockerfile @@ -68,9 +68,6 @@ RUN apt-get update -y -q && \ autoconf \ ca-certificates \ ccache \ - ceph \ - ceph-fuse \ - ceph-mds \ cmake \ curl \ gdb \ @@ -165,6 +162,9 @@ RUN /arrow/ci/scripts/install_gcs_testbench.sh default COPY ci/scripts/install_azurite.sh /arrow/ci/scripts/ RUN /arrow/ci/scripts/install_azurite.sh +COPY ci/scripts/install_ceph.sh /arrow/ci/scripts/ +RUN /arrow/ci/scripts/install_ceph.sh + COPY ci/scripts/install_sccache.sh /arrow/ci/scripts/ RUN /arrow/ci/scripts/install_sccache.sh unknown-linux-musl /usr/local/bin diff --git a/dev/tasks/tasks.yml b/dev/tasks/tasks.yml index ba0cdbabff1..e439a696692 100644 --- a/dev/tasks/tasks.yml +++ b/dev/tasks/tasks.yml @@ -875,22 +875,20 @@ tasks: params: image: conda-cpp-valgrind -{% for ubuntu_version in ["20.04", "22.04"] %} - test-ubuntu-{{ ubuntu_version }}-cpp: + test-ubuntu-22.04-cpp: ci: github template: docker-tests/github.linux.yml params: env: - UBUNTU: "{{ ubuntu_version }}" + UBUNTU: 22.04 image: ubuntu-cpp -{% endfor %} - test-ubuntu-20.04-cpp-bundled: + test-ubuntu-22.04-cpp-bundled: ci: github template: docker-tests/github.linux.yml params: env: - UBUNTU: 20.04 + UBUNTU: 22.04 image: ubuntu-cpp-bundled test-ubuntu-24.04-cpp-bundled-offline: @@ -1331,14 +1329,6 @@ tasks: ############################## CUDA tests ################################# - test-cuda-cpp-ubuntu-20.04-cuda-11.2.2: - ci: github - template: docker-tests/github.cuda.yml - params: - env: - UBUNTU: 20.04 - image: ubuntu-cuda-cpp - test-cuda-cpp-ubuntu-22.04-cuda-11.7.1: ci: github template: docker-tests/github.cuda.yml diff --git a/docker-compose.yml b/docker-compose.yml index 52e8558e050..56bc4c11f16 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -379,7 +379,7 @@ services: # docker compose run --rm ubuntu-cpp # Parameters: # ARCH: amd64, arm64v8, s390x, ... - # UBUNTU: 20.04, 22.04, 24.04 + # UBUNTU: 22.04, 24.04 image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp build: context: . @@ -416,7 +416,7 @@ services: # docker compose run --rm ubuntu-cpp-static # Parameters: # ARCH: amd64, arm64v8, s390x, ... - # UBUNTU: 20.04, 22.04 + # UBUNTU: 22.04, 24.04 image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp-static build: context: . @@ -663,7 +663,7 @@ services: # docker compose run --rm ubuntu-cpp-thread-sanitizer # Parameters: # ARCH: amd64, arm64v8, ... - # UBUNTU: 20.04, 22.04 + # UBUNTU: 22.04, 24.04 image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp build: context: . @@ -805,7 +805,7 @@ services: # docker compose run --rm ubuntu-c-glib # Parameters: # ARCH: amd64, arm64v8, ... - # UBUNTU: 20.04, 22.04 + # UBUNTU: 22.04, 24.04 image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-c-glib build: context: . @@ -865,7 +865,7 @@ services: # docker compose run --rm ubuntu-ruby # Parameters: # ARCH: amd64, arm64v8, ... - # UBUNTU: 20.04, 22.04 + # UBUNTU: 22.04, 24.04 image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-ruby build: context: . @@ -1132,7 +1132,7 @@ services: # docker compose run --rm ubuntu-python-313-freethreading # Parameters: # ARCH: amd64, arm64v8, ... - # UBUNTU: 20.04, 22.04, 24.04 + # UBUNTU: 22.04, 24.04 image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-python-313-freethreading build: context: .