This is an automated email from the ASF dual-hosted git repository.

raulcd pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new a21147b500 GH-45478: [CI][C++] Drop support for Ubuntu 20.04 (#45519)
a21147b500 is described below

commit a21147b50081d4fd64b2fdd04c7ed00cefd5bae5
Author: Sutou Kouhei <[email protected]>
AuthorDate: Fri Feb 14 16:28:28 2025 +0900

    GH-45478: [CI][C++] Drop support for Ubuntu 20.04 (#45519)
    
    ### Rationale for this change
    
    Ubuntu 20.04 will read EOL on 2025-05.
    
    ### What changes are included in this PR?
    
    Remove jobs that use Ubuntu 20.04 or replace them with Ubuntu 22.04.
    
    ### Are these changes tested?
    
    Yes.
    
    ### Are there any user-facing changes?
    
    No.
    * GitHub Issue: #45478
    
    Authored-by: Sutou Kouhei <[email protected]>
    Signed-off-by: Raúl Cumplido <[email protected]>
---
 .github/workflows/cpp.yml                     |   8 +-
 ci/docker/ubuntu-20.04-cpp-minimal.dockerfile | 108 --------------
 ci/docker/ubuntu-20.04-cpp.dockerfile         | 197 --------------------------
 ci/docker/ubuntu-22.04-cpp.dockerfile         |   8 +-
 ci/docker/ubuntu-24.04-cpp.dockerfile         |   6 +-
 dev/tasks/tasks.yml                           |  18 +--
 docker-compose.yml                            |  12 +-
 7 files changed, 21 insertions(+), 336 deletions(-)

diff --git a/.github/workflows/cpp.yml b/.github/workflows/cpp.yml
index b0072791b3..56cf75d286 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 79a0c786aa..0000000000
--- 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 db7e03b8bf..0000000000
--- 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 4a3d311acb..8235e72c4e 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 592a9a6a23..0347d452d7 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 2f12faa1c5..881fbcdb48 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:
@@ -1323,14 +1321,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 9a969bedbe..58e88cbd9b 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -378,7 +378,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: .
@@ -415,7 +415,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: .
@@ -662,7 +662,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: .
@@ -804,7 +804,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: .
@@ -864,7 +864,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: .
@@ -1131,7 +1131,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: .

Reply via email to