# 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.

groups:
  # these groups are just for convenience
  # makes it easier to submit related tasks https://github.com/github/release-radar

{############################# Packaging tasks ###############################}

  conan:
    - conan-*

  wheel:
    - wheel-*
    - python-sdist

  homebrew:
    - homebrew-*

  packaging:
    - conan-*
    - matlab
    - python-sdist
    - r-binary-packages
    - wheel-*
    - test-debian-*-docs

{############################# Testing tasks #################################}

  test:
    - test-*

  cpp:
    - test-*cpp*
    - example-*cpp*

  c-glib:
    - test-*c-glib*

  python:
    - test-*python*
    - example-*python*

  r:
    - test-r-*
    - r-binary-packages
    - r-recheck-most

  ruby:
    - test-*ruby*

  vcpkg:
    - test-*vcpkg*
    - wheel-*

  integration:
    - test-*dask*
    - test-*hdfs*
    - test-*pandas*
    - test-*spark*

  example:
    - example-*

  example-cpp:
    - example-*cpp*

  example-python:
    - example-*python*

  fuzz:
    - test-*fuzz*

  verify-rc:
    - verify-rc-*

  verify-rc-source:
    - verify-rc-source-*

  verify-rc-source-macos:
    - verify-rc-source-*-macos-*

  verify-rc-source-linux:
    - verify-rc-source-*-linux-*

{######################## Tasks to run regularly #############################}

  nightly:
    - verify-rc-source-*
    - conan-*
    - homebrew-cpp
    - test-*
    - example-*
    - wheel-*
    - python-sdist

  nightly-tests:
    - test-*
    - example-*

  nightly-packaging:
    - conan-*
    - homebrew-cpp
    - wheel-*
    - python-sdist
    - r-binary-packages

  nightly-release:
    - verify-rc-source-*

tasks:
  # arbitrary_task_name:
  #   template: path of jinja2 templated yml
  #   params: optional extra parameters
  #   artifacts: list of regex patterns, each needs to match a single github
  #              release asset, version variable is replaced in the pattern
  #              e.g.:
  #     - pyarrow-{no_rc_version}-py38(h[a-z0-9]+)_0-linux-64.tar.bz2

  ############################## Conan ##################################

  conan-minimum:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      image: conan
      push: false

  conan-maximum:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      flags: >-
        -e ARROW_CONAN_PARQUET=True
        -e ARROW_CONAN_WITH_BROTLI=True
        -e ARROW_CONAN_WITH_BZ2=True
        -e ARROW_CONAN_WITH_FLIGHT_RPC=True
        -e ARROW_CONAN_WITH_GLOG=True
        -e ARROW_CONAN_WITH_JEMALLOC=True
        -e ARROW_CONAN_WITH_JSON=True
        -e ARROW_CONAN_WITH_LZ4=True
        -e ARROW_CONAN_WITH_SNAPPY=True
        -e ARROW_CONAN_WITH_ZSTD=True
      image: conan
      push: false

  ########################### Python Minimal ############################

{% for kind in ["fedora-conda", "ubuntu-venv"] %}
  example-python-minimal-build-{{ kind }}:
    ci: github
    template: python-minimal-build/github.linux.yml
    params:
      type: minimal_build
      image: minimal-{{ kind }}
{% endfor %}

  ########################### Python Wheels ############################

{% for python_version, python_tag, abi_tag in [("3.10", "cp310", "cp310"),
                                               ("3.11", "cp311", "cp311"),
                                               ("3.12", "cp312", "cp312"),
                                               ("3.13", "cp313", "cp313"),
                                               ("3.13", "cp313", "cp313t"),
                                               ("3.14", "cp314", "cp314"),
                                               ("3.14", "cp314", "cp314t")] %}

{############################## Wheel Linux ##################################}

{% for wheel_kind, arch, version, platform_tag in [("manylinux", "amd64", "2-28", "manylinux_2_28_x86_64"),
                                                   ("manylinux", "arm64", "2-28", "manylinux_2_28_aarch64"),
                                                   ("musllinux", "amd64", "1-2", "musllinux_1_2_x86_64"),
                                                   ("musllinux", "arm64", "1-2", "musllinux_1_2_aarch64")] %}
  wheel-{{ wheel_kind }}-{{ version }}-{{ python_tag }}-{{ abi_tag }}-{{ arch }}:
    ci: github
    template: python-wheels/github.linux.yml
    params:
      arch: "{{ arch }}"
      linux_wheel_kind: "{{ wheel_kind }}"
      linux_wheel_version: "{{ version }}"
      python_abi_tag: "{{ abi_tag }}"
      python_version: "{{ python_version }}"
      wheel_platform_tag: "{{ platform_tag }}"
    artifacts:
      - pyarrow-{no_rc_version}-{{ python_tag }}-{{ abi_tag }}-{{ platform_tag }}.whl
{% endfor %}

{############################## Wheel macOS ####################################}

  wheel-macos-monterey-{{ python_tag }}-{{ abi_tag }}-amd64:
    ci: github
    template: python-wheels/github.osx.yml
    params:
      arch: "x86_64"
      arrow_jemalloc: "ON"
      python_version: "{{ python_version }}"
      python_abi_tag: "{{ abi_tag }}"
      macos_deployment_target: "12.0"
      runs_on: "macos-15-intel"
      vcpkg_arch: "amd64"
    artifacts:
      - pyarrow-{no_rc_version}-{{ python_tag }}-{{ abi_tag }}-macosx_12_0_x86_64.whl

  wheel-macos-monterey-{{ python_tag }}-{{ abi_tag }}-arm64:
    ci: github
    template: python-wheels/github.osx.yml
    params:
      arch: "arm64"
      arrow_jemalloc: "OFF"
      python_version: "{{ python_version }}"
      python_abi_tag: "{{ abi_tag }}"
      macos_deployment_target: "12.0"
      runs_on: "macos-14"
      vcpkg_arch: "arm64"
    artifacts:
      - pyarrow-{no_rc_version}-{{ python_tag }}-{{ abi_tag }}-macosx_12_0_arm64.whl

{############################## Wheel Windows ################################}

  wheel-windows-{{ python_tag }}-{{ abi_tag }}-amd64:
    ci: github
    template: python-wheels/github.windows.yml
    params:
      python_version: "{{ python_version }}"
      python_abi_tag: "{{ abi_tag }}"
    artifacts:
      - pyarrow-{no_rc_version}-{{ python_tag }}-{{ abi_tag }}-win_amd64.whl

{% endfor %}

{############################ Python sdist ####################################}

  python-sdist:
    ci: github
    template: python-sdist/github.yml
    artifacts:
      - pyarrow-{no_rc_version}.tar.gz

  ############################## Homebrew Tasks ################################

  homebrew-cpp:
    ci: github
    template: homebrew-formulae/github.macos.yml
    params:
      formula: apache-arrow.rb

  ############################## MATLAB Packages ################################

  matlab:
    ci: github
    template: matlab/github.yml
    artifacts:
      - matlab-arrow-{no_rc_no_dev_version}.mltbx

  ######################## R packages & binaries ##############################
  r-binary-packages:
    ci: github
    template: r/github.packages.yml
    params:
      custom_version: Unset
    artifacts:
      - r-libarrow-windows-x86_64-{no_rc_r_version}\.zip
      - r-libarrow-linux-x86_64-{no_rc_r_version}\.zip
      - r-libarrow-darwin-arm64-{no_rc_r_version}\.zip
      - r-libarrow-darwin-x86_64-{no_rc_r_version}\.zip
      - r-pkg__bin__windows__contrib__4.5__arrow_{no_rc_r_version}\.zip
      - r-pkg__bin__windows__contrib__4.4__arrow_{no_rc_r_version}\.zip
      - r-pkg__bin__macosx__big-sur-x86_64__contrib__4.5__arrow_{no_rc_r_version}\.tgz
      - r-pkg__bin__macosx__big-sur-x86_64__contrib__4.4__arrow_{no_rc_r_version}\.tgz
      - r-pkg__bin__macosx__big-sur-arm64__contrib__4.5__arrow_{no_rc_r_version}\.tgz
      - r-pkg__bin__macosx__big-sur-arm64__contrib__4.4__arrow_{no_rc_r_version}\.tgz
      - r-pkg__src__contrib__arrow_{no_rc_r_version}\.tar\.gz

{% for which in ["strong", "most"] %}
  # strong and most used here are defined by ?tools::package_dependencies as:
  #
  # strong: Depends, Imports, LinkingTo
  # most: Depends, Imports, LinkingTo, Suggests
  #
  # So the key difference between strong and most is whether you want to expand
  # the reverse dependency checking to Suggests (most) or not.
  r-recheck-{{which}}:
    ci: github
    template: r/github.recheck.yml
    params:
      which: {{which}}
{% endfor %}

  ########################### Release verification ############################

  ######################## Linux verification #################################

{% for distribution, version in [("conda", "latest"),
                                 ("almalinux", "10"),
                                 ("ubuntu", "22.04"),
                                 ("ubuntu", "24.04")] %}
  {% for target in ["cpp",
                    "integration",
                    "python",
                    "ruby"] %}
  verify-rc-source-{{ target }}-linux-{{ distribution }}-{{ version }}-amd64:
    ci: github
    template: verify-rc/github.linux.amd64.docker.yml
    params:
      env:
        {{ distribution.upper() }}: "{{ version }}"
      target: {{ target }}
      distro: {{ distribution }}
  {% endfor %}

{% endfor %}

  ######################## macOS verification ################################

  {% for target in ["cpp", "integration", "python"] %}
  verify-rc-source-{{ target }}-macos-conda-amd64:
    ci: github
    template: verify-rc/github.macos.yml
    params:
      target: {{ target }}
      use_conda: True
      github_runner: "macos-15-intel"
  {% endfor %}

  {% for target in ["cpp",
                    "integration",
                    "python",
                    "ruby"] %}
  verify-rc-source-{{ target }}-macos-amd64:
    ci: github
    template: verify-rc/github.macos.yml
    params:
      target: {{ target }}
      github_runner: "macos-15-intel"
  {% endfor %}

  {% for target in ["cpp",
                    "integration",
                    "python",
                    "ruby"] %}
  verify-rc-source-{{ target }}-macos-arm64:
    ci: github
    template: verify-rc/github.macos.yml
    params:
      env:
        ARROW_FLIGHT: 0
        ARROW_GANDIVA: 0
        PYTEST_ADDOPTS: "-k 'not test_cancellation'"
      target: {{ target }}
      github_runner: "macos-14"
  {% endfor %}

  ######################## Windows verification ##############################

  verify-rc-source-windows:
    ci: github
    template: verify-rc/github.win.yml
    params:
      env:
        PYARROW_TEST_GDB: "OFF"
      script: "verify-release-candidate.bat"
      timeout: 120

############################## Docker tests ##################################

{% for image in ["conda-cpp",
                 "debian-c-glib",
                 "ubuntu-c-glib",
                 "debian-ruby",
                 "ubuntu-ruby"] %}
  test-{{ image }}:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 22.04
      image: {{ image }}
{% endfor %}

  test-conda-cpp-valgrind:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      image: conda-cpp-valgrind

  test-ubuntu-22.04-cpp:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 22.04
      image: ubuntu-cpp

  test-ubuntu-22.04-cpp-bundled:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 22.04
      image: ubuntu-cpp-bundled

  test-ubuntu-24.04-cpp-bundled-offline:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 24.04
      image: ubuntu-cpp-bundled-offline
      timeout: 120

  test-ubuntu-24.04-cpp-gcc-13-bundled:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 24.04
        GCC: 13
      image: ubuntu-cpp-bundled

  test-ubuntu-24.04-cpp:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 24.04
      image: ubuntu-cpp

  test-ubuntu-24.04-cpp-gcc-14:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        GCC: 14
        UBUNTU: 24.04
      # rapidjson 1.1.0 has an error caught by gcc 14.
      # https://github.com/Tencent/rapidjson/issues/718
      flags: -e CC=gcc-14 -e CXX=g++-14 -e RapidJSON_SOURCE=BUNDLED
      image: ubuntu-cpp

{% for debian_version in ["13"] %}
  test-debian-{{ debian_version }}-cpp-amd64:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        ARCH: "amd64"
        DEBIAN: "{{ debian_version }}"
      image: debian-cpp

  test-debian-{{ debian_version }}-cpp-i386:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        ARCH: "i386"
        DEBIAN: "{{ debian_version }}"
      flags: "-e ARROW_AZURE=OFF -e ARROW_S3=OFF -e ARROW_GANDIVA=OFF"
      image: debian-cpp
{% endfor %}

  test-debian-experimental-cpp-gcc-15:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        ARCH: "amd64"
        DEBIAN: "experimental"
        GCC: "15"
        LLVM: "20"
      image: debian-cpp

  test-fedora-42-cpp:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        FEDORA: 42
      image: fedora-cpp

{% for cpp_standard in [20] %}
  test-ubuntu-22.04-cpp-{{ cpp_standard }}:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 22.04
      flags: "-e CMAKE_CXX_STANDARD={{ cpp_standard }}"
      image: ubuntu-cpp
{% endfor %}

  test-ubuntu-22.04-cpp-no-threading:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 22.04
      flags: "-e ARROW_ENABLE_THREADING=OFF"
      image: ubuntu-cpp

  test-ubuntu-24.04-cpp-thread-sanitizer:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        # clang-tools and llvm version need to be synchronized so as
        # to have the right llvm-symbolizer version
        CLANG_TOOLS: 18
        LLVM: 18
        UBUNTU: 24.04
      image: ubuntu-cpp-thread-sanitizer

  test-ubuntu-24.04-cpp-minimal-with-formats:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 24.04
      flags: "-e ARROW_CSV=ON -e ARROW_PARQUET=ON"
      image: ubuntu-cpp-minimal

  test-ubuntu-22.04-cpp-emscripten:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 22.04
      image: ubuntu-cpp-emscripten

{% for python_version in ["3.10", "3.11", "3.12", "3.13", "3.14"] %}
  test-conda-python-{{ python_version }}:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        PYTHON: "{{ python_version }}"
        # Temporarily disable error on Warning: https://github.com/apache/arrow/issues/38239
        # PYTEST_ARGS: "-W error -W 'ignore:Setting custom ClientSession:DeprecationWarning'"
      image: conda-python
{% endfor %}

  test-conda-python-3.12-cpython-debug:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        PYTHON: 3.12
      image: conda-python-cpython-debug

  test-conda-python-emscripten:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 22.04
        PYTHON: 3.12
      image: conda-python-emscripten

  test-conda-python-3.11-hypothesis:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        PYTHON: 3.11
        HYPOTHESIS_PROFILE: ci
        PYARROW_TEST_HYPOTHESIS: ON
        # limit to execute hypothesis tests only
        PYTEST_ARGS: "-m hypothesis -W error"
      image: conda-python-pandas

  test-ubuntu-22.04-python-313-freethreading:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 22.04
      image: ubuntu-python-313-freethreading

{% for debian_version in ["13"] %}
  test-debian-{{ debian_version }}-python-3-amd64:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        DEBIAN: "{{ debian_version }}"
      image: debian-python

  test-debian-{{ debian_version }}-python-3-i386:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        ARCH: i386
        DEBIAN: "{{ debian_version }}"
      flags: "-e ARROW_S3=OFF -e ARROW_GANDIVA=OFF"
      image: debian-python
{% endfor %}

  test-ubuntu-22.04-python-3:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 22.04
      image: ubuntu-python

  test-ubuntu-24.04-python-3:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 24.04
      image: ubuntu-python

  test-fedora-42-python-3:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        FEDORA: 42
      image: fedora-python

  test-r-linux-valgrind:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        ARROW_R_DEV: "TRUE"
      image: ubuntu-r-valgrind
      timeout: 330 # 5.5 hours

  test-r-linux-rchk:
    ci: github
    template: r/github.linux.rchk.yml

  test-r-extra-packages:
    ci: github
    template: r/github.linux.extra.packages.yml

  test-r-linux-as-cran:
    ci: github
    template: r/github.linux.cran.yml

  test-r-alpine-linux-cran:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      image: alpine-linux-r

  test-r-fedora-clang:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      image: fedora-r-clang
      # R-devel built from source with Clang, simulating CRAN's
      # r-devel-linux-x86_64-fedora-clang environment
      timeout: 180 # 3 hours - R-devel build from source takes time

  test-r-macos-as-cran:
    ci: github
    template: r/github.macos.cran.yml

  test-r-arrow-backwards-compatibility:
    ci: github
    template: r/github.linux.arrow.version.back.compat.yml

  test-r-versions:
    ci: github
    template: r/github.linux.versions.yml
    params:
      MATRIX: {{ "${{ matrix.r_version }}" }}

  test-r-install-local:
    ci: github
    template: r/github.macos-linux.local.yml

  test-r-install-local-minsizerel:
    ci: github
    template: r/github.macos-linux.local.yml
    params:
      env:
        CMAKE_BUILD_TYPE: MinSizeRel

  test-r-devdocs:
    ci: github
    template: r/github.devdocs.yml

  test-r-depsource-system:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      flags: '-e ARROW_DEPENDENCY_SOURCE=SYSTEM -e ARROW_GCS=OFF -e xsimd_SOURCE=BUNDLED'
      image: ubuntu-r-only-r

  test-r-dev-duckdb:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        R_DUCKDB_DEV: TRUE
      image: ubuntu-r-only-r

  test-r-offline-maximal:
    ci: github
    template: r/github.linux.offline.build.yml

  # This one has -flto=auto
  test-r-ubuntu-22.04:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 22.04
        R_PRUNE_DEPS: TRUE
      image: ubuntu-r-only-r

  # This also has -flto=auto
  test-r-gcc-11:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 22.04
        GCC: 11
      image: ubuntu-r-only-r

  # This also has -flto=auto
  test-r-gcc-12:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        UBUNTU: 22.04
        GCC: 12
      image: ubuntu-r-only-r

  test-r-linux-sanitizers:
    ci: github
    template: r/github.linux.sanitizers.yml
    params:
      timeout: 240 # 4 hours

  test-r-m1-san:
    ci: github
    template: r/github.macos.m1san.yml

  # be sure to update binary-task.rb when upgrading Debian
  test-debian-13-docs:
    ci: github
    template: docs/github.linux.yml
    params:
      env:
        JDK: 17
      pr_number: Unset
      image: debian-docs
      publish: false
    artifacts:
      - docs.tar.gz

  ############################## Fuzz tests #################################

  test-build-cpp-fuzz:
    ci: github
    template: fuzz-tests/github.oss-fuzz.yml

  ############################## vcpkg tests ##################################

  test-build-vcpkg-win:
    ci: github
    template: vcpkg-tests/github.windows.yml

  ############################## Integration tests ############################

{% for python_version, pandas_version, numpy_version, cache_leaf in [("3.10", "1.3.4", "1.21.2", True),
                                                                     ("3.11", "latest", "latest", False),
                                                                     ("3.12", "latest", "1.26", False),
                                                                     ("3.12", "latest", "latest", False),
                                                                     ("3.13", "nightly", "nightly", False),
                                                                     ("3.13", "upstream_devel", "nightly", False)] %}
  test-conda-python-{{ python_version }}-pandas-{{ pandas_version }}-numpy-{{ numpy_version }}:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        PYTHON: "{{ python_version }}"
        PANDAS: "{{ pandas_version }}"
        NUMPY: "{{ numpy_version }}"
      {% if pandas_version == "latest" %}
        # ensure we have at least one build with parquet encryption disabled
        PARQUET_REQUIRE_ENCRYPTION: "OFF"
      {% endif %}
      {% if pandas_version == "nightly" %}
        # TODO can be removed once this is enabled by default in pandas >= 3
        # This is to enable the Pandas feature.
        # See: https://github.com/pandas-dev/pandas/pull/58459
        PANDAS_FUTURE_INFER_STRING: "1"
      {% endif %}
    {% if not cache_leaf %}
      # use the latest pandas release, so prevent reusing any cached layers
      flags: --no-leaf-cache
    {% endif %}
      image: conda-python-pandas
{% endfor %}

{% for dask_version in ["latest", "upstream_devel"] %}
  test-conda-python-3.11-dask-{{ dask_version }}:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        PYTHON: 3.11
        DASK: "{{ dask_version }}"
      # use the latest dask release, so prevent reusing any cached layers
      flags: --no-leaf-cache
      image: conda-python-dask
{% endfor %}

{% for hdfs_version in ["2.9.2", "3.2.1"] %}
  test-conda-python-3.10-hdfs-{{ hdfs_version }}:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        HDFS: "{{ hdfs_version }}"
        PYTHON: "3.10"
      image: conda-python-hdfs
{% endfor %}

{% for python_version, spark_version, test_pyarrow_only, numpy_version, jdk_version in [("3.11", "master", "false", "latest", "17")] %}
  test-conda-python-{{ python_version }}-spark-{{ spark_version }}:
    ci: github
    template: docker-tests/github.linux.yml
    params:
      env:
        PYTHON: "{{ python_version }}"
        SPARK: "{{ spark_version }}"
        TEST_PYARROW_ONLY: "{{ test_pyarrow_only }}"
        NUMPY: "{{ numpy_version }}"
        JDK: "{{ jdk_version }}"
      fetch_depth: 0
      # use the branch-3.0 of spark, so prevent reusing any layers
      flags: --no-leaf-cache
      image: conda-python-spark
      timeout: 90
{% endfor %}

{% for kind in ["static", "static-system-dependency"] %}
  example-cpp-minimal-build-{{ kind }}:
    ci: github
    template: cpp-examples/github.linux.yml
    params:
      type: minimal_build
      run: {{ kind }}
{% endfor %}

  example-cpp-tutorial:
    ci: github
    template: cpp-examples/github.linux.yml
    params:
      type: tutorial_examples
      run: tutorial

############################## Utility tasks ############################
  preview-docs:
    ci: github
    template: docs/github.linux.yml
    params:
      env:
        JDK: 17
      pr_number: Unset
      image: debian-docs
      publish: true
