From e0c1cade007d9d42a8d2599e95c5cd1bee2b74dd Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Mon, 29 Jul 2024 09:17:14 +1100 Subject: [PATCH 01/32] TST: bring in pyarrow builds --- recipe/build-pyarrow.bat | 40 +++ recipe/build-pyarrow.sh | 64 ++++ recipe/meta.yaml | 287 ++++++++++++++++++ ...ixture-teardown-should-not-fail-test.patch | 37 +++ recipe/test_read_parquet.py | 5 + 5 files changed, 433 insertions(+) create mode 100644 recipe/build-pyarrow.bat create mode 100644 recipe/build-pyarrow.sh create mode 100644 recipe/patches/0001-fixture-teardown-should-not-fail-test.patch create mode 100644 recipe/test_read_parquet.py diff --git a/recipe/build-pyarrow.bat b/recipe/build-pyarrow.bat new file mode 100644 index 000000000..6218eebb9 --- /dev/null +++ b/recipe/build-pyarrow.bat @@ -0,0 +1,40 @@ +@echo on + +pushd "%SRC_DIR%"\python + +SET ARROW_HOME=%LIBRARY_PREFIX% +SET SETUPTOOLS_SCM_PRETEND_VERSION=%PKG_VERSION% +SET PYARROW_BUILD_TYPE=release +SET PYARROW_WITH_ACERO=1 +SET PYARROW_WITH_DATASET=1 +SET PYARROW_WITH_FLIGHT=1 +SET PYARROW_WITH_GANDIVA=1 +SET PYARROW_WITH_GCS=1 +SET PYARROW_WITH_HDFS=1 +SET PYARROW_WITH_ORC=1 +SET PYARROW_WITH_PARQUET=1 +SET PYARROW_WITH_PARQUET_ENCRYPTION=1 +SET PYARROW_WITH_S3=1 +SET PYARROW_WITH_SUBSTRAIT=1 +SET PYARROW_CMAKE_GENERATOR=Ninja + +:: Enable CUDA support +if "%cuda_compiler_version%"=="None" ( + set "PYARROW_WITH_CUDA=0" +) else ( + set "PYARROW_WITH_CUDA=1" +) + +%PYTHON% setup.py ^ + build_ext ^ + install --single-version-externally-managed ^ + --record=record.txt +if %ERRORLEVEL% neq 0 exit 1 +popd + +if [%PKG_NAME%] NEQ [pyarrow-tests] ( + rd /s /q %SP_DIR%\pyarrow\tests +) + +:: generated by setup.py +rmdir .\python\build /s /q diff --git a/recipe/build-pyarrow.sh b/recipe/build-pyarrow.sh new file mode 100644 index 000000000..8a449b63c --- /dev/null +++ b/recipe/build-pyarrow.sh @@ -0,0 +1,64 @@ +#!/bin/sh +set -ex + +# Build dependencies +export ARROW_HOME=$PREFIX +export PARQUET_HOME=$PREFIX +export SETUPTOOLS_SCM_PRETEND_VERSION=$PKG_VERSION +export PYARROW_BUILD_TYPE=release +export PYARROW_WITH_ACERO=1 +export PYARROW_WITH_AZURE=1 +export PYARROW_WITH_DATASET=1 +export PYARROW_WITH_FLIGHT=1 +export PYARROW_WITH_GANDIVA=1 +export PYARROW_WITH_GCS=1 +export PYARROW_WITH_HDFS=1 +export PYARROW_WITH_ORC=1 +export PYARROW_WITH_PARQUET=1 +export PYARROW_WITH_PARQUET_ENCRYPTION=1 +export PYARROW_WITH_S3=1 +export PYARROW_WITH_SUBSTRAIT=1 +export PYARROW_CMAKE_GENERATOR=Ninja +export PYARROW_CMAKE_OPTIONS="-DARROW_SIMD_LEVEL=NONE" +BUILD_EXT_FLAGS="" + +# Enable CUDA support +if [[ ! -z "${cuda_compiler_version+x}" && "${cuda_compiler_version}" != "None" ]]; then + export PYARROW_WITH_CUDA=1 + if [[ "${build_platform}" != "${target_platform}" ]]; then + export CUDAToolkit_ROOT=${CUDA_HOME} + export CMAKE_LIBRARY_PATH=${CONDA_BUILD_SYSROOT}/lib + fi +else + export PYARROW_WITH_CUDA=0 +fi + +# Resolve: Make Error at cmake_modules/SetupCxxFlags.cmake:338 (message): Unsupported arch flag: -march=. +if [[ "${target_platform}" == "linux-aarch64" ]]; then + export PYARROW_CMAKE_OPTIONS="-DARROW_ARMV8_ARCH=armv8-a ${PYARROW_CMAKE_OPTIONS}" +fi + +if [[ "${target_platform}" == osx-* ]]; then + # See https://conda-forge.org/docs/maintainer/knowledge_base.html#newer-c-features-with-old-sdk + CXXFLAGS="${CXXFLAGS} -D_LIBCPP_DISABLE_AVAILABILITY" +fi + +if [[ "${target_platform}" == "linux-aarch64" ]] || [[ "${target_platform}" == "linux-ppc64le" ]]; then + # Limit number of threads used to avoid hardware oversubscription + export CMAKE_BUILD_PARALLEL_LEVEL=4 +fi + +cd python + +$PYTHON setup.py \ + build_ext \ + install --single-version-externally-managed \ + --record=record.txt + +if [[ "$PKG_NAME" != "pyarrow-tests" ]]; then + rm -r ${SP_DIR}/pyarrow/tests +fi + +# generated by setup.py +rm -rf build +cd .. diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 8ed6f22e5..f25826d17 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -16,6 +16,9 @@ source: - url: https://www.apache.org/dyn/closer.lua/arrow/arrow-{{ version }}/apache-arrow-{{ version }}.tar.gz?action=download fn: apache-arrow-{{ version }}.tar.gz sha256: 9d280d8042e7cf526f8c28d170d93bfab65e50f94569f6a790982a878d8d898d + patches: + # workaround for https://github.com/apache/arrow/issues/37692 + - patches/0001-fixture-teardown-should-not-fail-test.patch # testing-submodule not part of release tarball - git_url: https://github.com/apache/arrow-testing.git git_rev: 735ae7128d571398dd798d7ff004adebeb342883 @@ -628,6 +631,290 @@ outputs: - LICENSE.txt summary: C++ libraries for Apache Parquet + - name: pyarrow-core + script: build-pyarrow.sh # [unix] + script: build-pyarrow.bat # [win] + version: {{ version }} + build: + string: py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}_{{ build_ext }} + ignore_run_exports_from: + - {{ compiler("cuda") }} # [cuda_compiler_version != "None"] + - libarrow-all + track_features: {{ "[arrow-cuda]" if cuda_enabled else "" }} + rpaths: + - lib/ + - {{ SP_DIR }}/pyarrow + missing_dso_whitelist: + # not actually missing, but installed into SP_DIR, see tests + - '*/arrow_python.dll' # [win] + - '*/arrow_python_flight.dll' # [win] + # pyarrow-core builds with the capabilities but we do not ship them + # to provide the smaller core functionality. + - 'lib/libarrow_acero.*' # [unix] + - 'lib/libarrow_dataset.*' # [unix] + - 'lib/libarrow_substrait.*' # [unix] + - 'lib/libarrow_flight.*' # [unix] + - 'lib/libparquet.*' # [unix] + - 'lib/libgandiva.*' # [unix] + - 'Library/lib/arrow_acero.dll' # [win] + - 'Library/lib/arrow_dataset.dll' # [win] + - 'Library/lib/arrow_substrait.dll' # [win] + - 'Library/lib/arrow_flight.dll' # [win] + - 'Library/lib/parquet.dll' # [win] + - 'Library/lib/gandiva.dll' # [win] + requirements: + build: + - {{ compiler("c") }} + - {{ stdlib("c") }} + - {{ compiler("cxx") }} + # pyarrow does not require nvcc but it needs to link against libraries in libarrow=*=*cuda + - {{ compiler("cuda") }} # [cuda_compiler_version != "None"] + - python # [build_platform != target_platform] + - cross-python_{{ target_platform }} # [build_platform != target_platform] + - cython # [build_platform != target_platform] + - numpy # [build_platform != target_platform] + - cmake + - ninja + host: + # We add all libarrow package dependencies on host in order + # to build pyarrow once with all capabilities. + - libarrow-all {{ version }}.*=*{{ build_ext }} + - clangdev {{ llvm_version }} + - llvmdev {{ llvm_version }} + - zlib + - cython + - numpy + - python + - setuptools + - setuptools-scm + run: + # We ignore the run-exports from libarrow-all and restrict to only + # libarrow, as we don't want the other libraries to be installed when + # running for pyarrow-core, where the aim is a low storage footprint. + - libarrow {{ version }}.*=*{{ build_ext }} + - python + # this is redundant with libarrow, but we want smithy to pick up that + # cuda_compiler_version_min is present, to populate the CI configs + - __cuda >={{ cuda_compiler_version_min }} # [cuda_compiler_version != "None"] + run_constrained: + - apache-arrow-proc =*={{ build_ext }} + + test: + imports: + - pyarrow + # Compute can be imported but the underlying libarrow_acero is not present. + - pyarrow.compute + - pyarrow.orc + - pyarrow.fs + - pyarrow._s3fs + - pyarrow._hdfs + # We can only test importing cuda package but cannot run when a + # CUDA device is not available, for instance, when building from CI. + # On Windows, we cannot even do that due to `nvcuda.dll` not being found, see + # https://conda-forge.org/docs/maintainer/knowledge_base.html#nvcuda-dll-cannot-be-found-on-windows + # However, we check below for (at least) the presence of a correctly-compiled module + - pyarrow.cuda # [cuda_compiler_version != "None" and not win] + commands: + # libraries that depend on python (and hence aren't in libarrow itself) + - test -f ${SP_DIR}/pyarrow/libarrow_python.so # [linux] + - test -f ${SP_DIR}/pyarrow/libarrow_python_flight.so # [linux] + - test -f ${SP_DIR}/pyarrow/libarrow_python_parquet_encryption.so # [linux] + - test -f ${SP_DIR}/pyarrow/libarrow_python.dylib # [osx] + - test -f ${SP_DIR}/pyarrow/libarrow_python_flight.dylib # [osx] + - test -f ${SP_DIR}/pyarrow/libarrow_python_parquet_encryption.dylib # [osx] + - if not exist %SP_DIR%\pyarrow\arrow_python.dll exit 1 # [win] + - if not exist %SP_DIR%\pyarrow\arrow_python_flight.dll exit 1 # [win] + - if not exist %SP_DIR%\pyarrow\arrow_python_parquet_encryption.dll exit 1 # [win] + + - test -f ${SP_DIR}/pyarrow/include/arrow/python/pyarrow.h # [unix] + - if not exist %SP_DIR%\pyarrow\include\arrow\python\pyarrow.h exit 1 # [win] + + - test ! -f ${SP_DIR}/pyarrow/tests/test_array.py # [unix] + - if exist %SP_DIR%/pyarrow/tests/test_array.py exit 1 # [win] + # Need to remove dot from PY_VER; %MYVAR:x=y% replaces "x" in %MYVAR% with "y" + - if not exist %SP_DIR%/pyarrow/_cuda.cp%PY_VER:.=%-win_amd64.pyd exit 1 # [win and cuda_compiler_version != "None"] + + # Expected not included libraries + - test ! -f $PREFIX/lib/libarrow_acero${SHLIB_EXT} # [unix] + - test ! -f $PREFIX/lib/libarrow_dataset${SHLIB_EXT} # [unix] + - test ! -f $PREFIX/lib/libarrow_flight${SHLIB_EXT} # [unix] + - test ! -f $PREFIX/lib/libgandiva${SHLIB_EXT} # [unix] + - test ! -f $PREFIX/lib/libparquet${SHLIB_EXT} # [unix] + + about: + home: http://github.com/apache/arrow + license: Apache-2.0 + license_file: + - LICENSE.txt + summary: Python libraries for Apache Arrow Core + + - name: pyarrow + version: {{ version }} + requirements: + host: + # only necessary for run-exports + - python + - numpy + run: + # do not use pin_compatible because pyarrow-core has CUDA/non-CUDA variants + - pyarrow-core {{ version }}=*_{{ PKG_BUILDNUM }}_* + # Default doesn't contain flight, flight-sql and gandiva + - libarrow-acero {{ version }}.* + - libarrow-dataset {{ version }}.* + - libarrow-substrait {{ version }}.* + - libparquet {{ version }}.* + - python + + test: + files: + - test_read_parquet.py + imports: + # default pyarrow contains parquet + - pyarrow.dataset + - pyarrow.parquet + commands: + # Expected not included libraries + - test ! -f $PREFIX/lib/libarrow_flight${SHLIB_EXT} # [unix] + - test ! -f $PREFIX/lib/libgandiva${SHLIB_EXT} # [unix] + + - python test_read_parquet.py + + about: + home: http://github.com/apache/arrow + license: Apache-2.0 + license_file: + - LICENSE.txt + summary: Python libraries for Apache Arrow with default capabilities + + - name: pyarrow-all + version: {{ version }} + requirements: + host: + # only necessary for run-exports + - python + - numpy + run: + - pyarrow {{ version }}=*_{{ PKG_BUILDNUM }} + - libarrow-flight {{ version }}.* + - libarrow-flight-sql {{ version }}.* + - libarrow-gandiva {{ version }}.* + - python + + test: + imports: + - pyarrow.flight + - pyarrow.gandiva + about: + home: http://github.com/apache/arrow + license: Apache-2.0 + license_file: + - LICENSE.txt + summary: Python libraries for Apache Arrow with all capabilities + + - name: pyarrow-tests + script: build-pyarrow.sh # [unix] + script: build-pyarrow.bat # [win] + version: {{ version }} + build: + skip: true # [cuda_compiler_version != "None"] + requirements: + build: + - {{ compiler("c") }} + - {{ stdlib("c") }} + - {{ compiler("cxx") }} + - python # [build_platform != target_platform] + - cross-python_{{ target_platform }} # [build_platform != target_platform] + - cython # [build_platform != target_platform] + - numpy # [build_platform != target_platform] + - cmake + - ninja + host: + - pyarrow-all {{ version }}=*_{{ PKG_BUILDNUM }} + - libarrow-all {{ version }}.* + - clangdev {{ llvm_version }} + - llvmdev {{ llvm_version }} + - zlib + - cython + - numpy + - python + - setuptools + - setuptools-scm + run: + - pyarrow-all {{ version }}=*_{{ PKG_BUILDNUM }} + - python + + test: + requires: + # test_cpp_extension_in_python requires a compiler + - {{ compiler("cxx") }} # [linux] + - pytest + # work around https://github.com/conda-forge/setuptools-feedstock/issues/351 + - backports.tarfile # [py<39] + - backports.zoneinfo # [py<39] + - boto3 + - cffi + - cloudpickle + - cython + - fastparquet + - fsspec + - hypothesis + - minio-server + - pandas + - s3fs >=2023 + - scipy + - sparse + # these are generally (far) behind on migrating abseil/grpc/protobuf, + # and using them as test dependencies blocks the migrator unnecessarily + # - pytorch + # - tensorflow + # we're not building java bindings + # - jpype1 + # doesn't get picked up correctly + # - libhdfs3 + source_files: + - testing/data + commands: + - cd ${SP_DIR} # [unix] + - cd %SP_DIR% # [win] + - export ARROW_TEST_DATA="${SRC_DIR}/testing/data" # [unix] + - set "ARROW_TEST_DATA=%SRC_DIR%\testing\data" # [win] + + {% set tests_to_skip = "_not_a_real_test" %} + # we do not have GPUs in CI --> cannot test cuda + {% set tests_to_skip = tests_to_skip + " or test_cuda" + " or test_dlpack_cuda_not_supported"%} + # skip tests that raise SIGINT and crash the test suite + {% set tests_to_skip = tests_to_skip + " or (test_csv and test_cancellation)" %} # [linux] + {% set tests_to_skip = tests_to_skip + " or (test_flight and test_interrupt)" %} # [linux] + # skip tests that make invalid(-for-conda) assumptions about the compilers setup + {% set tests_to_skip = tests_to_skip + " or test_cython_api" %} # [unix] + {% set tests_to_skip = tests_to_skip + " or test_visit_strings" %} # [unix] + # skip tests that cannot succeed in emulation + {% set tests_to_skip = tests_to_skip + " or test_debug_memory_pool_disabled" %} # [aarch64 or ppc64le] + {% set tests_to_skip = tests_to_skip + " or test_env_var_io_thread_count" %} # [aarch64 or ppc64le] + # vvvvvvv TESTS THAT SHOULDN'T HAVE TO BE SKIPPED vvvvvvv + # https://github.com/apache/arrow/issues/43800 + {% set tests_to_skip = tests_to_skip + " or test_cpp_extension_in_python" %} # [osx] + # XMinioInvalidObjectName on win: "Object name contains unsupported characters" + {% set tests_to_skip = tests_to_skip + " or test_write_to_dataset_with_partitions_s3fs" %} # [win] + # https://github.com/apache/arrow/issues/43356 + {% set tests_to_skip = tests_to_skip + " or (test_compute and test_assume_timezone)" %} # [aarch64 or ppc64le] + {% set tests_to_skip = tests_to_skip + " or (test_compute and test_strftime)" %} # [aarch64 or ppc64le] + {% set tests_to_skip = tests_to_skip + " or (test_compute and test_round_temporal)" %} # [aarch64 or ppc64le] + {% set tests_to_skip = tests_to_skip + " or test_extract_datetime_components " %} # [aarch64 or ppc64le] + # flaky test that fails regularly on aarch + {% set tests_to_skip = tests_to_skip + " or test_feather_format[serial]" %} # [aarch64] + # gandiva tests are segfaulting on ppc + {% set tests_to_skip = tests_to_skip + " or test_gandiva" %} # [ppc64le] + # ^^^^^^^ TESTS THAT SHOULDN'T HAVE TO BE SKIPPED ^^^^^^^ + - pytest pyarrow/ -rfEs -k "not ({{ tests_to_skip }})" + + about: + home: http://github.com/apache/arrow + license: Apache-2.0 + license_file: + - LICENSE.txt + summary: Python test files for Apache Arrow + about: home: http://github.com/apache/arrow license: Apache-2.0 diff --git a/recipe/patches/0001-fixture-teardown-should-not-fail-test.patch b/recipe/patches/0001-fixture-teardown-should-not-fail-test.patch new file mode 100644 index 000000000..0ef362baa --- /dev/null +++ b/recipe/patches/0001-fixture-teardown-should-not-fail-test.patch @@ -0,0 +1,37 @@ +From eca812c99af7a5ac042853eeef9ebe65c27bc117 Mon Sep 17 00:00:00 2001 +From: "H. Vetinari" +Date: Wed, 13 Sep 2023 21:34:29 +1100 +Subject: [PATCH] fixture teardown should not fail test + +--- + python/pyarrow/tests/test_fs.py | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/python/pyarrow/tests/test_fs.py b/python/pyarrow/tests/test_fs.py +index f8ce74700d..2dd09b0ae6 100644 +--- a/python/pyarrow/tests/test_fs.py ++++ b/python/pyarrow/tests/test_fs.py +@@ -255,7 +255,10 @@ def s3fs(request, s3_server): + allow_move_dir=False, + allow_append_to_file=False, + ) +- fs.delete_dir(bucket) ++ try: ++ fs.delete_dir(bucket) ++ except OSError: ++ pass + + + @pytest.fixture +@@ -386,7 +389,10 @@ def py_fsspec_s3fs(request, s3_server): + allow_move_dir=False, + allow_append_to_file=True, + ) +- fs.delete_dir(bucket) ++ try: ++ fs.delete_dir(bucket) ++ except OSError: ++ pass + + + @pytest.fixture(params=[ diff --git a/recipe/test_read_parquet.py b/recipe/test_read_parquet.py new file mode 100644 index 000000000..5f76a4e22 --- /dev/null +++ b/recipe/test_read_parquet.py @@ -0,0 +1,5 @@ +import pyarrow as pa +import pyarrow.parquet as pq + +table = pa.Table.from_pydict({"a": [1, 2]}) +pq.write_table(table, "test.parquet") From 371682a9d840874418a9526ac9cf3affe210cf2e Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 9 Jul 2024 11:45:06 +1100 Subject: [PATCH 02/32] re-introduce subpackage dependencies; test for only one python on aarch/ppc --- recipe/meta.yaml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index f25826d17..0d57f8fae 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -639,7 +639,6 @@ outputs: string: py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}_{{ build_ext }} ignore_run_exports_from: - {{ compiler("cuda") }} # [cuda_compiler_version != "None"] - - libarrow-all track_features: {{ "[arrow-cuda]" if cuda_enabled else "" }} rpaths: - lib/ @@ -678,7 +677,7 @@ outputs: host: # We add all libarrow package dependencies on host in order # to build pyarrow once with all capabilities. - - libarrow-all {{ version }}.*=*{{ build_ext }} + - {{ pin_subpackage("libarrow-all", exact=True) }} - clangdev {{ llvm_version }} - llvmdev {{ llvm_version }} - zlib @@ -691,7 +690,7 @@ outputs: # We ignore the run-exports from libarrow-all and restrict to only # libarrow, as we don't want the other libraries to be installed when # running for pyarrow-core, where the aim is a low storage footprint. - - libarrow {{ version }}.*=*{{ build_ext }} + - {{ pin_subpackage("libarrow", exact=True) }} - python # this is redundant with libarrow, but we want smithy to pick up that # cuda_compiler_version_min is present, to populate the CI configs @@ -756,13 +755,13 @@ outputs: - python - numpy run: + # Default doesn't contain flight, flight-sql and gandiva + - {{ pin_subpackage("libarrow-acero", exact=True) }} + - {{ pin_subpackage("libarrow-dataset", exact=True) }} + - {{ pin_subpackage("libarrow-substrait", exact=True) }} + - {{ pin_subpackage("libparquet", exact=True) }} # do not use pin_compatible because pyarrow-core has CUDA/non-CUDA variants - pyarrow-core {{ version }}=*_{{ PKG_BUILDNUM }}_* - # Default doesn't contain flight, flight-sql and gandiva - - libarrow-acero {{ version }}.* - - libarrow-dataset {{ version }}.* - - libarrow-substrait {{ version }}.* - - libparquet {{ version }}.* - python test: @@ -794,10 +793,10 @@ outputs: - python - numpy run: + - {{ pin_subpackage("libarrow-flight", exact=True) }} + - {{ pin_subpackage("libarrow-flight-sql", exact=True) }} + - {{ pin_subpackage("libarrow-gandiva", exact=True) }} - pyarrow {{ version }}=*_{{ PKG_BUILDNUM }} - - libarrow-flight {{ version }}.* - - libarrow-flight-sql {{ version }}.* - - libarrow-gandiva {{ version }}.* - python test: @@ -829,8 +828,8 @@ outputs: - cmake - ninja host: + - {{ pin_subpackage("libarrow-all", exact=True) }} - pyarrow-all {{ version }}=*_{{ PKG_BUILDNUM }} - - libarrow-all {{ version }}.* - clangdev {{ llvm_version }} - llvmdev {{ llvm_version }} - zlib @@ -843,6 +842,7 @@ outputs: - pyarrow-all {{ version }}=*_{{ PKG_BUILDNUM }} - python + {% if not (aarch64 or ppc64le) or py == 311 %} test: requires: # test_cpp_extension_in_python requires a compiler @@ -907,6 +907,7 @@ outputs: {% set tests_to_skip = tests_to_skip + " or test_gandiva" %} # [ppc64le] # ^^^^^^^ TESTS THAT SHOULDN'T HAVE TO BE SKIPPED ^^^^^^^ - pytest pyarrow/ -rfEs -k "not ({{ tests_to_skip }})" + {% endif %} about: home: http://github.com/apache/arrow From a3f7e7a29f378c968279939ee1dbfdf0580cb551 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 16 Oct 2024 23:18:27 +1100 Subject: [PATCH 03/32] arrow v18.0.0rc0 --- recipe/meta.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 0d57f8fae..360b940f9 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,4 +1,4 @@ -{% set version = "17.0.0" %} +{% set version = "18.0.0" %} {% set cuda_enabled = cuda_compiler_version != "None" %} {% set build_ext_version = "5.0.0" %} {% set build_ext = "cuda" if cuda_enabled else "cpu" %} @@ -13,19 +13,19 @@ package: version: {{ version }} source: - - url: https://www.apache.org/dyn/closer.lua/arrow/arrow-{{ version }}/apache-arrow-{{ version }}.tar.gz?action=download + - url: https://github.com/apache/arrow/releases/download/apache-arrow-{{ version }}-rc0/apache-arrow-{{ version }}.tar.gz fn: apache-arrow-{{ version }}.tar.gz - sha256: 9d280d8042e7cf526f8c28d170d93bfab65e50f94569f6a790982a878d8d898d + sha256: abcf1934cd0cdddd33664e9f2d9a251d6c55239d1122ad0ed223b13a583c82a9 patches: # workaround for https://github.com/apache/arrow/issues/37692 - patches/0001-fixture-teardown-should-not-fail-test.patch # testing-submodule not part of release tarball - git_url: https://github.com/apache/arrow-testing.git - git_rev: 735ae7128d571398dd798d7ff004adebeb342883 + git_rev: 4d209492d514c2d3cb2d392681b9aa00e6d8da1c folder: testing build: - number: 23 + number: 0 # for cuda support, building with one version is enough to be compatible with # all later versions, since arrow is only using libcuda, and not libcudart. skip: true # [cuda_compiler_version not in ("None", cuda_compiler_version_min)] From 742d7cb485450b066549b8fb648bb7360414ab1e Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 16 Oct 2024 23:25:11 +1100 Subject: [PATCH 04/32] match migrations from pyarrow feedstock --- .ci_support/migrations/numpy2.yaml | 74 ++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 .ci_support/migrations/numpy2.yaml diff --git a/.ci_support/migrations/numpy2.yaml b/.ci_support/migrations/numpy2.yaml new file mode 100644 index 000000000..d70edeb0d --- /dev/null +++ b/.ci_support/migrations/numpy2.yaml @@ -0,0 +1,74 @@ +__migrator: + build_number: 1 + kind: version + commit_message: | + Rebuild for numpy 2.0 + + TL;DR: The way we build against numpy has changed as of numpy 2.0. This bot + PR has updated the recipe to account for the changes (see below for details). + The numpy 2.0 package itself is currently only available from a special release + channel (`conda-forge/label/numpy_rc`) and will not be available on the main + `conda-forge` channel until the release of numpy 2.0 GA. + + The biggest change is that we no longer need to use the oldest available numpy + version at build time in order to support old numpy version at runtime - numpy + will by default use a compatible ABI for the oldest still-supported numpy versions. + + Additionally, we no longer need to use `{{ pin_compatible("numpy") }}` as a + run requirement - this has been handled for more than two years now by a + run-export on the numpy package itself. The migrator will therefore remove + any occurrences of this. + + However, by default, building against numpy 2.0 will assume that the package + is compatible with numpy 2.0, which is not necessarily the case. You should + check that the upstream package explicitly supports numpy 2.0, otherwise you + need to add a `- numpy <2.0dev0` run requirement until that happens (check numpy + issue 26191 for an overview of the most important packages). + + Note that the numpy release candidate promises to be ABI-compatible with the + final 2.0 release. This means that building against 2.0.0rc1 produces packages + that can be published to our main channels. + + If you already want to use the numpy 2.0 release candidate yourself, you can do + ``` + conda config --add channels conda-forge/label/numpy_rc + ``` + or add this channel to your `.condarc` file directly. + + ### To-Dos: + * [ ] Match run-requirements for numpy (i.e. check upstream `pyproject.toml` or however the project specifies numpy compatibility) + * If upstream is not yet compatible with numpy 2.0, add `numpy <2.0dev0` upper bound under `run:`. + * If upstream is already compatible with numpy 2.0, nothing else should be necessary in most cases. + * If upstream requires a minimum numpy version newer than 1.19, you can add `numpy >=x.y` under `run:`. + * [ ] Remove any remaining occurrences of `{{ pin_compatible("numpy") }}` that the bot may have missed. + + PS. If the build does not compile anymore, this is almost certainly a sign that + the upstream project is not yet ready for numpy 2.0; do not close this PR until + a version compatible with numpy 2.0 has been released upstream and on this + feedstock (in the meantime, you can keep the bot from reopening this PR in + case of git conflicts by marking it as a draft). + + migration_number: 1 + exclude: + # needs local overrides that get stomped on by the migrator, which then fails + - scipy + # already done, but thinks its unsolvable + - pandas + ordering: + # prefer channels including numpy_rc (otherwise smithy doesn't + # know which of the two values should be taken on merge) + channel_sources: + - conda-forge + - conda-forge/label/numpy_rc,conda-forge + +# needs to match length of zip {python, python_impl, numpy} +# as it is in global CBC in order to override it +numpy: + - 1.22 # no py38 support for numpy 2.0 + - 2.0 + - 2.0 + - 2.0 + - 2.0 +channel_sources: + - conda-forge/label/numpy_rc,conda-forge +migrator_ts: 1713572489.295986 From 8e38b35467bd87e1e146099c983217862148f234 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 17 Oct 2024 11:21:39 +1100 Subject: [PATCH 05/32] add & set PARQUET_TEST_DATA --- recipe/meta.yaml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 360b940f9..bca8de6dd 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -19,10 +19,13 @@ source: patches: # workaround for https://github.com/apache/arrow/issues/37692 - patches/0001-fixture-teardown-should-not-fail-test.patch - # testing-submodule not part of release tarball + # testing-submodules not part of release tarball - git_url: https://github.com/apache/arrow-testing.git git_rev: 4d209492d514c2d3cb2d392681b9aa00e6d8da1c folder: testing + - git_url: https://github.com/apache/parquet-testing.git + git_rev: cb7a9674142c137367bf75a01b79c6e214a73199 + folder: cpp/submodules/parquet-testing build: number: 0 @@ -872,12 +875,15 @@ outputs: # doesn't get picked up correctly # - libhdfs3 source_files: + - cpp/submodules/parquet-testing/data - testing/data commands: - cd ${SP_DIR} # [unix] - cd %SP_DIR% # [win] - export ARROW_TEST_DATA="${SRC_DIR}/testing/data" # [unix] - set "ARROW_TEST_DATA=%SRC_DIR%\testing\data" # [win] + - export PARQUET_TEST_DATA="${SRC_DIR}/cpp/submodules/parquet-testing/data" # [unix] + - set "PARQUET_TEST_DATA=%SRC_DIR%\cpp\submodules\parquet-testing\data" # [win] {% set tests_to_skip = "_not_a_real_test" %} # we do not have GPUs in CI --> cannot test cuda From 5614f2e79e4d6bb1488ca21baf8abfe203b12895 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 17 Oct 2024 11:25:18 +1100 Subject: [PATCH 06/32] clean up patches & skips where possible --- recipe/meta.yaml | 5 --- ...ixture-teardown-should-not-fail-test.patch | 37 ------------------- 2 files changed, 42 deletions(-) delete mode 100644 recipe/patches/0001-fixture-teardown-should-not-fail-test.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index bca8de6dd..4ecdaf97a 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -16,9 +16,6 @@ source: - url: https://github.com/apache/arrow/releases/download/apache-arrow-{{ version }}-rc0/apache-arrow-{{ version }}.tar.gz fn: apache-arrow-{{ version }}.tar.gz sha256: abcf1934cd0cdddd33664e9f2d9a251d6c55239d1122ad0ed223b13a583c82a9 - patches: - # workaround for https://github.com/apache/arrow/issues/37692 - - patches/0001-fixture-teardown-should-not-fail-test.patch # testing-submodules not part of release tarball - git_url: https://github.com/apache/arrow-testing.git git_rev: 4d209492d514c2d3cb2d392681b9aa00e6d8da1c @@ -900,8 +897,6 @@ outputs: # vvvvvvv TESTS THAT SHOULDN'T HAVE TO BE SKIPPED vvvvvvv # https://github.com/apache/arrow/issues/43800 {% set tests_to_skip = tests_to_skip + " or test_cpp_extension_in_python" %} # [osx] - # XMinioInvalidObjectName on win: "Object name contains unsupported characters" - {% set tests_to_skip = tests_to_skip + " or test_write_to_dataset_with_partitions_s3fs" %} # [win] # https://github.com/apache/arrow/issues/43356 {% set tests_to_skip = tests_to_skip + " or (test_compute and test_assume_timezone)" %} # [aarch64 or ppc64le] {% set tests_to_skip = tests_to_skip + " or (test_compute and test_strftime)" %} # [aarch64 or ppc64le] diff --git a/recipe/patches/0001-fixture-teardown-should-not-fail-test.patch b/recipe/patches/0001-fixture-teardown-should-not-fail-test.patch deleted file mode 100644 index 0ef362baa..000000000 --- a/recipe/patches/0001-fixture-teardown-should-not-fail-test.patch +++ /dev/null @@ -1,37 +0,0 @@ -From eca812c99af7a5ac042853eeef9ebe65c27bc117 Mon Sep 17 00:00:00 2001 -From: "H. Vetinari" -Date: Wed, 13 Sep 2023 21:34:29 +1100 -Subject: [PATCH] fixture teardown should not fail test - ---- - python/pyarrow/tests/test_fs.py | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/python/pyarrow/tests/test_fs.py b/python/pyarrow/tests/test_fs.py -index f8ce74700d..2dd09b0ae6 100644 ---- a/python/pyarrow/tests/test_fs.py -+++ b/python/pyarrow/tests/test_fs.py -@@ -255,7 +255,10 @@ def s3fs(request, s3_server): - allow_move_dir=False, - allow_append_to_file=False, - ) -- fs.delete_dir(bucket) -+ try: -+ fs.delete_dir(bucket) -+ except OSError: -+ pass - - - @pytest.fixture -@@ -386,7 +389,10 @@ def py_fsspec_s3fs(request, s3_server): - allow_move_dir=False, - allow_append_to_file=True, - ) -- fs.delete_dir(bucket) -+ try: -+ fs.delete_dir(bucket) -+ except OSError: -+ pass - - - @pytest.fixture(params=[ From 638898e81c0d2f745f9bb2cfbd929c272485b834 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 17 Oct 2024 11:27:38 +1100 Subject: [PATCH 07/32] use a swapfile to avoid getting OOM-killed --- conda-forge.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/conda-forge.yml b/conda-forge.yml index 9679bb40b..4a1743e53 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -1,6 +1,7 @@ azure: free_disk_space: true - max_parallel: 20 + settings_linux: + swapfile_size: 8GiB settings_win: variables: CONDA_BLD_PATH: C:\\bld\\ From 5214c0a0ecf3e1b3f3c1d9d782c3759eb586d4b3 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 17 Oct 2024 11:32:47 +1100 Subject: [PATCH 08/32] remove deps for obsolete python versions --- recipe/meta.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 4ecdaf97a..d8a26a6bc 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -848,9 +848,6 @@ outputs: # test_cpp_extension_in_python requires a compiler - {{ compiler("cxx") }} # [linux] - pytest - # work around https://github.com/conda-forge/setuptools-feedstock/issues/351 - - backports.tarfile # [py<39] - - backports.zoneinfo # [py<39] - boto3 - cffi - cloudpickle From d2f581314d0f15070c7ed8abe2661524ccfde82a Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 17 Oct 2024 11:34:01 +1100 Subject: [PATCH 09/32] add python 3.13 migration --- .ci_support/migrations/python313.yaml | 42 +++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .ci_support/migrations/python313.yaml diff --git a/.ci_support/migrations/python313.yaml b/.ci_support/migrations/python313.yaml new file mode 100644 index 000000000..119bed8a2 --- /dev/null +++ b/.ci_support/migrations/python313.yaml @@ -0,0 +1,42 @@ +migrator_ts: 1724712607 +__migrator: + commit_message: Rebuild for python 3.13 + migration_number: 1 + operation: key_add + primary_key: python + ordering: + python: + - 3.6.* *_cpython + - 3.7.* *_cpython + - 3.8.* *_cpython + - 3.9.* *_cpython + - 3.10.* *_cpython + - 3.11.* *_cpython + - 3.12.* *_cpython + - 3.13.* *_cp313 # new entry + - 3.6.* *_73_pypy + - 3.7.* *_73_pypy + - 3.8.* *_73_pypy + - 3.9.* *_73_pypy + paused: false + longterm: true + pr_limit: 20 + max_solver_attempts: 3 # this will make the bot retry "not solvable" stuff 12 times + exclude: + # this shouldn't attempt to modify the python feedstocks + - python + - pypy3.6 + - pypy-meta + - cross-python + - python_abi + # see https://github.com/conda-forge/scipy-feedstock/pull/283 + - scipy + exclude_pinned_pkgs: false + +python: +- 3.13.* *_cp313 +# additional entries to add for zip_keys +numpy: +- 2 +python_impl: +- cpython From ad5c55d08864a10f79639aa9d1c4164618ae2b55 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 17 Oct 2024 11:34:15 +1100 Subject: [PATCH 10/32] skip test deps that are not available yet for 3.13 --- recipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index d8a26a6bc..a2a4fa848 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -852,14 +852,14 @@ outputs: - cffi - cloudpickle - cython - - fastparquet + - fastparquet # [py<313] - fsspec - hypothesis - minio-server - pandas - s3fs >=2023 - scipy - - sparse + - sparse # [py<313] # these are generally (far) behind on migrating abseil/grpc/protobuf, # and using them as test dependencies blocks the migrator unnecessarily # - pytorch From 81128f569c9c5167cab57d6e17a086246b890dc5 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 17 Oct 2024 13:32:11 +1100 Subject: [PATCH 11/32] remove track_features for cuda --- recipe/meta.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index a2a4fa848..434d71dc4 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -29,7 +29,6 @@ build: # for cuda support, building with one version is enough to be compatible with # all later versions, since arrow is only using libcuda, and not libcudart. skip: true # [cuda_compiler_version not in ("None", cuda_compiler_version_min)] - # arrow promises API- & ABI-compatibility along SemVer, see #1096 requirements: build: @@ -173,7 +172,6 @@ outputs: ignore_run_exports: # we don't need all of brotli's run-exports - libbrotlicommon - track_features: {{ "[arrow-cuda]" if cuda_enabled else "" }} missing_dso_whitelist: - '*/libcuda.so.*' # [linux] - '*/nvcuda.dll' # [win] @@ -639,7 +637,6 @@ outputs: string: py{{ CONDA_PY }}h{{ PKG_HASH }}_{{ PKG_BUILDNUM }}_{{ build_ext }} ignore_run_exports_from: - {{ compiler("cuda") }} # [cuda_compiler_version != "None"] - track_features: {{ "[arrow-cuda]" if cuda_enabled else "" }} rpaths: - lib/ - {{ SP_DIR }}/pyarrow From 70e7b46696d02fa443205def522257d86a5318da Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Fri, 18 Oct 2024 09:54:42 +1100 Subject: [PATCH 12/32] use default CMAKE_ARGS; absorb EXTRA_CMAKE_ARGS --- recipe/build.sh | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/recipe/build.sh b/recipe/build.sh index 8f1e14d06..67ab5f201 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -4,8 +4,6 @@ set -ex mkdir -p cpp/build pushd cpp/build -EXTRA_CMAKE_ARGS="" - # Include g++'s system headers if [ "$(uname)" == "Linux" ]; then SYSTEM_INCLUDES=$(echo | ${CXX} -E -Wp,-v -xc++ - 2>&1 | grep '^ ' | awk '{print "-isystem;" substr($1, 1)}' | tr '\n' ';') @@ -19,20 +17,20 @@ fi # Enable CUDA support if [[ ! -z "${cuda_compiler_version+x}" && "${cuda_compiler_version}" != "None" ]] then - EXTRA_CMAKE_ARGS=" ${EXTRA_CMAKE_ARGS} -DARROW_CUDA=ON -DCUDAToolkit_ROOT=${CUDA_HOME} -DCMAKE_LIBRARY_PATH=${CONDA_BUILD_SYSROOT}/lib" + CMAKE_ARGS="${CMAKE_ARGS} -DARROW_CUDA=ON -DCUDAToolkit_ROOT=${CUDA_HOME} -DCMAKE_LIBRARY_PATH=${CONDA_BUILD_SYSROOT}/lib" else - EXTRA_CMAKE_ARGS=" ${EXTRA_CMAKE_ARGS} -DARROW_CUDA=OFF" + CMAKE_ARGS="${CMAKE_ARGS} -DARROW_CUDA=OFF" fi if [[ "${build_platform}" != "${target_platform}" ]]; then # point to a usable protoc/grpc_cpp_plugin if we're cross-compiling - EXTRA_CMAKE_ARGS="${EXTRA_CMAKE_ARGS} -DProtobuf_PROTOC_EXECUTABLE=$BUILD_PREFIX/bin/protoc" + CMAKE_ARGS="${CMAKE_ARGS} -DProtobuf_PROTOC_EXECUTABLE=$BUILD_PREFIX/bin/protoc" if [[ ! -f ${BUILD_PREFIX}/bin/${CONDA_TOOLCHAIN_HOST}-clang ]]; then ln -sf ${BUILD_PREFIX}/bin/clang ${BUILD_PREFIX}/bin/${CONDA_TOOLCHAIN_HOST}-clang fi - EXTRA_CMAKE_ARGS="${EXTRA_CMAKE_ARGS} -DCLANG_EXECUTABLE=${BUILD_PREFIX}/bin/${CONDA_TOOLCHAIN_HOST}-clang" - EXTRA_CMAKE_ARGS="${EXTRA_CMAKE_ARGS} -DLLVM_LINK_EXECUTABLE=${BUILD_PREFIX}/bin/llvm-link" - EXTRA_CMAKE_ARGS="${EXTRA_CMAKE_ARGS} -DARROW_JEMALLOC_LG_PAGE=16" + CMAKE_ARGS="${CMAKE_ARGS} -DCLANG_EXECUTABLE=${BUILD_PREFIX}/bin/${CONDA_TOOLCHAIN_HOST}-clang" + CMAKE_ARGS="${CMAKE_ARGS} -DLLVM_LINK_EXECUTABLE=${BUILD_PREFIX}/bin/llvm-link" + CMAKE_ARGS="${CMAKE_ARGS} -DARROW_JEMALLOC_LG_PAGE=16" sed -ie "s;protoc-gen-grpc.*$;protoc-gen-grpc=${BUILD_PREFIX}/bin/grpc_cpp_plugin\";g" ../src/arrow/flight/CMakeLists.txt fi @@ -104,7 +102,7 @@ cmake -GNinja \ -DMAKE=$BUILD_PREFIX/bin/make \ -DPARQUET_REQUIRE_ENCRYPTION=ON \ -DPython3_EXECUTABLE=${PYTHON} \ - ${EXTRA_CMAKE_ARGS} \ + ${CMAKE_ARGS} \ .. # Do not install arrow, only build. From cffd409821b9659f1d099f54563996fc55dc76ee Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 22 Oct 2024 16:31:12 +1100 Subject: [PATCH 13/32] backport patch for tzdata handling --- recipe/meta.yaml | 3 + ...4455-C-Update-vendored-date-to-3.0.3.patch | 1243 +++++++++++++++++ 2 files changed, 1246 insertions(+) create mode 100644 recipe/patches/0001-GH-44455-C-Update-vendored-date-to-3.0.3.patch diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 434d71dc4..d350f01f8 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -16,6 +16,9 @@ source: - url: https://github.com/apache/arrow/releases/download/apache-arrow-{{ version }}-rc0/apache-arrow-{{ version }}.tar.gz fn: apache-arrow-{{ version }}.tar.gz sha256: abcf1934cd0cdddd33664e9f2d9a251d6c55239d1122ad0ed223b13a583c82a9 + patches: + # backport https://github.com/apache/arrow/pull/44482 + - patches/0001-GH-44455-C-Update-vendored-date-to-3.0.3.patch # testing-submodules not part of release tarball - git_url: https://github.com/apache/arrow-testing.git git_rev: 4d209492d514c2d3cb2d392681b9aa00e6d8da1c diff --git a/recipe/patches/0001-GH-44455-C-Update-vendored-date-to-3.0.3.patch b/recipe/patches/0001-GH-44455-C-Update-vendored-date-to-3.0.3.patch new file mode 100644 index 000000000..67298c116 --- /dev/null +++ b/recipe/patches/0001-GH-44455-C-Update-vendored-date-to-3.0.3.patch @@ -0,0 +1,1243 @@ +From d774a80949599d58d4726aaa2d78cc64208ab300 Mon Sep 17 00:00:00 2001 +From: Sutou Kouhei +Date: Mon, 21 Oct 2024 16:41:27 +0900 +Subject: [PATCH] GH-44455: [C++] Update vendored date to 3.0.3 + +IANA tzdata changed its data format. So we need to update vendored +date to parse it. +--- + ci/appveyor-cpp-build.bat | 2 +- + cpp/src/arrow/CMakeLists.txt | 4 +- + cpp/src/arrow/vendored/datetime.cpp | 19 + + cpp/src/arrow/vendored/datetime.h | 7 +- + cpp/src/arrow/vendored/datetime/README.md | 12 +- + cpp/src/arrow/vendored/datetime/date.h | 7 +- + cpp/src/arrow/vendored/datetime/ios.h | 7 +- + cpp/src/arrow/vendored/datetime/ios.mm | 7 +- + cpp/src/arrow/vendored/datetime/tz.cpp | 401 ++++++++++++++----- + cpp/src/arrow/vendored/datetime/tz.h | 43 +- + cpp/src/arrow/vendored/datetime/tz_private.h | 7 +- + cpp/src/arrow/vendored/datetime/update.sh | 53 +++ + cpp/src/arrow/vendored/datetime/visibility.h | 8 +- + cpp/src/gandiva/precompiled/CMakeLists.txt | 2 +- + 14 files changed, 437 insertions(+), 142 deletions(-) + create mode 100644 cpp/src/arrow/vendored/datetime.cpp + create mode 100755 cpp/src/arrow/vendored/datetime/update.sh + +diff --git a/ci/appveyor-cpp-build.bat b/ci/appveyor-cpp-build.bat +index 08a052e82f..084117f387 100644 +--- a/ci/appveyor-cpp-build.bat ++++ b/ci/appveyor-cpp-build.bat +@@ -139,7 +139,7 @@ set PARQUET_HOME=%CONDA_PREFIX%\Library + + @rem Download IANA Timezone Database to a non-standard location to + @rem test the configurability of the timezone database path +-curl https://data.iana.org/time-zones/releases/tzdata2021e.tar.gz --output tzdata.tar.gz || exit /B ++curl https://data.iana.org/time-zones/releases/tzdata2024b.tar.gz --output tzdata.tar.gz || exit /B + mkdir %USERPROFILE%\Downloads\test\tzdata + tar --extract --file tzdata.tar.gz --directory %USERPROFILE%\Downloads\test\tzdata + curl https://raw.githubusercontent.com/unicode-org/cldr/master/common/supplemental/windowsZones.xml ^ +diff --git a/cpp/src/arrow/CMakeLists.txt b/cpp/src/arrow/CMakeLists.txt +index c911f0f4e9..5f6b568460 100644 +--- a/cpp/src/arrow/CMakeLists.txt ++++ b/cpp/src/arrow/CMakeLists.txt +@@ -460,7 +460,7 @@ endif() + + set(ARROW_VENDORED_SRCS + vendored/base64.cpp +- vendored/datetime/tz.cpp ++ vendored/datetime.cpp + vendored/double-conversion/bignum-dtoa.cc + vendored/double-conversion/bignum.cc + vendored/double-conversion/cached-powers.cc +@@ -488,7 +488,7 @@ set(ARROW_VENDORED_SRCS + if(APPLE) + list(APPEND ARROW_VENDORED_SRCS vendored/datetime/ios.mm) + endif() +-set_source_files_properties(vendored/datetime/tz.cpp ++set_source_files_properties(vendored/datetime.cpp + PROPERTIES SKIP_PRECOMPILE_HEADERS ON + SKIP_UNITY_BUILD_INCLUSION ON) + arrow_add_object_library(ARROW_VENDORED ${ARROW_VENDORED_SRCS}) +diff --git a/cpp/src/arrow/vendored/datetime.cpp b/cpp/src/arrow/vendored/datetime.cpp +new file mode 100644 +index 0000000000..0f0bd12c7e +--- /dev/null ++++ b/cpp/src/arrow/vendored/datetime.cpp +@@ -0,0 +1,19 @@ ++// 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. ++ ++#include "datetime/visibility.h" ++#include "datetime/tz.cpp" +diff --git a/cpp/src/arrow/vendored/datetime.h b/cpp/src/arrow/vendored/datetime.h +index e437cdcbc2..aea31ebe77 100644 +--- a/cpp/src/arrow/vendored/datetime.h ++++ b/cpp/src/arrow/vendored/datetime.h +@@ -17,10 +17,11 @@ + + #pragma once + +-#include "arrow/vendored/datetime/date.h" // IWYU pragma: export +-#include "arrow/vendored/datetime/tz.h" // IWYU pragma: export ++#include "arrow/vendored/datetime/visibility.h" // IWYU pragma: export ++#include "arrow/vendored/datetime/date.h" // IWYU pragma: export ++#include "arrow/vendored/datetime/tz.h" // IWYU pragma: export + + // Can be defined by date.h. + #ifdef NOEXCEPT +-#undef NOEXCEPT ++# undef NOEXCEPT + #endif +diff --git a/cpp/src/arrow/vendored/datetime/README.md b/cpp/src/arrow/vendored/datetime/README.md +index 5a0993b7b4..89132d9cba 100644 +--- a/cpp/src/arrow/vendored/datetime/README.md ++++ b/cpp/src/arrow/vendored/datetime/README.md +@@ -17,12 +17,16 @@ copies or substantial portions of the Software. + Sources for datetime are adapted from Howard Hinnant's date library + (https://github.com/HowardHinnant/date). + +-Sources are taken from changeset 1ead6715dec030d340a316c927c877a3c4e5a00c ++Sources are taken from changeset 5bdb7e6f31fac909c090a46dbd9fea27b6e609a4 + of the above project. + + The following changes are made: + - fix internal inclusion paths (from "date/xxx.h" to simply "xxx.h") + - enclose the `date` namespace inside the `arrow_vendored` namespace +-- include a custom "visibility.h" header from "tz.cpp" for proper DLL +- exports on Windows +-- disable curl-based database downloading in "tz.h" ++ ++## How to update ++ ++```console ++$ cd cpp/src/arrow/vendored/datetime ++$ ./update.sh 3.0.3 ++``` +diff --git a/cpp/src/arrow/vendored/datetime/date.h b/cpp/src/arrow/vendored/datetime/date.h +index 75e2624296..c17d6f3f7a 100644 +--- a/cpp/src/arrow/vendored/datetime/date.h ++++ b/cpp/src/arrow/vendored/datetime/date.h +@@ -84,9 +84,7 @@ + # pragma warning(disable : 4127) + #endif + +-namespace arrow_vendored +-{ +-namespace date ++namespace arrow_vendored::date + { + + //---------------+ +@@ -8234,8 +8232,7 @@ operator<<(std::basic_ostream& os, + detail::get_units(typename Period::type{}); + } + +-} // namespace date +-} // namespace arrow_vendored ++} // namespace arrow_vendored::date + + #ifdef _MSC_VER + # pragma warning(pop) +diff --git a/cpp/src/arrow/vendored/datetime/ios.h b/cpp/src/arrow/vendored/datetime/ios.h +index acad28d13b..d018e799a8 100644 +--- a/cpp/src/arrow/vendored/datetime/ios.h ++++ b/cpp/src/arrow/vendored/datetime/ios.h +@@ -32,9 +32,7 @@ + # if TARGET_OS_IPHONE + # include + +- namespace arrow_vendored +- { +- namespace date ++ namespace arrow_vendored::date + { + namespace iOSUtils + { +@@ -43,8 +41,7 @@ + std::string get_current_timezone(); + + } // namespace iOSUtils +- } // namespace date +- } // namespace arrow_vendored ++ } // namespace arrow_vendored::date + + # endif // TARGET_OS_IPHONE + #else // !__APPLE__ +diff --git a/cpp/src/arrow/vendored/datetime/ios.mm b/cpp/src/arrow/vendored/datetime/ios.mm +index 22b7ce6c30..70ba2adf0e 100644 +--- a/cpp/src/arrow/vendored/datetime/ios.mm ++++ b/cpp/src/arrow/vendored/datetime/ios.mm +@@ -47,9 +47,7 @@ + #define TAR_SIZE_POSITION 124 + #define TAR_SIZE_SIZE 12 + +-namespace arrow_vendored +-{ +-namespace date ++namespace arrow_vendored::date + { + namespace iOSUtils + { +@@ -334,7 +332,6 @@ namespace date + } + + } // namespace iOSUtils +-} // namespace date +-} // namespace arrow_vendored ++} // namespace arrow_vendored::date + + #endif // TARGET_OS_IPHONE +diff --git a/cpp/src/arrow/vendored/datetime/tz.cpp b/cpp/src/arrow/vendored/datetime/tz.cpp +index 44c627775f..2cf6c62a84 100644 +--- a/cpp/src/arrow/vendored/datetime/tz.cpp ++++ b/cpp/src/arrow/vendored/datetime/tz.cpp +@@ -30,10 +30,6 @@ + // been invented (that would involve another several millennia of evolution). + // We did not mean to shout. + +-// NOTE(ARROW): This is required so that symbols are properly exported from the DLL +-#include "visibility.h" +- +- + #ifdef _WIN32 + // windows.h will be included directly and indirectly (e.g. by curl). + // We need to define these macros to prevent windows.h bringing in +@@ -97,8 +93,25 @@ + #endif + + #if defined(ANDROID) || defined(__ANDROID__) +-#include +-#endif ++# include ++# if USE_OS_TZDB ++# define MISSING_LEAP_SECONDS 1 ++// from https://android.googlesource.com/platform/bionic/+/master/libc/tzcode/bionic.cpp ++static constexpr size_t ANDROID_TIMEZONE_NAME_LENGTH = 40; ++struct bionic_tzdata_header_t { ++ char tzdata_version[12]; ++ std::int32_t index_offset; ++ std::int32_t data_offset; ++ std::int32_t final_offset; ++}; ++struct index_entry_t { ++ char buf[ANDROID_TIMEZONE_NAME_LENGTH]; ++ std::int32_t start; ++ std::int32_t length; ++ std::int32_t unused; // Was raw GMT offset; always 0 since tzdata2014f (L). ++}; ++# endif // USE_OS_TZDB ++#endif // defined(ANDROID) || defined(__ANDROID__) + + #if USE_OS_TZDB + # include +@@ -122,10 +135,13 @@ + #include + #include + +-// unistd.h is used on some platforms as part of the means to get ++// unistd.h is used on some platforms as part of the the means to get + // the current time zone. On Win32 windows.h provides a means to do it. + // gcc/mingw supports unistd.h on Win32 but MSVC does not. + ++#ifdef __ANDROID__ ++# define INSTALL . ++#endif + #ifdef _WIN32 + # ifdef WINAPI_FAMILY + # include +@@ -178,9 +194,9 @@ + + #ifdef _WIN32 + static CONSTDATA char folder_delimiter = '\\'; +-#else // !_WIN32 ++#elif !defined(ANDROID) && !defined(__ANDROID__) + static CONSTDATA char folder_delimiter = '/'; +-#endif // !_WIN32 ++#endif // !defined(WIN32) && !defined(ANDROID) && !defined(__ANDROID__) + + #if defined(__GNUC__) && __GNUC__ < 5 + // GCC 4.9 Bug 61489 Wrong warning with -Wmissing-field-initializers +@@ -191,20 +207,6 @@ static CONSTDATA char folder_delimiter = '/'; + #if !USE_OS_TZDB + + # ifdef _WIN32 +-# ifndef WINRT +- +-namespace +-{ +- struct task_mem_deleter +- { +- void operator()(wchar_t buf[]) +- { +- if (buf != nullptr) +- CoTaskMemFree(buf); +- } +- }; +- using co_task_mem_ptr = std::unique_ptr; +-} + + static + std::wstring +@@ -235,6 +237,21 @@ convert_utf8_to_utf16(const std::string& s) + return out; + } + ++# ifndef WINRT ++ ++namespace ++{ ++ struct task_mem_deleter ++ { ++ void operator()(wchar_t buf[]) ++ { ++ if (buf != nullptr) ++ CoTaskMemFree(buf); ++ } ++ }; ++ using co_task_mem_ptr = std::unique_ptr; ++} ++ + // We might need to know certain locations even if not using the remote API, + // so keep these routines out of that block for now. + static +@@ -372,7 +389,7 @@ private: + { + # ifdef _WIN32 + std::wstring wfilename = convert_utf8_to_utf16(filename); +- FILE* file = ::_wfopen(wfilename.c_str(), L"rb"); ++ FILE* file = ::_wfopen(wfilename.c_str(), L"r"); + # else // !_WIN32 + FILE* file = ::fopen(filename.c_str(), "rb"); + # endif // _WIN32 +@@ -388,9 +405,8 @@ private: + }; + + #endif // !USE_OS_TZDB +-namespace arrow_vendored +-{ +-namespace date ++ ++namespace arrow_vendored::date + { + // +---------------------+ + // | Begin Configuration | +@@ -470,7 +486,18 @@ discover_tz_dir() + { + struct stat sb; + using namespace std; +-# ifndef __APPLE__ ++# if defined(ANDROID) || defined(__ANDROID__) ++ CONSTDATA auto tz_dir_default = "/apex/com.android.tzdata/etc/tz"; ++ CONSTDATA auto tz_dir_fallback = "/system/usr/share/zoneinfo"; ++ ++ // Check updatable path first ++ if(stat(tz_dir_default, &sb) == 0 && S_ISDIR(sb.st_mode)) ++ return tz_dir_default; ++ else if(stat(tz_dir_fallback, &sb) == 0 && S_ISDIR(sb.st_mode)) ++ return tz_dir_fallback; ++ else ++ throw runtime_error("discover_tz_dir failed to find zoneinfo\n"); ++# elif !defined(__APPLE__) + CONSTDATA auto tz_dir_default = "/usr/share/zoneinfo"; + CONSTDATA auto tz_dir_buildroot = "/usr/share/zoneinfo/uclibc"; + +@@ -493,9 +520,10 @@ discover_tz_dir() + if (!(lstat(timezone, &sb) == 0 && S_ISLNK(sb.st_mode) && sb.st_size > 0)) + throw runtime_error("discover_tz_dir failed\n"); + string result; +- char rp[PATH_MAX+1] = {}; +- if (readlink(timezone, rp, sizeof(rp)-1) > 0) +- result = string(rp); ++ unique_ptr rp(new char[sb.st_size]); ++ const auto rp_length = readlink(timezone, rp.get(), sb.st_size); ++ if (rp_length > 0) ++ result = string(rp.get(), rp_length); // readlink doesn't null-terminate + else + throw system_error(errno, system_category(), "readlink() failed"); + auto i = result.find("zoneinfo"); +@@ -527,7 +555,9 @@ get_tz_dir() + static_assert(min_year <= max_year, "Configuration error"); + #endif + ++#if !defined(ANDROID) && !defined(__ANDROID__) + static std::unique_ptr init_tzdb(); ++#endif // !defined(ANDROID) && !defined(__ANDROID__) + + tzdb_list::~tzdb_list() + { +@@ -586,31 +616,67 @@ get_tzdb_list() + return tz_db; + } + ++#if !defined(ANDROID) && !defined(__ANDROID__) ++inline ++static ++char ++tolower(char c) ++{ ++ return static_cast(std::tolower(c)); ++} ++ ++inline ++static ++void ++tolower(std::string& s) ++{ ++ for (auto& c : s) ++ c = tolower(c); ++} ++ ++inline + static + std::string +-parse3(std::istream& in) ++get_alpha_word(std::istream& in) + { +- std::string r(3, ' '); + ws(in); +- r[0] = static_cast(in.get()); +- r[1] = static_cast(in.get()); +- r[2] = static_cast(in.get()); +- return r; ++ std::string s; ++ while (!in.eof() && std::isalpha(in.peek())) ++ s.push_back(static_cast(in.get())); ++ return s; + } ++#endif // !defined(ANDROID) && !defined(__ANDROID__) + ++inline ++static ++bool ++is_prefix_of(std::string const& key, std::string const& value) ++{ ++ const size_t size = std::min(key.size(), value.size()); ++ return key.compare(0, size, value, 0, size) == 0; ++} ++ ++#if !defined(ANDROID) && !defined(__ANDROID__) + static + unsigned + parse_month(std::istream& in) + { +- CONSTDATA char*const month_names[] = +- {"Jan", "Feb", "Mar", "Apr", "May", "Jun", +- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; +- auto s = parse3(in); +- auto m = std::find(std::begin(month_names), std::end(month_names), s) - month_names; ++ static std::string const month_names[] = ++ {"january", "february", "march", "april", "may", "june", ++ "july", "august", "september", "october", "november", "december"}; ++ auto s = get_alpha_word(in); ++ tolower(s); ++ auto m = std::find_if(std::begin(month_names), std::end(month_names), ++ [&s](std::string const& m) ++ { ++ return is_prefix_of(s, m); ++ }) ++ - month_names; + if (m >= std::end(month_names) - std::begin(month_names)) + throw std::runtime_error("oops: bad month name: " + s); + return static_cast(++m); + } ++#endif // !defined(ANDROID) && !defined(__ANDROID__) + + #if !USE_OS_TZDB + +@@ -822,10 +888,16 @@ static + unsigned + parse_dow(std::istream& in) + { +- CONSTDATA char*const dow_names[] = +- {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; +- auto s = parse3(in); +- auto dow = std::find(std::begin(dow_names), std::end(dow_names), s) - dow_names; ++ static std::string const dow_names[] = ++ {"sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"}; ++ auto s = get_alpha_word(in); ++ tolower(s); ++ auto dow = std::find_if(std::begin(dow_names), std::end(dow_names), ++ [&s](std::string const& dow) ++ { ++ return is_prefix_of(s, dow); ++ }) ++ - dow_names; + if (dow >= std::end(dow_names) - std::begin(dow_names)) + throw std::runtime_error("oops: bad dow name: " + s); + return static_cast(dow); +@@ -875,7 +947,7 @@ parse_signed_time(std::istream& in) + detail::MonthDayTime::MonthDayTime(local_seconds tp, tz timezone) + : zone_(timezone) + { +- using namespace date; ++ using namespace arrow_vendored::date; + const auto dp = date::floor(tp); + const auto hms = make_time(tp - dp); + const auto ymd = year_month_day(dp); +@@ -969,7 +1041,7 @@ sys_seconds + detail::MonthDayTime::to_sys(date::year y, std::chrono::seconds offset, + std::chrono::seconds save) const + { +- using namespace date; ++ using namespace arrow_vendored::date; + using namespace std::chrono; + auto until_utc = to_time_point(y); + if (zone_ == tz::standard) +@@ -1004,7 +1076,7 @@ date::sys_days + detail::MonthDayTime::to_sys_days(date::year y) const + { + using namespace std::chrono; +- using namespace date; ++ using namespace arrow_vendored::date; + switch (type_) + { + case month_day: +@@ -1038,7 +1110,7 @@ void + detail::MonthDayTime::canonicalize(date::year y) + { + using namespace std::chrono; +- using namespace date; ++ using namespace arrow_vendored::date; + switch (type_) + { + case month_day: +@@ -1076,7 +1148,7 @@ detail::MonthDayTime::canonicalize(date::year y) + std::istream& + detail::operator>>(std::istream& is, MonthDayTime& x) + { +- using namespace date; ++ using namespace arrow_vendored::date; + using namespace std::chrono; + assert(((std::ios::failbit | std::ios::badbit) & is.exceptions()) == + (std::ios::failbit | std::ios::badbit)); +@@ -1086,7 +1158,7 @@ detail::operator>>(std::istream& is, MonthDayTime& x) + auto m = parse_month(is); + if (!is.eof() && ws(is) && !is.eof() && is.peek() != '#') + { +- if (is.peek() == 'l') ++ if (tolower(is.peek()) == 'l') + { + for (int i = 0; i < 4; ++i) + is.get(); +@@ -1212,7 +1284,7 @@ detail::Rule::Rule(const std::string& s) + { + try + { +- using namespace date; ++ using namespace arrow_vendored::date; + using namespace std::chrono; + std::istringstream in(s); + in.exceptions(std::ios::failbit | std::ios::badbit); +@@ -1357,7 +1429,7 @@ detail::operator<(const std::string& x, const Rule& y) + std::ostream& + detail::operator<<(std::ostream& os, const Rule& r) + { +- using namespace date; ++ using namespace arrow_vendored::date; + using namespace std::chrono; + detail::save_ostream _(os); + os.fill(' '); +@@ -1416,7 +1488,7 @@ detail::Rule::overlaps(const Rule& x, const Rule& y) + void + detail::Rule::split(std::vector& rules, std::size_t i, std::size_t k, std::size_t& e) + { +- using namespace date; ++ using namespace arrow_vendored::date; + using difference_type = std::vector::iterator::difference_type; + // rules[i].starting_year_ <= rules[k].starting_year_ && + // rules[i].ending_year_ >= rules[k].starting_year_ && +@@ -1555,7 +1627,7 @@ static + std::pair + find_previous_rule(const Rule* r, date::year y) + { +- using namespace date; ++ using namespace arrow_vendored::date; + auto const& rules = get_tzdb().rules; + if (y == r->starting_year()) + { +@@ -1591,7 +1663,7 @@ static + std::pair + find_next_rule(const Rule* first_rule, const Rule* last_rule, const Rule* r, date::year y) + { +- using namespace date; ++ using namespace arrow_vendored::date; + if (y == r->ending_year()) + { + if (r == last_rule-1) +@@ -1622,7 +1694,7 @@ static + std::pair + find_next_rule(const Rule* r, date::year y) + { +- using namespace date; ++ using namespace arrow_vendored::date; + auto const& rules = get_tzdb().rules; + if (y == r->ending_year()) + { +@@ -1671,7 +1743,7 @@ find_rule_for_zone(const std::pair& eqr, + assert(eqr.second != nullptr); + + using namespace std::chrono; +- using namespace date; ++ using namespace arrow_vendored::date; + auto r = eqr.first; + auto ry = r->starting_year(); + auto prev_save = minutes{0}; +@@ -1697,7 +1769,7 @@ find_rule_for_zone(const std::pair& eqr, + const local_seconds& tp_loc) + { + using namespace std::chrono; +- using namespace date; ++ using namespace arrow_vendored::date; + auto r = eqr.first; + auto ry = r->starting_year(); + auto prev_save = minutes{0}; +@@ -1737,7 +1809,7 @@ find_rule(const std::pair& first_rule, + const std::string& initial_abbrev) + { + using namespace std::chrono; +- using namespace date; ++ using namespace arrow_vendored::date; + auto r = first_rule.first; + auto ry = first_rule.second; + sys_info x{sys_days(year::min()/min_day), sys_days(year::max()/max_day), +@@ -2152,6 +2224,9 @@ time_zone::load_data(std::istream& inf, + void + time_zone::init_impl() + { ++#if defined(ANDROID) || defined(__ANDROID__) ++ return; ++#endif // defined(ANDROID) || defined(__ANDROID__) + using namespace std; + using namespace std::chrono; + auto name = get_tz_dir() + ('/' + name_); +@@ -2313,6 +2388,86 @@ time_zone::get_info_impl(local_seconds tp) const + return i; + } + ++#if defined(ANDROID) || defined(__ANDROID__) ++void ++time_zone::parse_from_android_tzdata(std::ifstream& inf, const std::size_t off) ++{ ++ using namespace std; ++ using namespace std::chrono; ++ if (!inf.is_open()) ++ throw std::runtime_error{"Unable to open tzdata"}; ++ std::size_t restorepos = inf.tellg(); ++ inf.seekg(off, inf.beg); ++ load_header(inf); ++ auto v = load_version(inf); ++ std::int32_t tzh_ttisgmtcnt, tzh_ttisstdcnt, tzh_leapcnt, ++ tzh_timecnt, tzh_typecnt, tzh_charcnt; ++ skip_reserve(inf); ++ load_counts(inf, tzh_ttisgmtcnt, tzh_ttisstdcnt, tzh_leapcnt, ++ tzh_timecnt, tzh_typecnt, tzh_charcnt); ++ if (v == 0) ++ { ++ load_data(inf, tzh_leapcnt, tzh_timecnt, tzh_typecnt, tzh_charcnt); ++ } ++ else ++ { ++#if !defined(NDEBUG) ++ inf.ignore((4+1)*tzh_timecnt + 6*tzh_typecnt + tzh_charcnt + 8*tzh_leapcnt + ++ tzh_ttisstdcnt + tzh_ttisgmtcnt); ++ load_header(inf); ++ auto v2 = load_version(inf); ++ assert(v == v2); ++ skip_reserve(inf); ++#else // defined(NDEBUG) ++ inf.ignore((4+1)*tzh_timecnt + 6*tzh_typecnt + tzh_charcnt + 8*tzh_leapcnt + ++ tzh_ttisstdcnt + tzh_ttisgmtcnt + (4+1+15)); ++#endif // defined(NDEBUG) ++ load_counts(inf, tzh_ttisgmtcnt, tzh_ttisstdcnt, tzh_leapcnt, ++ tzh_timecnt, tzh_typecnt, tzh_charcnt); ++ load_data(inf, tzh_leapcnt, tzh_timecnt, tzh_typecnt, tzh_charcnt); ++ } ++#if !MISSING_LEAP_SECONDS ++ if (tzh_leapcnt > 0) ++ { ++ auto& leap_seconds = get_tzdb_list().front().leap_seconds; ++ auto itr = leap_seconds.begin(); ++ auto l = itr->date(); ++ seconds leap_count{0}; ++ for (auto t = std::upper_bound(transitions_.begin(), transitions_.end(), l, ++ [](const sys_seconds& x, const transition& ct) ++ { ++ return x < ct.timepoint; ++ }); ++ t != transitions_.end(); ++t) ++ { ++ while (t->timepoint >= l) ++ { ++ ++leap_count; ++ if (++itr == leap_seconds.end()) ++ l = sys_days(max_year/max_day); ++ else ++ l = itr->date() + leap_count; ++ } ++ t->timepoint -= leap_count; ++ } ++ } ++#endif // !MISSING_LEAP_SECONDS ++ auto b = transitions_.begin(); ++ auto i = transitions_.end(); ++ if (i != b) ++ { ++ for (--i; i != b; --i) ++ { ++ if (i->info->offset == i[-1].info->offset && ++ i->info->abbrev == i[-1].info->abbrev && ++ i->info->is_dst == i[-1].info->is_dst) ++ i = transitions_.erase(i); ++ } ++ } ++ inf.seekg(restorepos, inf.beg); ++} ++#endif // defined(ANDROID) || defined(__ANDROID__) ++ + std::ostream& + operator<<(std::ostream& os, const time_zone& z) + { +@@ -2346,7 +2501,7 @@ time_zone::time_zone(const std::string& s, detail::undocumented) + { + try + { +- using namespace date; ++ using namespace arrow_vendored::date; + std::istringstream in(s); + in.exceptions(std::ios::failbit | std::ios::badbit); + std::string word; +@@ -2416,7 +2571,7 @@ time_zone::add(const std::string& s) + void + time_zone::parse_info(std::istream& in) + { +- using namespace date; ++ using namespace arrow_vendored::date; + using namespace std::chrono; + zonelets_.emplace_back(); + auto& zonelet = zonelets_.back(); +@@ -2449,7 +2604,7 @@ void + time_zone::adjust_infos(const std::vector& rules) + { + using namespace std::chrono; +- using namespace date; ++ using namespace arrow_vendored::date; + const zonelet* prev_zonelet = nullptr; + for (auto& z : zonelets_) + { +@@ -2620,7 +2775,7 @@ sys_info + time_zone::get_info_impl(sys_seconds tp, int tz_int) const + { + using namespace std::chrono; +- using namespace date; ++ using namespace arrow_vendored::date; + tz timezone = static_cast(tz_int); + assert(timezone != tz::standard); + auto y = year_month_day(floor(tp)).year(); +@@ -2682,7 +2837,7 @@ time_zone::get_info_impl(sys_seconds tp, int tz_int) const + std::ostream& + operator<<(std::ostream& os, const time_zone& z) + { +- using namespace date; ++ using namespace arrow_vendored::date; + using namespace std::chrono; + detail::save_ostream _(os); + os.fill(' '); +@@ -2744,14 +2899,14 @@ operator<<(std::ostream& os, const leap_second& x) + + #if USE_OS_TZDB + ++#if !defined(ANDROID) && !defined(__ANDROID__) + static + std::string + get_version() + { +- using namespace std; +- auto path = get_tz_dir() + string("/+VERSION"); +- ifstream in{path}; +- string version; ++ auto path = get_tz_dir() + std::string("/+VERSION"); ++ std::ifstream in{path}; ++ std::string version; + if (in) + { + in >> version; +@@ -2786,7 +2941,8 @@ find_read_and_leap_seconds() + iss.exceptions(std::ios::failbit | std::ios::badbit); + std::string word; + iss >> word; +- if (word == "Leap") ++ tolower(word); ++ if (is_prefix_of(word, "leap")) + { + int y, m, d; + iss >> y; +@@ -2847,6 +3003,7 @@ find_read_and_leap_seconds() + #endif + return {}; + } ++#endif // !defined(ANDROID) && !defined(__ANDROID__) + + static + std::unique_ptr +@@ -2854,6 +3011,38 @@ init_tzdb() + { + std::unique_ptr db(new tzdb); + ++#if defined(ANDROID) || defined(__ANDROID__) ++ auto path = get_tz_dir() + std::string("/tzdata"); ++ std::ifstream in{path}; ++ if (!in) ++ throw std::runtime_error("Can not open " + path); ++ bionic_tzdata_header_t hdr{}; ++ in.read(reinterpret_cast(&hdr), sizeof(bionic_tzdata_header_t)); ++ if (!is_prefix_of(hdr.tzdata_version, "tzdata") || hdr.tzdata_version[11] != 0) ++ throw std::runtime_error("Malformed tzdata - invalid magic!"); ++ maybe_reverse_bytes(hdr.index_offset); ++ maybe_reverse_bytes(hdr.data_offset); ++ maybe_reverse_bytes(hdr.final_offset); ++ if (hdr.index_offset > hdr.data_offset) ++ throw std::runtime_error("Malformed tzdata - hdr.index_offset > hdr.data_offset!"); ++ const size_t index_size = hdr.data_offset - hdr.index_offset; ++ if ((index_size % sizeof(index_entry_t)) != 0) ++ throw std::runtime_error("Malformed tzdata - index size malformed!"); ++ //Iterate through zone index ++ index_entry_t index_entry{}; ++ for (size_t idx = 0; idx < index_size; idx += sizeof(index_entry_t)) { ++ in.read(reinterpret_cast(&index_entry), sizeof(index_entry_t)); ++ maybe_reverse_bytes(index_entry.start); ++ maybe_reverse_bytes(index_entry.length); ++ time_zone timezone{std::string(index_entry.buf), ++ detail::undocumented{}}; ++ timezone.parse_from_android_tzdata(in, hdr.data_offset + index_entry.start); ++ db->zones.emplace_back(std::move(timezone)); ++ } ++ db->zones.shrink_to_fit(); ++ std::sort(db->zones.begin(), db->zones.end()); ++ db->version = std::string(hdr.tzdata_version).replace(0, 6, ""); ++#else + //Iterate through folders + std::queue subfolders; + subfolders.emplace(get_tz_dir()); +@@ -2878,6 +3067,7 @@ init_tzdb() + strcmp(d->d_name, "version") == 0 || + strcmp(d->d_name, "zone.tab") == 0 || + strcmp(d->d_name, "zone1970.tab") == 0 || ++ strcmp(d->d_name, "zonenow.tab") == 0 || + strcmp(d->d_name, "tzdata.zi") == 0 || + strcmp(d->d_name, "leapseconds") == 0 || + strcmp(d->d_name, "leap-seconds.list") == 0 ) +@@ -2905,6 +3095,7 @@ init_tzdb() + std::sort(db->zones.begin(), db->zones.end()); + db->leap_seconds = find_read_and_leap_seconds(); + db->version = get_version(); ++#endif // defined(ANDROID) || defined(__ANDROID__) + return db; + } + +@@ -2914,7 +3105,7 @@ init_tzdb() + + time_zone_link::time_zone_link(const std::string& s) + { +- using namespace date; ++ using namespace arrow_vendored::date; + std::istringstream in(s); + in.exceptions(std::ios::failbit | std::ios::badbit); + std::string word; +@@ -2924,7 +3115,7 @@ time_zone_link::time_zone_link(const std::string& s) + std::ostream& + operator<<(std::ostream& os, const time_zone_link& x) + { +- using namespace date; ++ using namespace arrow_vendored::date; + detail::save_ostream _(os); + os.fill(' '); + os.flags(std::ios::dec | std::ios::left); +@@ -2936,7 +3127,7 @@ operator<<(std::ostream& os, const time_zone_link& x) + + leap_second::leap_second(const std::string& s, detail::undocumented) + { +- using namespace date; ++ using namespace arrow_vendored::date; + std::istringstream in(s); + in.exceptions(std::ios::failbit | std::ios::badbit); + std::string word; +@@ -3568,7 +3759,7 @@ static + std::unique_ptr + init_tzdb() + { +- using namespace date; ++ using namespace arrow_vendored::date; + const std::string install = get_install(); + const std::string path = install + folder_delimiter; + std::string line; +@@ -3647,22 +3838,23 @@ init_tzdb() + std::istringstream in(line); + std::string word; + in >> word; +- if (word == "Rule") ++ tolower(word); ++ if (is_prefix_of(word, "rule")) + { + db->rules.push_back(Rule(line)); + continue_zone = false; + } +- else if (word == "Link") ++ else if (is_prefix_of(word, "link")) + { + db->links.push_back(time_zone_link(line)); + continue_zone = false; + } +- else if (word == "Leap") ++ else if (is_prefix_of(word, "leap")) + { + db->leap_seconds.push_back(leap_second(line, detail::undocumented{})); + continue_zone = false; + } +- else if (word == "Zone") ++ else if (is_prefix_of(word, "zone")) + { + db->zones.push_back(time_zone(line, detail::undocumented{})); + continue_zone = true; +@@ -3991,10 +4183,12 @@ bool + sniff_realpath(const char* timezone) + { + using namespace std; +- char rp[PATH_MAX+1] = {}; +- if (realpath(timezone, rp) == nullptr) ++ unique_ptr rp(realpath(timezone, nullptr), free); ++ if (rp.get() == nullptr) + throw system_error(errno, system_category(), "realpath() failed"); +- auto result = extract_tz_name(rp); ++ auto result = extract_tz_name(rp.get()); ++ if (result.find("posix") == 0) ++ return false; + return result != "posixrules"; + } + +@@ -4021,18 +4215,24 @@ tzdb::current_zone() const + { + using namespace std; + static const bool use_realpath = sniff_realpath(timezone); +- char rp[PATH_MAX+1] = {}; + if (use_realpath) + { +- if (realpath(timezone, rp) == nullptr) ++ unique_ptr rp(realpath(timezone, nullptr), free); ++ if (rp.get() == nullptr) + throw system_error(errno, system_category(), "realpath() failed"); ++ return locate_zone(extract_tz_name(rp.get())); + } + else + { +- if (readlink(timezone, rp, sizeof(rp)-1) <= 0) ++ // +1 because st_size doesn't include the '\0' terminator ++ const auto rp_size = sb.st_size + 1; ++ unique_ptr rp(new char[rp_size]); ++ const auto rp_length = readlink(timezone, rp.get(), rp_size); ++ if (rp_length <= 0) + throw system_error(errno, system_category(), "readlink() failed"); ++ rp.get()[rp_length] = '\0'; // readlink doesn't null-terminate ++ return locate_zone(extract_tz_name(rp.get())); + } +- return locate_zone(extract_tz_name(rp)); + } + } + // On embedded systems e.g. buildroot with uclibc the timezone is linked +@@ -4051,9 +4251,10 @@ tzdb::current_zone() const + if (lstat(timezone, &sb) == 0 && S_ISLNK(sb.st_mode) && sb.st_size > 0) { + using namespace std; + string result; +- char rp[PATH_MAX+1] = {}; +- if (readlink(timezone, rp, sizeof(rp)-1) > 0) +- result = string(rp); ++ unique_ptr rp(new char[sb.st_size]); ++ const auto rp_length = readlink(timezone, rp.get(), sb.st_size); ++ if (rp_length > 0) ++ result = string(rp.get(), rp_length); // readlink doesn't null-terminate + else + throw system_error(errno, system_category(), "readlink() failed"); + +@@ -4135,6 +4336,25 @@ tzdb::current_zone() const + } + // Fall through to try other means. + } ++ // On OpenWRT we need to check /etc/config/system ++ // It will have a line with the following structure ++ // ... ++ // option zoneName 'Europe/Berlin' ++ // ... ++ { ++ std::ifstream timezone_file("/etc/config/system"); ++ if (timezone_file.is_open()) ++ { ++ for(std::string result; std::getline(timezone_file, result);) { ++ std::string findStr = "option zoneName '"; ++ size_t startPos = result.find(findStr); ++ if (startPos != std::string::npos) { ++ size_t endPos = result.find("'", startPos + findStr.size()); ++ return locate_zone(result.substr(startPos + findStr.size(), endPos - startPos - findStr.size())); ++ } ++ } ++ } ++ } + throw std::runtime_error("Could not get current timezone"); + } + +@@ -4146,8 +4366,7 @@ current_zone() + return get_tzdb().current_zone(); + } + +-} // namespace date +-} // namespace arrow_vendored ++} // namespace arrow_vendored::date + + #if defined(__GNUC__) && __GNUC__ < 5 + # pragma GCC diagnostic pop +diff --git a/cpp/src/arrow/vendored/datetime/tz.h b/cpp/src/arrow/vendored/datetime/tz.h +index df6d1a851a..61ab3df106 100644 +--- a/cpp/src/arrow/vendored/datetime/tz.h ++++ b/cpp/src/arrow/vendored/datetime/tz.h +@@ -43,19 +43,13 @@ + // required. On Windows, the names are never "Standard" so mapping is always required. + // Technically any OS may use the mapping process but currently only Windows does use it. + +-// NOTE(ARROW): If this is not set, then the library will attempt to +-// use libcurl to obtain a timezone database, and we probably do not want this. +-#ifndef _WIN32 +-#define USE_OS_TZDB 1 +-#endif +- + #ifndef USE_OS_TZDB + # define USE_OS_TZDB 0 + #endif + + #ifndef HAS_REMOTE_API + # if USE_OS_TZDB == 0 +-# ifdef _WIN32 ++# if defined _WIN32 || defined __ANDROID__ + # define HAS_REMOTE_API 0 + # else + # define HAS_REMOTE_API 1 +@@ -140,13 +134,18 @@ static_assert(HAS_REMOTE_API == 0 ? AUTO_DOWNLOAD == 0 : true, + # endif + #endif + +-namespace arrow_vendored +-{ +-namespace date ++namespace arrow_vendored::date + { + + enum class choose {earliest, latest}; + ++#if defined(BUILD_TZ_LIB) ++# if defined(ANDROID) || defined(__ANDROID__) ++struct tzdb; ++static std::unique_ptr init_tzdb(); ++# endif // defined(ANDROID) || defined(__ANDROID__) ++#endif // defined(BUILD_TZ_LIB) ++ + namespace detail + { + struct undocumented; +@@ -829,6 +828,12 @@ public: + + #if !USE_OS_TZDB + DATE_API void add(const std::string& s); ++#else ++# if defined(BUILD_TZ_LIB) ++# if defined(ANDROID) || defined(__ANDROID__) ++ friend std::unique_ptr init_tzdb(); ++# endif // defined(ANDROID) || defined(__ANDROID__) ++# endif // defined(BUILD_TZ_LIB) + #endif // !USE_OS_TZDB + + private: +@@ -852,6 +857,9 @@ private: + DATE_API void + load_data(std::istream& inf, std::int32_t tzh_leapcnt, std::int32_t tzh_timecnt, + std::int32_t tzh_typecnt, std::int32_t tzh_charcnt); ++# if defined(ANDROID) || defined(__ANDROID__) ++ void parse_from_android_tzdata(std::ifstream& inf, const std::size_t off); ++# endif // defined(ANDROID) || defined(__ANDROID__) + #else // !USE_OS_TZDB + DATE_API sys_info get_info_impl(sys_seconds tp, int tz_int) const; + DATE_API void adjust_infos(const std::vector& rules); +@@ -1198,11 +1206,11 @@ struct tzdb + #endif // defined(_MSC_VER) && (_MSC_VER < 1900) + + #if HAS_STRING_VIEW +- const time_zone* locate_zone(std::string_view tz_name) const; ++ DATE_API const time_zone* locate_zone(std::string_view tz_name) const; + #else +- const time_zone* locate_zone(const std::string& tz_name) const; ++ DATE_API const time_zone* locate_zone(const std::string& tz_name) const; + #endif +- const time_zone* current_zone() const; ++ DATE_API const time_zone* current_zone() const; + }; + + using TZ_DB = tzdb; +@@ -1217,9 +1225,9 @@ class tzdb_list + std::atomic head_{nullptr}; + + public: +- ~tzdb_list(); ++ DATE_API ~tzdb_list(); + tzdb_list() = default; +- tzdb_list(tzdb_list&& x) NOEXCEPT; ++ DATE_API tzdb_list(tzdb_list&& x) NOEXCEPT; + + const tzdb& front() const NOEXCEPT {return *head_;} + tzdb& front() NOEXCEPT {return *head_;} +@@ -1232,7 +1240,7 @@ public: + const_iterator cbegin() const NOEXCEPT; + const_iterator cend() const NOEXCEPT; + +- const_iterator erase_after(const_iterator p) NOEXCEPT; ++ DATE_API const_iterator erase_after(const_iterator p) NOEXCEPT; + + struct undocumented_helper; + private: +@@ -2795,7 +2803,6 @@ to_gps_time(const tai_time& t) + return gps_clock::from_utc(tai_clock::to_utc(t)); + } + +-} // namespace date +-} // namespace arrow_vendored ++} // namespace arrow_vendored::date + + #endif // TZ_H +diff --git a/cpp/src/arrow/vendored/datetime/tz_private.h b/cpp/src/arrow/vendored/datetime/tz_private.h +index a6bb8fd30a..1d7f858971 100644 +--- a/cpp/src/arrow/vendored/datetime/tz_private.h ++++ b/cpp/src/arrow/vendored/datetime/tz_private.h +@@ -34,9 +34,7 @@ + #include + #endif + +-namespace arrow_vendored +-{ +-namespace date ++namespace arrow_vendored::date + { + + namespace detail +@@ -308,8 +306,7 @@ struct transition + + } // namespace detail + +-} // namespace date +-} // namespace arrow_vendored ++} // namespace arrow_vendored::date + + #if defined(_MSC_VER) && (_MSC_VER < 1900) + #include "tz.h" +diff --git a/cpp/src/arrow/vendored/datetime/update.sh b/cpp/src/arrow/vendored/datetime/update.sh +new file mode 100755 +index 0000000000..b4580c0426 +--- /dev/null ++++ b/cpp/src/arrow/vendored/datetime/update.sh +@@ -0,0 +1,53 @@ ++#!/usr/bin/env bash ++# ++# 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. ++ ++set -eux ++ ++source_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ++ ++if [ "$#" -ne 1 ]; then ++ echo "Usage: $0 VERSION" ++ echo " e.g.: $0 3.0.3" ++ exit 1 ++fi ++ ++version="$1" ++ ++pushd "${source_dir}" ++rm -rf date ++git clone \ ++ --branch "v${version}" \ ++ --depth 1 \ ++ https://github.com/HowardHinnant/date.git ++commit_id=$(git -C date log -1 --format=format:%H) ++mv date/include/date/date.h ./ ++mv date/include/date/ios.h ./ ++mv date/include/date/tz.h ./ ++mv date/include/date/tz_private.h ./ ++mv date/src/* ./ ++rm -rf date ++sed -i.bak -E \ ++ -e 's/namespace date/namespace arrow_vendored::date/g' \ ++ -e 's,include "date/,include ",g' \ ++ *.{cpp,h,mm} ++sed -i.bak -E \ ++ -e "s/changeset [0-9a-f]+/changeset ${commit_id}/g" \ ++ README.md ++rm *.bak ++popd +diff --git a/cpp/src/arrow/vendored/datetime/visibility.h b/cpp/src/arrow/vendored/datetime/visibility.h +index ae031238d8..780c00d70b 100644 +--- a/cpp/src/arrow/vendored/datetime/visibility.h ++++ b/cpp/src/arrow/vendored/datetime/visibility.h +@@ -17,10 +17,14 @@ + + #pragma once + ++#ifndef _WIN32 ++# define USE_OS_TZDB 1 ++#endif ++ + #if defined(ARROW_STATIC) + // intentially empty + #elif defined(ARROW_EXPORTING) +-#define DATE_BUILD_DLL ++# define DATE_BUILD_DLL + #else +-#define DATE_USE_DLL ++# define DATE_USE_DLL + #endif +diff --git a/cpp/src/gandiva/precompiled/CMakeLists.txt b/cpp/src/gandiva/precompiled/CMakeLists.txt +index c2bc7fc027..e1427e25fb 100644 +--- a/cpp/src/gandiva/precompiled/CMakeLists.txt ++++ b/cpp/src/gandiva/precompiled/CMakeLists.txt +@@ -63,7 +63,7 @@ add_gandiva_test(precompiled-test + time.cc + timestamp_arithmetic.cc + ../cast_time.cc +- ../../arrow/vendored/datetime/tz.cpp ++ ../../arrow/vendored/datetime.cpp + hash_test.cc + hash.cc + string_ops_test.cc From eb35adbc0c0d2ffb6beacdea7020cb23f6b77a13 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 23 Oct 2024 12:37:40 +1100 Subject: [PATCH 14/32] backport patch for ARROW_GRPC_CPP_PLUGIN --- recipe/build.sh | 1 + recipe/meta.yaml | 2 + ...4455-C-Update-vendored-date-to-3.0.3.patch | 2 +- ...upport-for-overriding-grpc_cpp_plugi.patch | 46 +++++++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 recipe/patches/0002-GH-44448-C-Add-support-for-overriding-grpc_cpp_plugi.patch diff --git a/recipe/build.sh b/recipe/build.sh index 67ab5f201..85ad1b9c2 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -31,6 +31,7 @@ if [[ "${build_platform}" != "${target_platform}" ]]; then CMAKE_ARGS="${CMAKE_ARGS} -DCLANG_EXECUTABLE=${BUILD_PREFIX}/bin/${CONDA_TOOLCHAIN_HOST}-clang" CMAKE_ARGS="${CMAKE_ARGS} -DLLVM_LINK_EXECUTABLE=${BUILD_PREFIX}/bin/llvm-link" CMAKE_ARGS="${CMAKE_ARGS} -DARROW_JEMALLOC_LG_PAGE=16" + CMAKE_ARGS="${CMAKE_ARGS} -DARROW_GRPC_CPP_PLUGIN=${BUILD_PREFIX}/bin/grpc_cpp_plugin" sed -ie "s;protoc-gen-grpc.*$;protoc-gen-grpc=${BUILD_PREFIX}/bin/grpc_cpp_plugin\";g" ../src/arrow/flight/CMakeLists.txt fi diff --git a/recipe/meta.yaml b/recipe/meta.yaml index d350f01f8..bc89af4e2 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -19,6 +19,8 @@ source: patches: # backport https://github.com/apache/arrow/pull/44482 - patches/0001-GH-44455-C-Update-vendored-date-to-3.0.3.patch + # backport https://github.com/apache/arrow/pull/44507 + - patches/0002-GH-44448-C-Add-support-for-overriding-grpc_cpp_plugi.patch # testing-submodules not part of release tarball - git_url: https://github.com/apache/arrow-testing.git git_rev: 4d209492d514c2d3cb2d392681b9aa00e6d8da1c diff --git a/recipe/patches/0001-GH-44455-C-Update-vendored-date-to-3.0.3.patch b/recipe/patches/0001-GH-44455-C-Update-vendored-date-to-3.0.3.patch index 67298c116..20573da4e 100644 --- a/recipe/patches/0001-GH-44455-C-Update-vendored-date-to-3.0.3.patch +++ b/recipe/patches/0001-GH-44455-C-Update-vendored-date-to-3.0.3.patch @@ -1,7 +1,7 @@ From d774a80949599d58d4726aaa2d78cc64208ab300 Mon Sep 17 00:00:00 2001 From: Sutou Kouhei Date: Mon, 21 Oct 2024 16:41:27 +0900 -Subject: [PATCH] GH-44455: [C++] Update vendored date to 3.0.3 +Subject: [PATCH 1/2] GH-44455: [C++] Update vendored date to 3.0.3 IANA tzdata changed its data format. So we need to update vendored date to parse it. diff --git a/recipe/patches/0002-GH-44448-C-Add-support-for-overriding-grpc_cpp_plugi.patch b/recipe/patches/0002-GH-44448-C-Add-support-for-overriding-grpc_cpp_plugi.patch new file mode 100644 index 000000000..43d1f247e --- /dev/null +++ b/recipe/patches/0002-GH-44448-C-Add-support-for-overriding-grpc_cpp_plugi.patch @@ -0,0 +1,46 @@ +From 3d00b553ffd302ada8d74b5b77b71128c594c0b4 Mon Sep 17 00:00:00 2001 +From: Sutou Kouhei +Date: Wed, 23 Oct 2024 10:30:33 +0900 +Subject: [PATCH 2/2] GH-44448: [C++] Add support for overriding + grpc_cpp_plugin path for cross-compiling + +--- + cpp/cmake_modules/DefineOptions.cmake | 5 +++++ + cpp/cmake_modules/ThirdpartyToolchain.cmake | 8 ++++++++ + 2 files changed, 13 insertions(+) + +diff --git a/cpp/cmake_modules/DefineOptions.cmake b/cpp/cmake_modules/DefineOptions.cmake +index d823444cf7..a7bf9e59f8 100644 +--- a/cpp/cmake_modules/DefineOptions.cmake ++++ b/cpp/cmake_modules/DefineOptions.cmake +@@ -640,6 +640,11 @@ Always OFF if building binaries" OFF) + "Compiler flags to append when pre-compiling Gandiva operations" + "") + ++ #---------------------------------------------------------------------- ++ set_option_category("Cross compiling") ++ ++ define_option_string(ARROW_GRPC_CPP_PLUGIN "grpc_cpp_plugin path to be used" "") ++ + #---------------------------------------------------------------------- + set_option_category("Advanced developer") + +diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake +index db151b4e0f..0b215b5b25 100644 +--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake ++++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake +@@ -4223,6 +4223,14 @@ if(ARROW_WITH_GRPC) + target_link_libraries(gRPC::grpc++ INTERFACE gRPC::grpc_asan_suppressed) + endif() + endif() ++ ++ if(ARROW_GRPC_CPP_PLUGIN) ++ if(NOT TARGET gRPC::grpc_cpp_plugin) ++ add_executable(gRPC::grpc_cpp_plugin IMPORTED) ++ endif() ++ set_target_properties(gRPC::grpc_cpp_plugin PROPERTIES IMPORTED_LOCATION ++ ${ARROW_GRPC_CPP_PLUGIN}) ++ endif() + endif() + + # ---------------------------------------------------------------------- From e0c6d2db3e51a5e424467ef59551459300173429 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 23 Oct 2024 12:52:45 +1100 Subject: [PATCH 15/32] MNT: Re-rendered with conda-build 24.9.0, conda-smithy 3.43.0, and conda-forge-pinning 2024.10.22.08.35.23 --- .azure-pipelines/azure-pipelines-linux.yml | 6 +++ ...ler_version11.8cxx_compiler_version11.yaml | 18 ++++++++ ...ler_versionNonecxx_compiler_version13.yaml | 18 ++++++++ ...ler_version11.8cxx_compiler_version11.yaml | 18 ++++++++ ...ler_versionNonecxx_compiler_version13.yaml | 18 ++++++++ ...ler_version11.8cxx_compiler_version11.yaml | 18 ++++++++ ...ler_versionNonecxx_compiler_version13.yaml | 18 ++++++++ .ci_support/osx_64_.yaml | 18 ++++++++ .ci_support/osx_arm64_.yaml | 18 ++++++++ ...compilerNonecuda_compiler_versionNone.yaml | 18 ++++++++ ...compilernvcccuda_compiler_version11.8.yaml | 18 ++++++++ README.md | 46 +++++++++++++++++-- 12 files changed, 229 insertions(+), 3 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 98a356c9d..b0ef17b32 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -57,6 +57,12 @@ jobs: sudo apt-get autoclean -y >& /dev/null df -h displayName: Manage disk space + - script: | + sudo fallocate -l 8GiB /swapfile || true + sudo chmod 600 /swapfile || true + sudo mkswap /swapfile || true + sudo swapon /swapfile || true + displayName: Create swap file # configure qemu binfmt-misc running. This allows us to run docker containers # embedded qemu-static - script: | diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml index d49a0ee46..623bcef5d 100644 --- a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml +++ b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml @@ -56,10 +56,26 @@ libprotobuf: - 5.27.5 lz4_c: - 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' openssl: - '3' orc: - 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython re2: - 2024.07.02 snappy: @@ -76,6 +92,8 @@ zip_keys: - cuda_compiler - cuda_compiler_version - docker_image +- - python + - numpy zlib: - '1' zstd: diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml index ea622e3b2..54a9eabd9 100644 --- a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml +++ b/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml @@ -56,10 +56,26 @@ libprotobuf: - 5.27.5 lz4_c: - 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' openssl: - '3' orc: - 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython re2: - 2024.07.02 snappy: @@ -76,6 +92,8 @@ zip_keys: - cuda_compiler - cuda_compiler_version - docker_image +- - python + - numpy zlib: - '1' zstd: diff --git a/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml index 04060c5ce..17609474e 100644 --- a/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml @@ -60,10 +60,26 @@ libprotobuf: - 5.27.5 lz4_c: - 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' openssl: - '3' orc: - 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython re2: - 2024.07.02 snappy: @@ -80,6 +96,8 @@ zip_keys: - cuda_compiler - cuda_compiler_version - docker_image +- - python + - numpy zlib: - '1' zstd: diff --git a/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml index 7fbdd36ff..ea94b1b03 100644 --- a/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml @@ -60,10 +60,26 @@ libprotobuf: - 5.27.5 lz4_c: - 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' openssl: - '3' orc: - 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython re2: - 2024.07.02 snappy: @@ -80,6 +96,8 @@ zip_keys: - cuda_compiler - cuda_compiler_version - docker_image +- - python + - numpy zlib: - '1' zstd: diff --git a/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml index bfe1d7314..1c9d60a97 100644 --- a/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml +++ b/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml @@ -56,10 +56,26 @@ libprotobuf: - 5.27.5 lz4_c: - 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' openssl: - '3' orc: - 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython re2: - 2024.07.02 snappy: @@ -76,6 +92,8 @@ zip_keys: - cuda_compiler - cuda_compiler_version - docker_image +- - python + - numpy zlib: - '1' zstd: diff --git a/.ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml index 9dbee57e0..296fb280e 100644 --- a/.ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml +++ b/.ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml @@ -56,10 +56,26 @@ libprotobuf: - 5.27.5 lz4_c: - 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' openssl: - '3' orc: - 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython re2: - 2024.07.02 snappy: @@ -76,6 +92,8 @@ zip_keys: - cuda_compiler - cuda_compiler_version - docker_image +- - python + - numpy zlib: - '1' zstd: diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index 1f667181d..e0d52345e 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -56,10 +56,26 @@ lz4_c: - 1.9.3 macos_machine: - x86_64-apple-darwin13.4.0 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' openssl: - '3' orc: - 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython re2: - 2024.07.02 snappy: @@ -71,6 +87,8 @@ thrift_cpp: zip_keys: - - c_compiler_version - cxx_compiler_version +- - python + - numpy zlib: - '1' zstd: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index 311627370..9a27ac2af 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -56,10 +56,26 @@ lz4_c: - 1.9.3 macos_machine: - arm64-apple-darwin20.0.0 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' openssl: - '3' orc: - 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython re2: - 2024.07.02 snappy: @@ -71,6 +87,8 @@ thrift_cpp: zip_keys: - - c_compiler_version - cxx_compiler_version +- - python + - numpy zlib: - '1' zstd: diff --git a/.ci_support/win_64_cuda_compilerNonecuda_compiler_versionNone.yaml b/.ci_support/win_64_cuda_compilerNonecuda_compiler_versionNone.yaml index fbb106f13..175acd0ba 100644 --- a/.ci_support/win_64_cuda_compilerNonecuda_compiler_versionNone.yaml +++ b/.ci_support/win_64_cuda_compilerNonecuda_compiler_versionNone.yaml @@ -42,10 +42,26 @@ libprotobuf: - 5.27.5 lz4_c: - 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' openssl: - '3' orc: - 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython re2: - 2024.07.02 snappy: @@ -57,6 +73,8 @@ thrift_cpp: zip_keys: - - cuda_compiler - cuda_compiler_version +- - python + - numpy zlib: - '1' zstd: diff --git a/.ci_support/win_64_cuda_compilernvcccuda_compiler_version11.8.yaml b/.ci_support/win_64_cuda_compilernvcccuda_compiler_version11.8.yaml index 5474a2caa..3f6cf51aa 100644 --- a/.ci_support/win_64_cuda_compilernvcccuda_compiler_version11.8.yaml +++ b/.ci_support/win_64_cuda_compilernvcccuda_compiler_version11.8.yaml @@ -42,10 +42,26 @@ libprotobuf: - 5.27.5 lz4_c: - 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' openssl: - '3' orc: - 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython re2: - 2024.07.02 snappy: @@ -57,6 +73,8 @@ thrift_cpp: zip_keys: - - cuda_compiler - cuda_compiler_version +- - python + - numpy zlib: - '1' zstd: diff --git a/README.md b/README.md index f04a71aed..6b07f75ab 100644 --- a/README.md +++ b/README.md @@ -94,6 +94,42 @@ Package license: Apache-2.0 Summary: C++ libraries for Apache Arrow Substrait +About pyarrow-core +------------------ + +Home: http://github.com/apache/arrow + +Package license: Apache-2.0 + +Summary: Python libraries for Apache Arrow Core + +About pyarrow +------------- + +Home: http://github.com/apache/arrow + +Package license: Apache-2.0 + +Summary: Python libraries for Apache Arrow with default capabilities + +About pyarrow-all +----------------- + +Home: http://github.com/apache/arrow + +Package license: Apache-2.0 + +Summary: Python libraries for Apache Arrow with all capabilities + +About pyarrow-tests +------------------- + +Home: http://github.com/apache/arrow + +Package license: Apache-2.0 + +Summary: Python test files for Apache Arrow + Current build status ==================== @@ -204,6 +240,10 @@ Current release info | [![Conda Recipe](https://img.shields.io/badge/recipe-libarrow--gandiva-green.svg)](https://anaconda.org/conda-forge/libarrow-gandiva) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libarrow-gandiva.svg)](https://anaconda.org/conda-forge/libarrow-gandiva) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libarrow-gandiva.svg)](https://anaconda.org/conda-forge/libarrow-gandiva) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libarrow-gandiva.svg)](https://anaconda.org/conda-forge/libarrow-gandiva) | | [![Conda Recipe](https://img.shields.io/badge/recipe-libarrow--substrait-green.svg)](https://anaconda.org/conda-forge/libarrow-substrait) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libarrow-substrait.svg)](https://anaconda.org/conda-forge/libarrow-substrait) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libarrow-substrait.svg)](https://anaconda.org/conda-forge/libarrow-substrait) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libarrow-substrait.svg)](https://anaconda.org/conda-forge/libarrow-substrait) | | [![Conda Recipe](https://img.shields.io/badge/recipe-libparquet-green.svg)](https://anaconda.org/conda-forge/libparquet) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/libparquet.svg)](https://anaconda.org/conda-forge/libparquet) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/libparquet.svg)](https://anaconda.org/conda-forge/libparquet) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/libparquet.svg)](https://anaconda.org/conda-forge/libparquet) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-pyarrow-green.svg)](https://anaconda.org/conda-forge/pyarrow) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pyarrow.svg)](https://anaconda.org/conda-forge/pyarrow) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/pyarrow.svg)](https://anaconda.org/conda-forge/pyarrow) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/pyarrow.svg)](https://anaconda.org/conda-forge/pyarrow) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-pyarrow--all-green.svg)](https://anaconda.org/conda-forge/pyarrow-all) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pyarrow-all.svg)](https://anaconda.org/conda-forge/pyarrow-all) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/pyarrow-all.svg)](https://anaconda.org/conda-forge/pyarrow-all) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/pyarrow-all.svg)](https://anaconda.org/conda-forge/pyarrow-all) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-pyarrow--core-green.svg)](https://anaconda.org/conda-forge/pyarrow-core) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pyarrow-core.svg)](https://anaconda.org/conda-forge/pyarrow-core) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/pyarrow-core.svg)](https://anaconda.org/conda-forge/pyarrow-core) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/pyarrow-core.svg)](https://anaconda.org/conda-forge/pyarrow-core) | +| [![Conda Recipe](https://img.shields.io/badge/recipe-pyarrow--tests-green.svg)](https://anaconda.org/conda-forge/pyarrow-tests) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/pyarrow-tests.svg)](https://anaconda.org/conda-forge/pyarrow-tests) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/pyarrow-tests.svg)](https://anaconda.org/conda-forge/pyarrow-tests) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/pyarrow-tests.svg)](https://anaconda.org/conda-forge/pyarrow-tests) | Installing arrow-cpp ==================== @@ -215,16 +255,16 @@ conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `apache-arrow-proc, libarrow, libarrow-acero, libarrow-all, libarrow-dataset, libarrow-flight, libarrow-flight-sql, libarrow-gandiva, libarrow-substrait, libparquet` can be installed with `conda`: +Once the `conda-forge` channel has been enabled, `apache-arrow-proc, libarrow, libarrow-acero, libarrow-all, libarrow-dataset, libarrow-flight, libarrow-flight-sql, libarrow-gandiva, libarrow-substrait, libparquet, pyarrow, pyarrow-all, pyarrow-core, pyarrow-tests` can be installed with `conda`: ``` -conda install apache-arrow-proc libarrow libarrow-acero libarrow-all libarrow-dataset libarrow-flight libarrow-flight-sql libarrow-gandiva libarrow-substrait libparquet +conda install apache-arrow-proc libarrow libarrow-acero libarrow-all libarrow-dataset libarrow-flight libarrow-flight-sql libarrow-gandiva libarrow-substrait libparquet pyarrow pyarrow-all pyarrow-core pyarrow-tests ``` or with `mamba`: ``` -mamba install apache-arrow-proc libarrow libarrow-acero libarrow-all libarrow-dataset libarrow-flight libarrow-flight-sql libarrow-gandiva libarrow-substrait libparquet +mamba install apache-arrow-proc libarrow libarrow-acero libarrow-all libarrow-dataset libarrow-flight libarrow-flight-sql libarrow-gandiva libarrow-substrait libparquet pyarrow pyarrow-all pyarrow-core pyarrow-tests ``` It is possible to list all of the versions of `apache-arrow-proc` available on your platform with `conda`: From 5b244636cb2483b21dca0bc149bc1b66e4d894a9 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 17 Oct 2024 08:56:26 +1100 Subject: [PATCH 16/32] DEBUG: remove package validation pyarrow-{core,all} are not allowed for this feedstock, spuriously failing CI --- .scripts/build_steps.sh | 6 ------ .scripts/run_osx_build.sh | 6 ------ .scripts/run_win_build.bat | 6 ------ 3 files changed, 18 deletions(-) diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 827a29fbc..1b73db5ff 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -80,12 +80,6 @@ else command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" ( endgroup "Inspecting artifacts" ) 2> /dev/null - ( startgroup "Validating outputs" ) 2> /dev/null - - validate_recipe_outputs "${FEEDSTOCK_NAME}" - - ( endgroup "Validating outputs" ) 2> /dev/null - ( startgroup "Uploading packages" ) 2> /dev/null if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 7f948c41f..e00e47b8c 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -103,12 +103,6 @@ else command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir ./recipe -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" ( endgroup "Inspecting artifacts" ) 2> /dev/null - ( startgroup "Validating outputs" ) 2> /dev/null - - validate_recipe_outputs "${FEEDSTOCK_NAME}" - - ( endgroup "Validating outputs" ) 2> /dev/null - ( startgroup "Uploading packages" ) 2> /dev/null if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index d3c0345e5..170d50225 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -107,12 +107,6 @@ if /i "%CI%" == "azure" ( set "TEMP=%UPLOAD_TEMP%" ) -:: Validate -call :start_group "Validating outputs" -validate_recipe_outputs "%FEEDSTOCK_NAME%" -if !errorlevel! neq 0 exit /b !errorlevel! -call :end_group - if /i "%UPLOAD_PACKAGES%" == "true" ( if /i "%IS_PR_BUILD%" == "false" ( call :start_group "Uploading packages" From c8a675f1317e983c1269783b07c249e09bd2f90b Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Wed, 23 Oct 2024 13:31:21 +1100 Subject: [PATCH 17/32] remove sed for grpc_cpp_plugin --- recipe/build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/recipe/build.sh b/recipe/build.sh index 85ad1b9c2..509b592e6 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -32,7 +32,6 @@ if [[ "${build_platform}" != "${target_platform}" ]]; then CMAKE_ARGS="${CMAKE_ARGS} -DLLVM_LINK_EXECUTABLE=${BUILD_PREFIX}/bin/llvm-link" CMAKE_ARGS="${CMAKE_ARGS} -DARROW_JEMALLOC_LG_PAGE=16" CMAKE_ARGS="${CMAKE_ARGS} -DARROW_GRPC_CPP_PLUGIN=${BUILD_PREFIX}/bin/grpc_cpp_plugin" - sed -ie "s;protoc-gen-grpc.*$;protoc-gen-grpc=${BUILD_PREFIX}/bin/grpc_cpp_plugin\";g" ../src/arrow/flight/CMakeLists.txt fi # disable -fno-plt, which causes problems with GCC on PPC From d7ea4ab277f5c5f624f35cc482523f8ed91e2e85 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Thu, 24 Oct 2024 10:39:59 +1100 Subject: [PATCH 18/32] undo infra changes compared to last passing windows build --- .azure-pipelines/azure-pipelines-win.yml | 21 +++++++++++-- .scripts/run_win_build.bat | 38 +++++------------------- conda-forge.yml | 4 --- 3 files changed, 26 insertions(+), 37 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 28002c897..300b7adaf 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -16,17 +16,32 @@ jobs: UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: - CONDA_BLD_PATH: C:\\bld\\ - MINIFORGE_HOME: C:\\Miniforge + CONDA_BLD_PATH: D:\\bld\\ UPLOAD_TEMP: D:\\tmp steps: + - task: PythonScript@0 + displayName: 'Download Miniforge' + inputs: + scriptSource: inline + script: | + import urllib.request + url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Windows-x86_64.exe' + path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe" + urllib.request.urlretrieve(url, path) + + - script: | + start /wait "" %BUILD_ARTIFACTSTAGINGDIRECTORY%\Miniforge.exe /InstallationType=JustMe /RegisterPython=0 /S /D=C:\Miniforge + displayName: Install Miniforge + + - powershell: Write-Host "##vso[task.prependpath]C:\Miniforge\Scripts" + displayName: Add conda to PATH + - script: | call ".scripts\run_win_build.bat" displayName: Run Windows build env: - MINIFORGE_HOME: $(MINIFORGE_HOME) PYTHONUNBUFFERED: 1 CONFIG: $(CONFIG) CI: azure diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 170d50225..6738fb0f2 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -3,52 +3,30 @@ :: changes to this script, consider a proposal to conda-smithy so that other feedstocks can also :: benefit from the improvement. +:: Note: we assume a Miniforge installation is available + :: INPUTS (required environment variables) :: CONFIG: name of the .ci_support/*.yaml file for this job :: CI: azure, github_actions, or unset -:: MINIFORGE_HOME: where to install the base conda environment :: UPLOAD_PACKAGES: true or false :: UPLOAD_ON_BRANCH: true or false setlocal enableextensions enabledelayedexpansion -if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" -:: Remove trailing backslash, if present -if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" -call :start_group "Provisioning base env with micromamba" -set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" -set "MICROMAMBA_VERSION=1.5.10-0" -set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" -set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" -set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" - -echo Downloading micromamba %MICROMAMBA_VERSION% -if not exist "%MICROMAMBA_TMPDIR%" mkdir "%MICROMAMBA_TMPDIR%" -certutil -urlcache -split -f "%MICROMAMBA_URL%" "%MICROMAMBA_EXE%" -if !errorlevel! neq 0 exit /b !errorlevel! - -echo Creating environment -call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ - --channel conda-forge ^ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -if !errorlevel! neq 0 exit /b !errorlevel! -echo Moving pkgs cache from %MAMBA_ROOT_PREFIX% to %MINIFORGE_HOME% -move /Y "%MAMBA_ROOT_PREFIX%\pkgs" "%MINIFORGE_HOME%" -if !errorlevel! neq 0 exit /b !errorlevel! -echo Removing %MAMBA_ROOT_PREFIX% -del /S /Q "%MAMBA_ROOT_PREFIX%" -del /S /Q "%MICROMAMBA_TMPDIR%" -call :end_group - call :start_group "Configuring conda" :: Activate the base conda environment -call "%MINIFORGE_HOME%\Scripts\activate.bat" +call activate base :: Configure the solver set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" +:: Provision the necessary dependencies to build the recipe later +echo Installing dependencies +mamba.exe install pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes +if !errorlevel! neq 0 exit /b !errorlevel! + :: Set basic configuration echo Setting up configuration setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml diff --git a/conda-forge.yml b/conda-forge.yml index 4a1743e53..6f265d547 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -2,10 +2,6 @@ azure: free_disk_space: true settings_linux: swapfile_size: 8GiB - settings_win: - variables: - CONDA_BLD_PATH: C:\\bld\\ - MINIFORGE_HOME: C:\\Miniforge bot: abi_migration_branches: - 16.x From 4e89f1ee940804678687a3c53c9eff4c5542f0bb Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 28 Oct 2024 12:58:28 +0100 Subject: [PATCH 19/32] use micromamba again MNT: Re-rendered with conda-build 24.7.1, conda-smithy 3.43.0, and conda-forge-pinning 2024.10.27.23.07.45 --- .azure-pipelines/azure-pipelines-linux.yml | 24 +++++----- .azure-pipelines/azure-pipelines-win.yml | 27 +++--------- ...er_version11.8cxx_compiler_version11.yaml} | 2 +- ...er_versionNonecxx_compiler_version13.yaml} | 2 +- ...er_version11.8cxx_compiler_version11.yaml} | 2 +- ...er_versionNonecxx_compiler_version13.yaml} | 2 +- ...er_version11.8cxx_compiler_version11.yaml} | 2 +- ...er_versionNonecxx_compiler_version13.yaml} | 2 +- .ci_support/migrations/aws_crt_cpp0285.yaml | 9 ---- .ci_support/osx_64_.yaml | 4 +- .ci_support/osx_arm64_.yaml | 4 +- ... => win_64_cuda_compiler_version11.8.yaml} | 2 +- ... => win_64_cuda_compiler_versionNone.yaml} | 2 +- .scripts/build_steps.sh | 6 +++ .scripts/run_osx_build.sh | 6 +++ .scripts/run_win_build.bat | 44 +++++++++++++++---- README.md | 32 +++++++------- conda-forge.yml | 1 + 18 files changed, 93 insertions(+), 80 deletions(-) rename .ci_support/{linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml => linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml} (99%) rename .ci_support/{linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml => linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml} (99%) rename .ci_support/{linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml => linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml} (99%) rename .ci_support/{linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml => linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml} (99%) rename .ci_support/{linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml => linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml} (99%) rename .ci_support/{linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml => linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml} (99%) delete mode 100644 .ci_support/migrations/aws_crt_cpp0285.yaml rename .ci_support/{win_64_cuda_compilernvcccuda_compiler_version11.8.yaml => win_64_cuda_compiler_version11.8.yaml} (99%) rename .ci_support/{win_64_cuda_compilerNonecuda_compiler_versionNone.yaml => win_64_cuda_compiler_versionNone.yaml} (99%) diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index b0ef17b32..9de2161a2 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -8,28 +8,28 @@ jobs: vmImage: ubuntu-latest strategy: matrix: - linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11: - CONFIG: linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 + linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11: + CONFIG: linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 - linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13: - CONFIG: linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 + linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13: + CONFIG: linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11: - CONFIG: linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 + linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11: + CONFIG: linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 - linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13: - CONFIG: linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 + linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13: + CONFIG: linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11: - CONFIG: linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 + linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11: + CONFIG: linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 - linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13: - CONFIG: linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 + linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13: + CONFIG: linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 timeoutInMinutes: 360 diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 300b7adaf..8061a4806 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -8,40 +8,25 @@ jobs: vmImage: windows-2022 strategy: matrix: - win_64_cuda_compilerNonecuda_compiler_versionNone: - CONFIG: win_64_cuda_compilerNonecuda_compiler_versionNone + win_64_cuda_compiler_version11.8: + CONFIG: win_64_cuda_compiler_version11.8 UPLOAD_PACKAGES: 'True' - win_64_cuda_compilernvcccuda_compiler_version11.8: - CONFIG: win_64_cuda_compilernvcccuda_compiler_version11.8 + win_64_cuda_compiler_versionNone: + CONFIG: win_64_cuda_compiler_versionNone UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ + MINIFORGE_HOME: D:\Miniforge UPLOAD_TEMP: D:\\tmp steps: - - task: PythonScript@0 - displayName: 'Download Miniforge' - inputs: - scriptSource: inline - script: | - import urllib.request - url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Windows-x86_64.exe' - path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe" - urllib.request.urlretrieve(url, path) - - - script: | - start /wait "" %BUILD_ARTIFACTSTAGINGDIRECTORY%\Miniforge.exe /InstallationType=JustMe /RegisterPython=0 /S /D=C:\Miniforge - displayName: Install Miniforge - - - powershell: Write-Host "##vso[task.prependpath]C:\Miniforge\Scripts" - displayName: Add conda to PATH - - script: | call ".scripts\run_win_build.bat" displayName: Run Windows build env: + MINIFORGE_HOME: $(MINIFORGE_HOME) PYTHONUNBUFFERED: 1 CONFIG: $(CONFIG) CI: azure diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml similarity index 99% rename from .ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml rename to .ci_support/linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml index 623bcef5d..aff915ae6 100644 --- a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml +++ b/.ci_support/linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.28.5 +- 0.29.0 aws_sdk_cpp: - 1.11.407 azure_core_cpp: diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml similarity index 99% rename from .ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml rename to .ci_support/linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml index 54a9eabd9..d2f35a206 100644 --- a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml +++ b/.ci_support/linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.28.5 +- 0.29.0 aws_sdk_cpp: - 1.11.407 azure_core_cpp: diff --git a/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml similarity index 99% rename from .ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml rename to .ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml index 17609474e..5be5932d1 100644 --- a/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml @@ -1,7 +1,7 @@ BUILD: - aarch64-conda_cos7-linux-gnu aws_crt_cpp: -- 0.28.5 +- 0.29.0 aws_sdk_cpp: - 1.11.407 azure_core_cpp: diff --git a/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml similarity index 99% rename from .ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml rename to .ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml index ea94b1b03..16e695402 100644 --- a/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml +++ b/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml @@ -1,7 +1,7 @@ BUILD: - aarch64-conda_cos7-linux-gnu aws_crt_cpp: -- 0.28.5 +- 0.29.0 aws_sdk_cpp: - 1.11.407 azure_core_cpp: diff --git a/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml similarity index 99% rename from .ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml rename to .ci_support/linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml index 1c9d60a97..94c54b284 100644 --- a/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml +++ b/.ci_support/linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.28.5 +- 0.29.0 aws_sdk_cpp: - 1.11.407 azure_core_cpp: diff --git a/.ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml similarity index 99% rename from .ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml rename to .ci_support/linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml index 296fb280e..44b82c6ca 100644 --- a/.ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml +++ b/.ci_support/linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.28.5 +- 0.29.0 aws_sdk_cpp: - 1.11.407 azure_core_cpp: diff --git a/.ci_support/migrations/aws_crt_cpp0285.yaml b/.ci_support/migrations/aws_crt_cpp0285.yaml deleted file mode 100644 index 8e99e8d3b..000000000 --- a/.ci_support/migrations/aws_crt_cpp0285.yaml +++ /dev/null @@ -1,9 +0,0 @@ -__migrator: - build_number: 1 - commit_message: Rebuild for aws_crt_cpp 0.28.5 - kind: version - migration_number: 1 - automerge: true -aws_crt_cpp: -- 0.28.5 -migrator_ts: 1729550264.9338546 diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index e0d52345e..d892f24db 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: MACOSX_SDK_VERSION: - '10.13' aws_crt_cpp: -- 0.28.5 +- 0.29.0 aws_sdk_cpp: - 1.11.407 azure_core_cpp: @@ -28,8 +28,6 @@ channel_sources: - conda-forge channel_targets: - conda-forge main -cuda_compiler: -- None cuda_compiler_version: - None cxx_compiler: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index 9a27ac2af..1bc281014 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -3,7 +3,7 @@ MACOSX_DEPLOYMENT_TARGET: MACOSX_SDK_VERSION: - '11.0' aws_crt_cpp: -- 0.28.5 +- 0.29.0 aws_sdk_cpp: - 1.11.407 azure_core_cpp: @@ -28,8 +28,6 @@ channel_sources: - conda-forge channel_targets: - conda-forge main -cuda_compiler: -- None cuda_compiler_version: - None cxx_compiler: diff --git a/.ci_support/win_64_cuda_compilernvcccuda_compiler_version11.8.yaml b/.ci_support/win_64_cuda_compiler_version11.8.yaml similarity index 99% rename from .ci_support/win_64_cuda_compilernvcccuda_compiler_version11.8.yaml rename to .ci_support/win_64_cuda_compiler_version11.8.yaml index 3f6cf51aa..82883bf88 100644 --- a/.ci_support/win_64_cuda_compilernvcccuda_compiler_version11.8.yaml +++ b/.ci_support/win_64_cuda_compiler_version11.8.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.28.5 +- 0.29.0 aws_sdk_cpp: - 1.11.407 bzip2: diff --git a/.ci_support/win_64_cuda_compilerNonecuda_compiler_versionNone.yaml b/.ci_support/win_64_cuda_compiler_versionNone.yaml similarity index 99% rename from .ci_support/win_64_cuda_compilerNonecuda_compiler_versionNone.yaml rename to .ci_support/win_64_cuda_compiler_versionNone.yaml index 175acd0ba..1222920ba 100644 --- a/.ci_support/win_64_cuda_compilerNonecuda_compiler_versionNone.yaml +++ b/.ci_support/win_64_cuda_compiler_versionNone.yaml @@ -1,5 +1,5 @@ aws_crt_cpp: -- 0.28.5 +- 0.29.0 aws_sdk_cpp: - 1.11.407 bzip2: diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 1b73db5ff..827a29fbc 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -80,6 +80,12 @@ else command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" ( endgroup "Inspecting artifacts" ) 2> /dev/null + ( startgroup "Validating outputs" ) 2> /dev/null + + validate_recipe_outputs "${FEEDSTOCK_NAME}" + + ( endgroup "Validating outputs" ) 2> /dev/null + ( startgroup "Uploading packages" ) 2> /dev/null if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index e00e47b8c..7f948c41f 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -103,6 +103,12 @@ else command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir ./recipe -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" ( endgroup "Inspecting artifacts" ) 2> /dev/null + ( startgroup "Validating outputs" ) 2> /dev/null + + validate_recipe_outputs "${FEEDSTOCK_NAME}" + + ( endgroup "Validating outputs" ) 2> /dev/null + ( startgroup "Uploading packages" ) 2> /dev/null if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 6738fb0f2..d3c0345e5 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -3,30 +3,52 @@ :: changes to this script, consider a proposal to conda-smithy so that other feedstocks can also :: benefit from the improvement. -:: Note: we assume a Miniforge installation is available - :: INPUTS (required environment variables) :: CONFIG: name of the .ci_support/*.yaml file for this job :: CI: azure, github_actions, or unset +:: MINIFORGE_HOME: where to install the base conda environment :: UPLOAD_PACKAGES: true or false :: UPLOAD_ON_BRANCH: true or false setlocal enableextensions enabledelayedexpansion +if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" +:: Remove trailing backslash, if present +if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" +call :start_group "Provisioning base env with micromamba" +set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" +set "MICROMAMBA_VERSION=1.5.10-0" +set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" +set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" +set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" + +echo Downloading micromamba %MICROMAMBA_VERSION% +if not exist "%MICROMAMBA_TMPDIR%" mkdir "%MICROMAMBA_TMPDIR%" +certutil -urlcache -split -f "%MICROMAMBA_URL%" "%MICROMAMBA_EXE%" +if !errorlevel! neq 0 exit /b !errorlevel! + +echo Creating environment +call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ + --channel conda-forge ^ + pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" +if !errorlevel! neq 0 exit /b !errorlevel! +echo Moving pkgs cache from %MAMBA_ROOT_PREFIX% to %MINIFORGE_HOME% +move /Y "%MAMBA_ROOT_PREFIX%\pkgs" "%MINIFORGE_HOME%" +if !errorlevel! neq 0 exit /b !errorlevel! +echo Removing %MAMBA_ROOT_PREFIX% +del /S /Q "%MAMBA_ROOT_PREFIX%" +del /S /Q "%MICROMAMBA_TMPDIR%" +call :end_group + call :start_group "Configuring conda" :: Activate the base conda environment -call activate base +call "%MINIFORGE_HOME%\Scripts\activate.bat" :: Configure the solver set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" -:: Provision the necessary dependencies to build the recipe later -echo Installing dependencies -mamba.exe install pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -c conda-forge --strict-channel-priority --yes -if !errorlevel! neq 0 exit /b !errorlevel! - :: Set basic configuration echo Setting up configuration setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml @@ -85,6 +107,12 @@ if /i "%CI%" == "azure" ( set "TEMP=%UPLOAD_TEMP%" ) +:: Validate +call :start_group "Validating outputs" +validate_recipe_outputs "%FEEDSTOCK_NAME%" +if !errorlevel! neq 0 exit /b !errorlevel! +call :end_group + if /i "%UPLOAD_PACKAGES%" == "true" ( if /i "%IS_PR_BUILD%" == "false" ( call :start_group "Uploading packages" diff --git a/README.md b/README.md index 6b07f75ab..5feb90bac 100644 --- a/README.md +++ b/README.md @@ -148,45 +148,45 @@ Current build status - + - + - + - + - + - + @@ -204,17 +204,17 @@ Current build status - + - + diff --git a/conda-forge.yml b/conda-forge.yml index 6f265d547..64bfa8bd3 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -14,6 +14,7 @@ build_platform: conda_build: pkg_format: '2' conda_forge_output_validation: true +conda_install_tool: micromamba github: branch_name: main tooling_branch_name: main From 2bf0d0e46cfc59c47b8caf13ff86fcc3b3bdc687 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 28 Oct 2024 13:01:31 +0100 Subject: [PATCH 20/32] Use micromamba 2.0.2-2 --- .scripts/run_win_build.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index d3c0345e5..5ea4e3720 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -17,7 +17,7 @@ if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" call :start_group "Provisioning base env with micromamba" set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" -set "MICROMAMBA_VERSION=1.5.10-0" +set "MICROMAMBA_VERSION=2.0.2-2" set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" From c363dd68bfbd9fc46758f660e592f5f7a52f6723 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 28 Oct 2024 13:04:18 +0100 Subject: [PATCH 21/32] skip unix for now MNT: Re-rendered with conda-build 24.7.1, conda-smithy 3.43.0, and conda-forge-pinning 2024.10.27.23.07.45 --- .azure-pipelines/azure-pipelines-linux.yml | 91 -------------- .azure-pipelines/azure-pipelines-osx.yml | 40 ------ ...ler_version11.8cxx_compiler_version11.yaml | 100 --------------- ...ler_versionNonecxx_compiler_version13.yaml | 100 --------------- ...ler_version11.8cxx_compiler_version11.yaml | 104 --------------- ...ler_versionNonecxx_compiler_version13.yaml | 104 --------------- ...ler_version11.8cxx_compiler_version11.yaml | 100 --------------- ...ler_versionNonecxx_compiler_version13.yaml | 100 --------------- .ci_support/osx_64_.yaml | 93 -------------- .ci_support/osx_arm64_.yaml | 93 -------------- .scripts/build_steps.sh | 100 --------------- .scripts/run_docker_build.sh | 114 ----------------- .scripts/run_osx_build.sh | 119 ------------------ README.md | 56 --------- azure-pipelines.yml | 2 - recipe/meta.yaml | 1 + 16 files changed, 1 insertion(+), 1316 deletions(-) delete mode 100755 .azure-pipelines/azure-pipelines-linux.yml delete mode 100755 .azure-pipelines/azure-pipelines-osx.yml delete mode 100644 .ci_support/linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml delete mode 100644 .ci_support/linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml delete mode 100644 .ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml delete mode 100644 .ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml delete mode 100644 .ci_support/linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml delete mode 100644 .ci_support/linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml delete mode 100644 .ci_support/osx_64_.yaml delete mode 100644 .ci_support/osx_arm64_.yaml delete mode 100755 .scripts/build_steps.sh delete mode 100755 .scripts/run_docker_build.sh delete mode 100755 .scripts/run_osx_build.sh diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml deleted file mode 100755 index 9de2161a2..000000000 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ /dev/null @@ -1,91 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: linux - pool: - vmImage: ubuntu-latest - strategy: - matrix: - linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11: - CONFIG: linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 - linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13: - CONFIG: linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11: - CONFIG: linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 - linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13: - CONFIG: linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11: - CONFIG: linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 - linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13: - CONFIG: linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - timeoutInMinutes: 360 - variables: {} - - steps: - - script: | - sudo mkdir -p /opt/empty_dir || true - for d in \ - /opt/ghc \ - /opt/hostedtoolcache \ - /usr/lib/jvm \ - /usr/local/.ghcup \ - /usr/local/lib/android \ - /usr/local/share/powershell \ - /usr/share/dotnet \ - /usr/share/swift \ - ; do - sudo rsync --stats -a --delete /opt/empty_dir/ $d || true - done - sudo apt-get purge -y -f firefox \ - google-chrome-stable \ - microsoft-edge-stable - sudo apt-get autoremove -y >& /dev/null - sudo apt-get autoclean -y >& /dev/null - df -h - displayName: Manage disk space - - script: | - sudo fallocate -l 8GiB /swapfile || true - sudo chmod 600 /swapfile || true - sudo mkswap /swapfile || true - sudo swapon /swapfile || true - displayName: Create swap file - # configure qemu binfmt-misc running. This allows us to run docker containers - # embedded qemu-static - - script: | - docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes - ls /proc/sys/fs/binfmt_misc/ - condition: not(startsWith(variables['CONFIG'], 'linux_64')) - displayName: Configure binfmt_misc - - - script: | - export CI=azure - export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) - export remote_url=$(Build.Repository.Uri) - export sha=$(Build.SourceVersion) - export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then - export IS_PR_BUILD="True" - else - export IS_PR_BUILD="False" - fi - .scripts/run_docker_build.sh - displayName: Run docker build - env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml deleted file mode 100755 index ac0bf384e..000000000 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ /dev/null @@ -1,40 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: osx - pool: - vmImage: macOS-13 - strategy: - matrix: - osx_64_: - CONFIG: osx_64_ - UPLOAD_PACKAGES: 'True' - osx_arm64_: - CONFIG: osx_arm64_ - UPLOAD_PACKAGES: 'True' - timeoutInMinutes: 360 - variables: {} - - steps: - # TODO: Fast finish on azure pipelines? - - script: | - export CI=azure - export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) - export remote_url=$(Build.Repository.Uri) - export sha=$(Build.SourceVersion) - export OSX_FORCE_SDK_DOWNLOAD="1" - export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then - export IS_PR_BUILD="True" - else - export IS_PR_BUILD="False" - fi - ./.scripts/run_osx_build.sh - displayName: Run OSX build - env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml deleted file mode 100644 index aff915ae6..000000000 --- a/.ci_support/linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml +++ /dev/null @@ -1,100 +0,0 @@ -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '11' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- nvcc -cuda_compiler_version: -- '11.8' -cuda_compiler_version_min: -- '11.8' -cxx_compiler: -- gxx -cxx_compiler_version: -- '11' -docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.8 -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- linux-64 -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cdt_name - - cuda_compiler - - cuda_compiler_version - - docker_image -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml deleted file mode 100644 index d2f35a206..000000000 --- a/.ci_support/linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml +++ /dev/null @@ -1,100 +0,0 @@ -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- None -cuda_compiler_version: -- None -cuda_compiler_version_min: -- '11.8' -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- linux-64 -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cdt_name - - cuda_compiler - - cuda_compiler_version - - docker_image -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml deleted file mode 100644 index 5be5932d1..000000000 --- a/.ci_support/linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml +++ /dev/null @@ -1,104 +0,0 @@ -BUILD: -- aarch64-conda_cos7-linux-gnu -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '11' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_arch: -- aarch64 -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- nvcc -cuda_compiler_version: -- '11.8' -cuda_compiler_version_min: -- '11.8' -cxx_compiler: -- gxx -cxx_compiler_version: -- '11' -docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.8 -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- linux-aarch64 -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cdt_name - - cuda_compiler - - cuda_compiler_version - - docker_image -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml deleted file mode 100644 index 16e695402..000000000 --- a/.ci_support/linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml +++ /dev/null @@ -1,104 +0,0 @@ -BUILD: -- aarch64-conda_cos7-linux-gnu -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_arch: -- aarch64 -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- None -cuda_compiler_version: -- None -cuda_compiler_version_min: -- '11.8' -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- linux-aarch64 -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cdt_name - - cuda_compiler - - cuda_compiler_version - - docker_image -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml deleted file mode 100644 index 94c54b284..000000000 --- a/.ci_support/linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11.yaml +++ /dev/null @@ -1,100 +0,0 @@ -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '11' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- nvcc -cuda_compiler_version: -- '11.8' -cuda_compiler_version_min: -- '11.8' -cxx_compiler: -- gxx -cxx_compiler_version: -- '11' -docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.8 -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- linux-ppc64le -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cdt_name - - cuda_compiler - - cuda_compiler_version - - docker_image -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml deleted file mode 100644 index 44b82c6ca..000000000 --- a/.ci_support/linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13.yaml +++ /dev/null @@ -1,100 +0,0 @@ -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- None -cuda_compiler_version: -- None -cuda_compiler_version_min: -- '11.8' -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- linux-ppc64le -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cdt_name - - cuda_compiler - - cuda_compiler_version - - docker_image -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml deleted file mode 100644 index d892f24db..000000000 --- a/.ci_support/osx_64_.yaml +++ /dev/null @@ -1,93 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '10.13' -MACOSX_SDK_VERSION: -- '10.13' -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- clang -c_compiler_version: -- '18' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '10.13' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler_version: -- None -cxx_compiler: -- clangxx -cxx_compiler_version: -- '18' -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -macos_machine: -- x86_64-apple-darwin13.4.0 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- osx-64 -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml deleted file mode 100644 index 1bc281014..000000000 --- a/.ci_support/osx_arm64_.yaml +++ /dev/null @@ -1,93 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' -MACOSX_SDK_VERSION: -- '11.0' -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- clang -c_compiler_version: -- '18' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '11.0' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler_version: -- None -cxx_compiler: -- clangxx -cxx_compiler_version: -- '18' -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -macos_machine: -- arm64-apple-darwin20.0.0 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- osx-arm64 -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh deleted file mode 100755 index 827a29fbc..000000000 --- a/.scripts/build_steps.sh +++ /dev/null @@ -1,100 +0,0 @@ -#!/usr/bin/env bash - -# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here -# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent -# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also -# benefit from the improvement. - -# -*- mode: jinja-shell -*- - -set -xeuo pipefail -export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" -source ${FEEDSTOCK_ROOT}/.scripts/logging_utils.sh - - -( endgroup "Start Docker" ) 2> /dev/null - -( startgroup "Configuring conda" ) 2> /dev/null - -export PYTHONUNBUFFERED=1 -export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" -export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" -export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" - -cat >~/.condarc < /opt/conda/conda-meta/history -micromamba install --root-prefix ~/.conda --prefix /opt/conda \ - --yes --override-channels --channel conda-forge --strict-channel-priority \ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 - -# set up the condarc -setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - -source run_conda_forge_build_setup - - - -# make the build number clobber -make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - -if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${HOST_PLATFORM}" != linux-* ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" -fi - - -( endgroup "Configuring conda" ) 2> /dev/null - -if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then - cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" -fi - -if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" - - # Drop into an interactive shell - /bin/bash -else - conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ - --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" - ( startgroup "Inspecting artifacts" ) 2> /dev/null - - # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" - - ( endgroup "Inspecting artifacts" ) 2> /dev/null - ( startgroup "Validating outputs" ) 2> /dev/null - - validate_recipe_outputs "${FEEDSTOCK_NAME}" - - ( endgroup "Validating outputs" ) 2> /dev/null - - ( startgroup "Uploading packages" ) 2> /dev/null - - if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then - upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - fi - - ( endgroup "Uploading packages" ) 2> /dev/null -fi - -( startgroup "Final checks" ) 2> /dev/null - -touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" \ No newline at end of file diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh deleted file mode 100755 index 00f377a80..000000000 --- a/.scripts/run_docker_build.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env bash - -# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here -# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent -# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also -# benefit from the improvement. - -source .scripts/logging_utils.sh - -( startgroup "Configure Docker" ) 2> /dev/null - -set -xeo pipefail - -THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" -PROVIDER_DIR="$(basename $THISDIR)" - -FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" -RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" - -if [ -z ${FEEDSTOCK_NAME} ]; then - export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) -fi - -if [[ "${sha:-}" == "" ]]; then - pushd "${FEEDSTOCK_ROOT}" - sha=$(git rev-parse HEAD) - popd -fi - -docker info - -# In order for the conda-build process in the container to write to the mounted -# volumes, we need to run with the same id as the host machine, which is -# normally the owner of the mounted volumes, or at least has write permission -export HOST_USER_ID=$(id -u) -# Check if docker-machine is being used (normally on OSX) and get the uid from -# the VM -if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then - export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) -fi - -ARTIFACTS="$FEEDSTOCK_ROOT/build_artifacts" - -if [ -z "$CONFIG" ]; then - set +x - FILES=`ls .ci_support/linux_*` - CONFIGS="" - for file in $FILES; do - CONFIGS="${CONFIGS}'${file:12:-5}' or "; - done - echo "Need to set CONFIG env variable. Value can be one of ${CONFIGS:0:-4}" - exit 1 -fi - -if [ -z "${DOCKER_IMAGE}" ]; then - SHYAML_INSTALLED="$(shyaml -h || echo NO)" - if [ "${SHYAML_INSTALLED}" == "NO" ]; then - echo "WARNING: DOCKER_IMAGE variable not set and shyaml not installed. Trying to parse with coreutils" - DOCKER_IMAGE=$(cat .ci_support/${CONFIG}.yaml | grep '^docker_image:$' -A 1 | tail -n 1 | cut -b 3-) - if [ "${DOCKER_IMAGE}" = "" ]; then - echo "No docker_image entry found in ${CONFIG}. Falling back to quay.io/condaforge/linux-anvil-comp7" - DOCKER_IMAGE="quay.io/condaforge/linux-anvil-comp7" - fi - else - DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 quay.io/condaforge/linux-anvil-comp7 )" - fi -fi - -mkdir -p "$ARTIFACTS" -DONE_CANARY="$ARTIFACTS/conda-forge-build-done-${CONFIG}" -rm -f "$DONE_CANARY" - -# Allow people to specify extra default arguments to `docker run` (e.g. `--rm`) -DOCKER_RUN_ARGS="${CONDA_FORGE_DOCKER_RUN_ARGS}" -if [ -z "${CI}" ]; then - DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" -fi - -( endgroup "Configure Docker" ) 2> /dev/null - -( startgroup "Start Docker" ) 2> /dev/null - -export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" -export IS_PR_BUILD="${IS_PR_BUILD:-False}" -docker pull "${DOCKER_IMAGE}" -docker run ${DOCKER_RUN_ARGS} \ - -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ - -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ - -e CONFIG \ - -e HOST_USER_ID \ - -e UPLOAD_PACKAGES \ - -e IS_PR_BUILD \ - -e GIT_BRANCH \ - -e UPLOAD_ON_BRANCH \ - -e CI \ - -e FEEDSTOCK_NAME \ - -e CPU_COUNT \ - -e BUILD_WITH_CONDA_DEBUG \ - -e BUILD_OUTPUT_ID \ - -e flow_run_id \ - -e remote_url \ - -e sha \ - -e BINSTAR_TOKEN \ - -e FEEDSTOCK_TOKEN \ - -e STAGING_BINSTAR_TOKEN \ - "${DOCKER_IMAGE}" \ - bash \ - "/home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh" - -# verify that the end of the script was reached -test -f "$DONE_CANARY" - -# This closes the last group opened in `build_steps.sh` -( endgroup "Final checks" ) 2> /dev/null \ No newline at end of file diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh deleted file mode 100755 index 7f948c41f..000000000 --- a/.scripts/run_osx_build.sh +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env bash - -# -*- mode: jinja-shell -*- - -source .scripts/logging_utils.sh - -set -xe - -MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3} -MINIFORGE_HOME=${MINIFORGE_HOME%/} # remove trailing slash - -( startgroup "Provisioning base env with micromamba" ) 2> /dev/null -MICROMAMBA_VERSION="1.5.10-0" -if [[ "$(uname -m)" == "arm64" ]]; then - osx_arch="osx-arm64" -else - osx_arch="osx-64" -fi -MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}" -MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)" -echo "Downloading micromamba ${MICROMAMBA_VERSION}" -micromamba_exe="$(mktemp -d)/micromamba" -curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}" -chmod +x "${micromamba_exe}" -echo "Creating environment" -"${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ - --channel conda-forge \ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" -mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" -echo "Cleaning up micromamba" -rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true -( endgroup "Provisioning base env with micromamba" ) 2> /dev/null - -( startgroup "Configuring conda" ) 2> /dev/null - -source "${MINIFORGE_HOME}/etc/profile.d/conda.sh" -conda activate base -export CONDA_SOLVER="libmamba" -export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 - - - - - -echo -e "\n\nSetting up the condarc and mangling the compiler." -setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml - -if [[ "${CI:-}" != "" ]]; then - mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml -fi - -if [[ "${CI:-}" != "" ]]; then - echo -e "\n\nMangling homebrew in the CI to avoid conflicts." - /usr/bin/sudo mangle_homebrew - /usr/bin/sudo -k -else - echo -e "\n\nNot mangling homebrew as we are not running in CI" -fi - -if [[ "${sha:-}" == "" ]]; then - sha=$(git rev-parse HEAD) -fi - -echo -e "\n\nRunning the build setup script." -source run_conda_forge_build_setup - - - -( endgroup "Configuring conda" ) 2> /dev/null - -echo -e "\n\nMaking the build clobber file" -make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml - -if [[ -f LICENSE.txt ]]; then - cp LICENSE.txt "recipe/recipe-scripts-license.txt" -fi - -if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug ./recipe -m ./.ci_support/${CONFIG}.yaml \ - ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml - - # Drop into an interactive shell - /bin/bash -else - - if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" - fi - - conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ - --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" - - ( startgroup "Inspecting artifacts" ) 2> /dev/null - - # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir ./recipe -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" - - ( endgroup "Inspecting artifacts" ) 2> /dev/null - ( startgroup "Validating outputs" ) 2> /dev/null - - validate_recipe_outputs "${FEEDSTOCK_NAME}" - - ( endgroup "Validating outputs" ) 2> /dev/null - - ( startgroup "Uploading packages" ) 2> /dev/null - - if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then - upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml - fi - - ( endgroup "Uploading packages" ) 2> /dev/null -fi \ No newline at end of file diff --git a/README.md b/README.md index 5feb90bac..93f9f07a3 100644 --- a/README.md +++ b/README.md @@ -148,62 +148,6 @@ Current build status
VariantStatus
linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11 - variant + variant
linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13 - variant + variant
linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11 - variant + variant
linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13 - variant + variant
linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11 - variant + variant
linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13 - variant + variant
win_64_cuda_compilerNonecuda_compiler_versionNonewin_64_cuda_compiler_version11.8 - variant + variant
win_64_cuda_compilernvcccuda_compiler_version11.8win_64_cuda_compiler_versionNone - variant + variant
- - - - - - - - - - - - - - - - - - - - - - - -
VariantStatus
linux_64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11 - - variant - -
linux_64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13 - - variant - -
linux_aarch64_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11 - - variant - -
linux_aarch64_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13 - - variant - -
linux_ppc64le_c_compiler_version11cuda_compiler_version11.8cxx_compiler_version11 - - variant - -
linux_ppc64le_c_compiler_version13cuda_compiler_versionNonecxx_compiler_version13 - - variant - -
osx_64 - - variant - -
osx_arm64 - - variant - -
win_64_cuda_compiler_version11.8 diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 32da3d0c0..d54fe696a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -28,6 +28,4 @@ stages: condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) dependsOn: Check jobs: - - template: ./.azure-pipelines/azure-pipelines-linux.yml - - template: ./.azure-pipelines/azure-pipelines-osx.yml - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file diff --git a/recipe/meta.yaml b/recipe/meta.yaml index bc89af4e2..0d8a3f4e3 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -34,6 +34,7 @@ build: # for cuda support, building with one version is enough to be compatible with # all later versions, since arrow is only using libcuda, and not libcudart. skip: true # [cuda_compiler_version not in ("None", cuda_compiler_version_min)] + skip: true # [unix] requirements: build: From 4667b6b359713cf96cf30abae2e75fbb078a488b Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 28 Oct 2024 16:10:36 +0100 Subject: [PATCH 22/32] set GIT_SSL_NO_VERIFY=true --- .scripts/run_win_build.bat | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 5ea4e3720..500cdcc48 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -49,6 +49,9 @@ set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" +:: Workaround for openssl errors with git when using micromamba v2+ +set "GIT_SSL_NO_VERIFY=true" + :: Set basic configuration echo Setting up configuration setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml From 4217105a588eb384e99d82c98c2f24e6251a4953 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 28 Oct 2024 16:50:54 +0100 Subject: [PATCH 23/32] use C: MNT: Re-rendered with conda-build 24.7.1, conda-smithy 3.43.0, and conda-forge-pinning 2024.10.27.23.07.45 --- .azure-pipelines/azure-pipelines-win.yml | 10 ++++++---- ...64_cuda_compilerNonecuda_compiler_versionNone.yaml} | 0 ...64_cuda_compilernvcccuda_compiler_version11.8.yaml} | 0 .scripts/run_win_build.bat | 5 +---- README.md | 8 ++++---- conda-forge.yml | 3 +++ 6 files changed, 14 insertions(+), 12 deletions(-) rename .ci_support/{win_64_cuda_compiler_versionNone.yaml => win_64_cuda_compilerNonecuda_compiler_versionNone.yaml} (100%) rename .ci_support/{win_64_cuda_compiler_version11.8.yaml => win_64_cuda_compilernvcccuda_compiler_version11.8.yaml} (100%) diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 8061a4806..3b9988a51 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -4,15 +4,17 @@ jobs: - job: win + CONDA_BLD_PATH: C:\bld\ + MINIFORGE_HOME: C:\miniforge\ pool: vmImage: windows-2022 strategy: matrix: - win_64_cuda_compiler_version11.8: - CONFIG: win_64_cuda_compiler_version11.8 + win_64_cuda_compilerNonecuda_compiler_versionNone: + CONFIG: win_64_cuda_compilerNonecuda_compiler_versionNone UPLOAD_PACKAGES: 'True' - win_64_cuda_compiler_versionNone: - CONFIG: win_64_cuda_compiler_versionNone + win_64_cuda_compilernvcccuda_compiler_version11.8: + CONFIG: win_64_cuda_compilernvcccuda_compiler_version11.8 UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: diff --git a/.ci_support/win_64_cuda_compiler_versionNone.yaml b/.ci_support/win_64_cuda_compilerNonecuda_compiler_versionNone.yaml similarity index 100% rename from .ci_support/win_64_cuda_compiler_versionNone.yaml rename to .ci_support/win_64_cuda_compilerNonecuda_compiler_versionNone.yaml diff --git a/.ci_support/win_64_cuda_compiler_version11.8.yaml b/.ci_support/win_64_cuda_compilernvcccuda_compiler_version11.8.yaml similarity index 100% rename from .ci_support/win_64_cuda_compiler_version11.8.yaml rename to .ci_support/win_64_cuda_compilernvcccuda_compiler_version11.8.yaml diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 500cdcc48..d3c0345e5 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -17,7 +17,7 @@ if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" call :start_group "Provisioning base env with micromamba" set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" -set "MICROMAMBA_VERSION=2.0.2-2" +set "MICROMAMBA_VERSION=1.5.10-0" set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" @@ -49,9 +49,6 @@ set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" -:: Workaround for openssl errors with git when using micromamba v2+ -set "GIT_SSL_NO_VERIFY=true" - :: Set basic configuration echo Setting up configuration setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml diff --git a/README.md b/README.md index 93f9f07a3..916e46bed 100644 --- a/README.md +++ b/README.md @@ -148,17 +148,17 @@ Current build status - + - + diff --git a/conda-forge.yml b/conda-forge.yml index 64bfa8bd3..900e14672 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -2,6 +2,9 @@ azure: free_disk_space: true settings_linux: swapfile_size: 8GiB + settings_win: + CONDA_BLD_PATH: C:\bld\ + MINIFORGE_HOME: C:\miniforge\ bot: abi_migration_branches: - 16.x From 9555ad3601dc2ce37640e067588830dcf013896b Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 28 Oct 2024 16:54:15 +0100 Subject: [PATCH 24/32] set GIT_SSL_NO_VERIFY again --- .scripts/run_win_build.bat | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index d3c0345e5..65952ff83 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -49,6 +49,9 @@ set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" +:: Workaround for openssl errors with git when using micromamba v2+ +set "GIT_SSL_NO_VERIFY=true" + :: Set basic configuration echo Setting up configuration setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml From 13dc18c72f0fd1dbb708347f1dee2f1f96cc6255 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 29 Oct 2024 09:21:19 +1100 Subject: [PATCH 25/32] DEBUG: disable output validation --- conda-forge.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/conda-forge.yml b/conda-forge.yml index 439c86e5c..59f3d9aa4 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -17,7 +17,8 @@ build_platform: osx_arm64: osx_64 conda_build: pkg_format: '2' -conda_forge_output_validation: true +# debug only! +conda_forge_output_validation: false conda_install_tool: micromamba github: branch_name: main From 8b71767c7ccf7b3132388f1f5ff783608c3a4844 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 29 Oct 2024 09:41:29 +1100 Subject: [PATCH 26/32] MNT: Re-rendered with conda-build 24.9.0, conda-smithy 3.43.0, and conda-forge-pinning 2024.10.27.23.07.45 --- .azure-pipelines/azure-pipelines-linux.yml | 89 ++++++++++++++ .azure-pipelines/azure-pipelines-osx.yml | 38 ++++++ .azure-pipelines/azure-pipelines-win.yml | 4 +- ...ler_version11.8cxx_compiler_version11.yaml | 100 +++++++++++++++ ...ler_versionNonecxx_compiler_version13.yaml | 100 +++++++++++++++ ...ler_version11.8cxx_compiler_version11.yaml | 104 ++++++++++++++++ ...ler_versionNonecxx_compiler_version13.yaml | 104 ++++++++++++++++ ...ler_version11.8cxx_compiler_version11.yaml | 100 +++++++++++++++ ...ler_versionNonecxx_compiler_version13.yaml | 100 +++++++++++++++ .ci_support/osx_64_.yaml | 95 +++++++++++++++ .ci_support/osx_arm64_.yaml | 95 +++++++++++++++ .scripts/build_steps.sh | 95 +++++++++++++++ .scripts/run_docker_build.sh | 112 +++++++++++++++++ .scripts/run_osx_build.sh | 114 ++++++++++++++++++ .scripts/run_win_build.bat | 9 +- README.md | 56 +++++++++ azure-pipelines.yml | 2 + 17 files changed, 1306 insertions(+), 11 deletions(-) create mode 100755 .azure-pipelines/azure-pipelines-linux.yml create mode 100755 .azure-pipelines/azure-pipelines-osx.yml create mode 100644 .ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml create mode 100644 .ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml create mode 100644 .ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml create mode 100644 .ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml create mode 100644 .ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml create mode 100644 .ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml create mode 100644 .ci_support/osx_64_.yaml create mode 100644 .ci_support/osx_arm64_.yaml create mode 100755 .scripts/build_steps.sh create mode 100755 .scripts/run_docker_build.sh create mode 100755 .scripts/run_osx_build.sh diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml new file mode 100755 index 000000000..6bd8a8257 --- /dev/null +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -0,0 +1,89 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +jobs: +- job: linux + pool: + vmImage: ubuntu-latest + strategy: + matrix: + linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11: + CONFIG: linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 + linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13: + CONFIG: linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11: + CONFIG: linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 + linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13: + CONFIG: linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11: + CONFIG: linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 + linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13: + CONFIG: linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 + UPLOAD_PACKAGES: 'True' + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + timeoutInMinutes: 360 + variables: {} + + steps: + - script: | + sudo mkdir -p /opt/empty_dir || true + for d in \ + /opt/ghc \ + /opt/hostedtoolcache \ + /usr/lib/jvm \ + /usr/local/.ghcup \ + /usr/local/lib/android \ + /usr/local/share/powershell \ + /usr/share/dotnet \ + /usr/share/swift \ + ; do + sudo rsync --stats -a --delete /opt/empty_dir/ $d || true + done + sudo apt-get purge -y -f firefox \ + google-chrome-stable \ + microsoft-edge-stable + sudo apt-get autoremove -y >& /dev/null + sudo apt-get autoclean -y >& /dev/null + df -h + displayName: Manage disk space + - script: | + sudo fallocate -l 8GiB /swapfile || true + sudo chmod 600 /swapfile || true + sudo mkswap /swapfile || true + sudo swapon /swapfile || true + displayName: Create swap file + # configure qemu binfmt-misc running. This allows us to run docker containers + # embedded qemu-static + - script: | + docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes + ls /proc/sys/fs/binfmt_misc/ + condition: not(startsWith(variables['CONFIG'], 'linux_64')) + displayName: Configure binfmt_misc + + - script: | + export CI=azure + export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) + export remote_url=$(Build.Repository.Uri) + export sha=$(Build.SourceVersion) + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then + export IS_PR_BUILD="True" + else + export IS_PR_BUILD="False" + fi + .scripts/run_docker_build.sh + displayName: Run docker build + env: + BINSTAR_TOKEN: $(BINSTAR_TOKEN) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml new file mode 100755 index 000000000..413faed88 --- /dev/null +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -0,0 +1,38 @@ +# This file was generated automatically from conda-smithy. To update this configuration, +# update the conda-forge.yml and/or the recipe/meta.yaml. +# -*- mode: yaml -*- + +jobs: +- job: osx + pool: + vmImage: macOS-13 + strategy: + matrix: + osx_64_: + CONFIG: osx_64_ + UPLOAD_PACKAGES: 'True' + osx_arm64_: + CONFIG: osx_arm64_ + UPLOAD_PACKAGES: 'True' + timeoutInMinutes: 360 + variables: {} + + steps: + # TODO: Fast finish on azure pipelines? + - script: | + export CI=azure + export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) + export remote_url=$(Build.Repository.Uri) + export sha=$(Build.SourceVersion) + export OSX_FORCE_SDK_DOWNLOAD="1" + export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then + export IS_PR_BUILD="True" + else + export IS_PR_BUILD="False" + fi + ./.scripts/run_osx_build.sh + displayName: Run OSX build + env: + BINSTAR_TOKEN: $(BINSTAR_TOKEN) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 3b9988a51..517c0b090 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -37,6 +37,4 @@ jobs: sha: $(Build.SourceVersion) UPLOAD_PACKAGES: $(UPLOAD_PACKAGES) UPLOAD_TEMP: $(UPLOAD_TEMP) - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file + BINSTAR_TOKEN: $(BINSTAR_TOKEN) \ No newline at end of file diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml new file mode 100644 index 000000000..aff915ae6 --- /dev/null +++ b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml @@ -0,0 +1,100 @@ +aws_crt_cpp: +- 0.29.0 +aws_sdk_cpp: +- 1.11.407 +azure_core_cpp: +- 1.14.0 +azure_identity_cpp: +- 1.10.0 +azure_storage_blobs_cpp: +- 12.13.0 +azure_storage_files_datalake_cpp: +- 12.12.0 +bzip2: +- '1' +c_compiler: +- gcc +c_compiler_version: +- '11' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- nvcc +cuda_compiler_version: +- '11.8' +cuda_compiler_version_min: +- '11.8' +cxx_compiler: +- gxx +cxx_compiler_version: +- '11' +docker_image: +- quay.io/condaforge/linux-anvil-cuda:11.8 +gflags: +- '2.2' +glog: +- '0.7' +libabseil: +- '20240722' +libboost_headers: +- '1.86' +libgoogle_cloud_devel: +- '2.30' +libgoogle_cloud_storage_devel: +- '2.30' +libgrpc: +- '1.65' +libprotobuf: +- 5.27.5 +lz4_c: +- 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' +openssl: +- '3' +orc: +- 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython +re2: +- 2024.07.02 +snappy: +- '1.2' +target_platform: +- linux-64 +thrift_cpp: +- 0.21.0 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - c_stdlib_version + - cdt_name + - cuda_compiler + - cuda_compiler_version + - docker_image +- - python + - numpy +zlib: +- '1' +zstd: +- '1.5' diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml new file mode 100644 index 000000000..d2f35a206 --- /dev/null +++ b/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml @@ -0,0 +1,100 @@ +aws_crt_cpp: +- 0.29.0 +aws_sdk_cpp: +- 1.11.407 +azure_core_cpp: +- 1.14.0 +azure_identity_cpp: +- 1.10.0 +azure_storage_blobs_cpp: +- 12.13.0 +azure_storage_files_datalake_cpp: +- 12.12.0 +bzip2: +- '1' +c_compiler: +- gcc +c_compiler_version: +- '13' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- None +cuda_compiler_version: +- None +cuda_compiler_version_min: +- '11.8' +cxx_compiler: +- gxx +cxx_compiler_version: +- '13' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +gflags: +- '2.2' +glog: +- '0.7' +libabseil: +- '20240722' +libboost_headers: +- '1.86' +libgoogle_cloud_devel: +- '2.30' +libgoogle_cloud_storage_devel: +- '2.30' +libgrpc: +- '1.65' +libprotobuf: +- 5.27.5 +lz4_c: +- 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' +openssl: +- '3' +orc: +- 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython +re2: +- 2024.07.02 +snappy: +- '1.2' +target_platform: +- linux-64 +thrift_cpp: +- 0.21.0 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - c_stdlib_version + - cdt_name + - cuda_compiler + - cuda_compiler_version + - docker_image +- - python + - numpy +zlib: +- '1' +zstd: +- '1.5' diff --git a/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml new file mode 100644 index 000000000..5be5932d1 --- /dev/null +++ b/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml @@ -0,0 +1,104 @@ +BUILD: +- aarch64-conda_cos7-linux-gnu +aws_crt_cpp: +- 0.29.0 +aws_sdk_cpp: +- 1.11.407 +azure_core_cpp: +- 1.14.0 +azure_identity_cpp: +- 1.10.0 +azure_storage_blobs_cpp: +- 12.13.0 +azure_storage_files_datalake_cpp: +- 12.12.0 +bzip2: +- '1' +c_compiler: +- gcc +c_compiler_version: +- '11' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_arch: +- aarch64 +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- nvcc +cuda_compiler_version: +- '11.8' +cuda_compiler_version_min: +- '11.8' +cxx_compiler: +- gxx +cxx_compiler_version: +- '11' +docker_image: +- quay.io/condaforge/linux-anvil-cuda:11.8 +gflags: +- '2.2' +glog: +- '0.7' +libabseil: +- '20240722' +libboost_headers: +- '1.86' +libgoogle_cloud_devel: +- '2.30' +libgoogle_cloud_storage_devel: +- '2.30' +libgrpc: +- '1.65' +libprotobuf: +- 5.27.5 +lz4_c: +- 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' +openssl: +- '3' +orc: +- 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython +re2: +- 2024.07.02 +snappy: +- '1.2' +target_platform: +- linux-aarch64 +thrift_cpp: +- 0.21.0 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - c_stdlib_version + - cdt_name + - cuda_compiler + - cuda_compiler_version + - docker_image +- - python + - numpy +zlib: +- '1' +zstd: +- '1.5' diff --git a/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml new file mode 100644 index 000000000..16e695402 --- /dev/null +++ b/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml @@ -0,0 +1,104 @@ +BUILD: +- aarch64-conda_cos7-linux-gnu +aws_crt_cpp: +- 0.29.0 +aws_sdk_cpp: +- 1.11.407 +azure_core_cpp: +- 1.14.0 +azure_identity_cpp: +- 1.10.0 +azure_storage_blobs_cpp: +- 12.13.0 +azure_storage_files_datalake_cpp: +- 12.12.0 +bzip2: +- '1' +c_compiler: +- gcc +c_compiler_version: +- '13' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_arch: +- aarch64 +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- None +cuda_compiler_version: +- None +cuda_compiler_version_min: +- '11.8' +cxx_compiler: +- gxx +cxx_compiler_version: +- '13' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +gflags: +- '2.2' +glog: +- '0.7' +libabseil: +- '20240722' +libboost_headers: +- '1.86' +libgoogle_cloud_devel: +- '2.30' +libgoogle_cloud_storage_devel: +- '2.30' +libgrpc: +- '1.65' +libprotobuf: +- 5.27.5 +lz4_c: +- 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' +openssl: +- '3' +orc: +- 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython +re2: +- 2024.07.02 +snappy: +- '1.2' +target_platform: +- linux-aarch64 +thrift_cpp: +- 0.21.0 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - c_stdlib_version + - cdt_name + - cuda_compiler + - cuda_compiler_version + - docker_image +- - python + - numpy +zlib: +- '1' +zstd: +- '1.5' diff --git a/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml new file mode 100644 index 000000000..94c54b284 --- /dev/null +++ b/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml @@ -0,0 +1,100 @@ +aws_crt_cpp: +- 0.29.0 +aws_sdk_cpp: +- 1.11.407 +azure_core_cpp: +- 1.14.0 +azure_identity_cpp: +- 1.10.0 +azure_storage_blobs_cpp: +- 12.13.0 +azure_storage_files_datalake_cpp: +- 12.12.0 +bzip2: +- '1' +c_compiler: +- gcc +c_compiler_version: +- '11' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- nvcc +cuda_compiler_version: +- '11.8' +cuda_compiler_version_min: +- '11.8' +cxx_compiler: +- gxx +cxx_compiler_version: +- '11' +docker_image: +- quay.io/condaforge/linux-anvil-cuda:11.8 +gflags: +- '2.2' +glog: +- '0.7' +libabseil: +- '20240722' +libboost_headers: +- '1.86' +libgoogle_cloud_devel: +- '2.30' +libgoogle_cloud_storage_devel: +- '2.30' +libgrpc: +- '1.65' +libprotobuf: +- 5.27.5 +lz4_c: +- 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' +openssl: +- '3' +orc: +- 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython +re2: +- 2024.07.02 +snappy: +- '1.2' +target_platform: +- linux-ppc64le +thrift_cpp: +- 0.21.0 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - c_stdlib_version + - cdt_name + - cuda_compiler + - cuda_compiler_version + - docker_image +- - python + - numpy +zlib: +- '1' +zstd: +- '1.5' diff --git a/.ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml new file mode 100644 index 000000000..44b82c6ca --- /dev/null +++ b/.ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml @@ -0,0 +1,100 @@ +aws_crt_cpp: +- 0.29.0 +aws_sdk_cpp: +- 1.11.407 +azure_core_cpp: +- 1.14.0 +azure_identity_cpp: +- 1.10.0 +azure_storage_blobs_cpp: +- 12.13.0 +azure_storage_files_datalake_cpp: +- 12.12.0 +bzip2: +- '1' +c_compiler: +- gcc +c_compiler_version: +- '13' +c_stdlib: +- sysroot +c_stdlib_version: +- '2.17' +cdt_name: +- cos7 +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- None +cuda_compiler_version: +- None +cuda_compiler_version_min: +- '11.8' +cxx_compiler: +- gxx +cxx_compiler_version: +- '13' +docker_image: +- quay.io/condaforge/linux-anvil-cos7-x86_64 +gflags: +- '2.2' +glog: +- '0.7' +libabseil: +- '20240722' +libboost_headers: +- '1.86' +libgoogle_cloud_devel: +- '2.30' +libgoogle_cloud_storage_devel: +- '2.30' +libgrpc: +- '1.65' +libprotobuf: +- 5.27.5 +lz4_c: +- 1.9.3 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' +openssl: +- '3' +orc: +- 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython +re2: +- 2024.07.02 +snappy: +- '1.2' +target_platform: +- linux-ppc64le +thrift_cpp: +- 0.21.0 +zip_keys: +- - c_compiler_version + - cxx_compiler_version + - c_stdlib_version + - cdt_name + - cuda_compiler + - cuda_compiler_version + - docker_image +- - python + - numpy +zlib: +- '1' +zstd: +- '1.5' diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml new file mode 100644 index 000000000..49f6f36d2 --- /dev/null +++ b/.ci_support/osx_64_.yaml @@ -0,0 +1,95 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.13' +MACOSX_SDK_VERSION: +- '10.13' +aws_crt_cpp: +- 0.29.0 +aws_sdk_cpp: +- 1.11.407 +azure_core_cpp: +- 1.14.0 +azure_identity_cpp: +- 1.10.0 +azure_storage_blobs_cpp: +- 12.13.0 +azure_storage_files_datalake_cpp: +- 12.12.0 +bzip2: +- '1' +c_compiler: +- clang +c_compiler_version: +- '18' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '10.13' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- None +cuda_compiler_version: +- None +cxx_compiler: +- clangxx +cxx_compiler_version: +- '18' +gflags: +- '2.2' +glog: +- '0.7' +libabseil: +- '20240722' +libboost_headers: +- '1.86' +libgoogle_cloud_devel: +- '2.30' +libgoogle_cloud_storage_devel: +- '2.30' +libgrpc: +- '1.65' +libprotobuf: +- 5.27.5 +lz4_c: +- 1.9.3 +macos_machine: +- x86_64-apple-darwin13.4.0 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' +openssl: +- '3' +orc: +- 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython +re2: +- 2024.07.02 +snappy: +- '1.2' +target_platform: +- osx-64 +thrift_cpp: +- 0.21.0 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - python + - numpy +zlib: +- '1' +zstd: +- '1.5' diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml new file mode 100644 index 000000000..2e4ca26ea --- /dev/null +++ b/.ci_support/osx_arm64_.yaml @@ -0,0 +1,95 @@ +MACOSX_DEPLOYMENT_TARGET: +- '11.0' +MACOSX_SDK_VERSION: +- '11.0' +aws_crt_cpp: +- 0.29.0 +aws_sdk_cpp: +- 1.11.407 +azure_core_cpp: +- 1.14.0 +azure_identity_cpp: +- 1.10.0 +azure_storage_blobs_cpp: +- 12.13.0 +azure_storage_files_datalake_cpp: +- 12.12.0 +bzip2: +- '1' +c_compiler: +- clang +c_compiler_version: +- '18' +c_stdlib: +- macosx_deployment_target +c_stdlib_version: +- '11.0' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cuda_compiler: +- None +cuda_compiler_version: +- None +cxx_compiler: +- clangxx +cxx_compiler_version: +- '18' +gflags: +- '2.2' +glog: +- '0.7' +libabseil: +- '20240722' +libboost_headers: +- '1.86' +libgoogle_cloud_devel: +- '2.30' +libgoogle_cloud_storage_devel: +- '2.30' +libgrpc: +- '1.65' +libprotobuf: +- 5.27.5 +lz4_c: +- 1.9.3 +macos_machine: +- arm64-apple-darwin20.0.0 +numpy: +- '2.0' +- '2.0' +- '2.0' +- '2' +- '2.0' +openssl: +- '3' +orc: +- 2.0.2 +pin_run_as_build: + python: + min_pin: x.x + max_pin: x.x +python: +- 3.10.* *_cpython +- 3.11.* *_cpython +- 3.12.* *_cpython +- 3.13.* *_cp313 +- 3.9.* *_cpython +re2: +- 2024.07.02 +snappy: +- '1.2' +target_platform: +- osx-arm64 +thrift_cpp: +- 0.21.0 +zip_keys: +- - c_compiler_version + - cxx_compiler_version +- - python + - numpy +zlib: +- '1' +zstd: +- '1.5' diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh new file mode 100755 index 000000000..352d0523e --- /dev/null +++ b/.scripts/build_steps.sh @@ -0,0 +1,95 @@ +#!/usr/bin/env bash + +# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here +# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent +# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also +# benefit from the improvement. + +# -*- mode: jinja-shell -*- + +set -xeuo pipefail +export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" +source ${FEEDSTOCK_ROOT}/.scripts/logging_utils.sh + + +( endgroup "Start Docker" ) 2> /dev/null + +( startgroup "Configuring conda" ) 2> /dev/null + +export PYTHONUNBUFFERED=1 +export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" +export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" +export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" + +cat >~/.condarc < /opt/conda/conda-meta/history +micromamba install --root-prefix ~/.conda --prefix /opt/conda \ + --yes --override-channels --channel conda-forge --strict-channel-priority \ + pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" +export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 + +# set up the condarc +setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" + +source run_conda_forge_build_setup + + + +# make the build number clobber +make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" + +if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${HOST_PLATFORM}" != linux-* ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" +fi + + +( endgroup "Configuring conda" ) 2> /dev/null + +if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then + cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" +fi + +if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then + if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" + fi + conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + ${EXTRA_CB_OPTIONS:-} \ + --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" + + # Drop into an interactive shell + /bin/bash +else + conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + --suppress-variables ${EXTRA_CB_OPTIONS:-} \ + --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ + --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" + ( startgroup "Inspecting artifacts" ) 2> /dev/null + + # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null + + ( startgroup "Uploading packages" ) 2> /dev/null + + if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then + upload_package "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" + fi + + ( endgroup "Uploading packages" ) 2> /dev/null +fi + +( startgroup "Final checks" ) 2> /dev/null + +touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" \ No newline at end of file diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh new file mode 100755 index 000000000..a16e7e794 --- /dev/null +++ b/.scripts/run_docker_build.sh @@ -0,0 +1,112 @@ +#!/usr/bin/env bash + +# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here +# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent +# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also +# benefit from the improvement. + +source .scripts/logging_utils.sh + +( startgroup "Configure Docker" ) 2> /dev/null + +set -xeo pipefail + +THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" +PROVIDER_DIR="$(basename $THISDIR)" + +FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" +RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" + +if [ -z ${FEEDSTOCK_NAME} ]; then + export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) +fi + +if [[ "${sha:-}" == "" ]]; then + pushd "${FEEDSTOCK_ROOT}" + sha=$(git rev-parse HEAD) + popd +fi + +docker info + +# In order for the conda-build process in the container to write to the mounted +# volumes, we need to run with the same id as the host machine, which is +# normally the owner of the mounted volumes, or at least has write permission +export HOST_USER_ID=$(id -u) +# Check if docker-machine is being used (normally on OSX) and get the uid from +# the VM +if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then + export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) +fi + +ARTIFACTS="$FEEDSTOCK_ROOT/build_artifacts" + +if [ -z "$CONFIG" ]; then + set +x + FILES=`ls .ci_support/linux_*` + CONFIGS="" + for file in $FILES; do + CONFIGS="${CONFIGS}'${file:12:-5}' or "; + done + echo "Need to set CONFIG env variable. Value can be one of ${CONFIGS:0:-4}" + exit 1 +fi + +if [ -z "${DOCKER_IMAGE}" ]; then + SHYAML_INSTALLED="$(shyaml -h || echo NO)" + if [ "${SHYAML_INSTALLED}" == "NO" ]; then + echo "WARNING: DOCKER_IMAGE variable not set and shyaml not installed. Trying to parse with coreutils" + DOCKER_IMAGE=$(cat .ci_support/${CONFIG}.yaml | grep '^docker_image:$' -A 1 | tail -n 1 | cut -b 3-) + if [ "${DOCKER_IMAGE}" = "" ]; then + echo "No docker_image entry found in ${CONFIG}. Falling back to quay.io/condaforge/linux-anvil-comp7" + DOCKER_IMAGE="quay.io/condaforge/linux-anvil-comp7" + fi + else + DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 quay.io/condaforge/linux-anvil-comp7 )" + fi +fi + +mkdir -p "$ARTIFACTS" +DONE_CANARY="$ARTIFACTS/conda-forge-build-done-${CONFIG}" +rm -f "$DONE_CANARY" + +# Allow people to specify extra default arguments to `docker run` (e.g. `--rm`) +DOCKER_RUN_ARGS="${CONDA_FORGE_DOCKER_RUN_ARGS}" +if [ -z "${CI}" ]; then + DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" +fi + +( endgroup "Configure Docker" ) 2> /dev/null + +( startgroup "Start Docker" ) 2> /dev/null + +export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" +export IS_PR_BUILD="${IS_PR_BUILD:-False}" +docker pull "${DOCKER_IMAGE}" +docker run ${DOCKER_RUN_ARGS} \ + -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ + -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ + -e CONFIG \ + -e HOST_USER_ID \ + -e UPLOAD_PACKAGES \ + -e IS_PR_BUILD \ + -e GIT_BRANCH \ + -e UPLOAD_ON_BRANCH \ + -e CI \ + -e FEEDSTOCK_NAME \ + -e CPU_COUNT \ + -e BUILD_WITH_CONDA_DEBUG \ + -e BUILD_OUTPUT_ID \ + -e flow_run_id \ + -e remote_url \ + -e sha \ + -e BINSTAR_TOKEN \ + "${DOCKER_IMAGE}" \ + bash \ + "/home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh" + +# verify that the end of the script was reached +test -f "$DONE_CANARY" + +# This closes the last group opened in `build_steps.sh` +( endgroup "Final checks" ) 2> /dev/null \ No newline at end of file diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh new file mode 100755 index 000000000..1ef7c5e7b --- /dev/null +++ b/.scripts/run_osx_build.sh @@ -0,0 +1,114 @@ +#!/usr/bin/env bash + +# -*- mode: jinja-shell -*- + +source .scripts/logging_utils.sh + +set -xe + +MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3} +MINIFORGE_HOME=${MINIFORGE_HOME%/} # remove trailing slash + +( startgroup "Provisioning base env with micromamba" ) 2> /dev/null +MICROMAMBA_VERSION="1.5.10-0" +if [[ "$(uname -m)" == "arm64" ]]; then + osx_arch="osx-arm64" +else + osx_arch="osx-64" +fi +MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}" +MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)" +echo "Downloading micromamba ${MICROMAMBA_VERSION}" +micromamba_exe="$(mktemp -d)/micromamba" +curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}" +chmod +x "${micromamba_exe}" +echo "Creating environment" +"${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ + --channel conda-forge \ + pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" +echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" +mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" +echo "Cleaning up micromamba" +rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true +( endgroup "Provisioning base env with micromamba" ) 2> /dev/null + +( startgroup "Configuring conda" ) 2> /dev/null + +source "${MINIFORGE_HOME}/etc/profile.d/conda.sh" +conda activate base +export CONDA_SOLVER="libmamba" +export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 + + + + + +echo -e "\n\nSetting up the condarc and mangling the compiler." +setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml + +if [[ "${CI:-}" != "" ]]; then + mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml +fi + +if [[ "${CI:-}" != "" ]]; then + echo -e "\n\nMangling homebrew in the CI to avoid conflicts." + /usr/bin/sudo mangle_homebrew + /usr/bin/sudo -k +else + echo -e "\n\nNot mangling homebrew as we are not running in CI" +fi + +if [[ "${sha:-}" == "" ]]; then + sha=$(git rev-parse HEAD) +fi + +echo -e "\n\nRunning the build setup script." +source run_conda_forge_build_setup + + + +( endgroup "Configuring conda" ) 2> /dev/null + +echo -e "\n\nMaking the build clobber file" +make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml + +if [[ -f LICENSE.txt ]]; then + cp LICENSE.txt "recipe/recipe-scripts-license.txt" +fi + +if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then + if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" + fi + conda debug ./recipe -m ./.ci_support/${CONFIG}.yaml \ + ${EXTRA_CB_OPTIONS:-} \ + --clobber-file ./.ci_support/clobber_${CONFIG}.yaml + + # Drop into an interactive shell + /bin/bash +else + + if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then + EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" + fi + + conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ + --suppress-variables ${EXTRA_CB_OPTIONS:-} \ + --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ + --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" + + ( startgroup "Inspecting artifacts" ) 2> /dev/null + + # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 + command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir ./recipe -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" + + ( endgroup "Inspecting artifacts" ) 2> /dev/null + + ( startgroup "Uploading packages" ) 2> /dev/null + + if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then + upload_package ./ ./recipe ./.ci_support/${CONFIG}.yaml + fi + + ( endgroup "Uploading packages" ) 2> /dev/null +fi \ No newline at end of file diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 65952ff83..c5d46bca2 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -49,9 +49,6 @@ set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" -:: Workaround for openssl errors with git when using micromamba v2+ -set "GIT_SSL_NO_VERIFY=true" - :: Set basic configuration echo Setting up configuration setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml @@ -111,17 +108,13 @@ if /i "%CI%" == "azure" ( ) :: Validate -call :start_group "Validating outputs" -validate_recipe_outputs "%FEEDSTOCK_NAME%" -if !errorlevel! neq 0 exit /b !errorlevel! -call :end_group if /i "%UPLOAD_PACKAGES%" == "true" ( if /i "%IS_PR_BUILD%" == "false" ( call :start_group "Uploading packages" if not exist "%TEMP%\" md "%TEMP%" set "TMP=%TEMP%" - upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml + upload_package .\ ".\recipe" .ci_support\%CONFIG%.yaml if !errorlevel! neq 0 exit /b !errorlevel! call :end_group ) diff --git a/README.md b/README.md index 916e46bed..6b07f75ab 100644 --- a/README.md +++ b/README.md @@ -148,6 +148,62 @@ Current build status
VariantStatus
win_64_cuda_compiler_version11.8win_64_cuda_compilerNonecuda_compiler_versionNone - variant + variant
win_64_cuda_compiler_versionNonewin_64_cuda_compilernvcccuda_compiler_version11.8 - variant + variant
+ + + + + + + + + + + + + + + + + + + + + + + +
VariantStatus
linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 + + variant + +
linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 + + variant + +
linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 + + variant + +
linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 + + variant + +
linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 + + variant + +
linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 + + variant + +
osx_64 + + variant + +
osx_arm64 + + variant + +
win_64_cuda_compilerNonecuda_compiler_versionNone diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d54fe696a..32da3d0c0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -28,4 +28,6 @@ stages: condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) dependsOn: Check jobs: + - template: ./.azure-pipelines/azure-pipelines-linux.yml + - template: ./.azure-pipelines/azure-pipelines-osx.yml - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file From 71fe125314c1134b2e338a05673e5c232dfd23ed Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 28 Oct 2024 16:10:36 +0100 Subject: [PATCH 27/32] set GIT_SSL_NO_VERIFY=true --- .scripts/run_win_build.bat | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index c5d46bca2..e4a920b34 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -49,6 +49,9 @@ set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" +:: Workaround for openssl errors with git when using micromamba v2+ +set "GIT_SSL_NO_VERIFY=true" + :: Set basic configuration echo Setting up configuration setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml From c9652711dd217e51350c11f04e44e4eab345d310 Mon Sep 17 00:00:00 2001 From: "H. Vetinari" Date: Tue, 29 Oct 2024 10:11:04 +1100 Subject: [PATCH 28/32] fix windows variables --- .azure-pipelines/azure-pipelines-win.yml | 6 ++---- conda-forge.yml | 5 +++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 517c0b090..89c40d832 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -4,8 +4,6 @@ jobs: - job: win - CONDA_BLD_PATH: C:\bld\ - MINIFORGE_HOME: C:\miniforge\ pool: vmImage: windows-2022 strategy: @@ -18,8 +16,8 @@ jobs: UPLOAD_PACKAGES: 'True' timeoutInMinutes: 360 variables: - CONDA_BLD_PATH: D:\\bld\\ - MINIFORGE_HOME: D:\Miniforge + CONDA_BLD_PATH: C:\bld\ + MINIFORGE_HOME: C:\miniforge\ UPLOAD_TEMP: D:\\tmp steps: diff --git a/conda-forge.yml b/conda-forge.yml index 59f3d9aa4..401e8f66b 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -3,8 +3,9 @@ azure: settings_linux: swapfile_size: 8GiB settings_win: - CONDA_BLD_PATH: C:\bld\ - MINIFORGE_HOME: C:\miniforge\ + variables: + CONDA_BLD_PATH: C:\bld\ + MINIFORGE_HOME: C:\miniforge\ bot: abi_migration_branches: - 17.x From 2dc025c0c05e42ef482782594d40180fc530e3a5 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Mon, 28 Oct 2024 13:01:31 +0100 Subject: [PATCH 29/32] Use micromamba 2.0.2-2 --- .scripts/run_win_build.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index e4a920b34..6586d23a2 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -17,7 +17,7 @@ if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" call :start_group "Provisioning base env with micromamba" set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" -set "MICROMAMBA_VERSION=1.5.10-0" +set "MICROMAMBA_VERSION=2.0.2-2" set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" From 4408ffa91686364258afde780d47349b0fad7ba4 Mon Sep 17 00:00:00 2001 From: jaimergp Date: Tue, 29 Oct 2024 08:03:44 +0100 Subject: [PATCH 30/32] Do not move cache --- .scripts/run_win_build.bat | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 6586d23a2..acb1bd380 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -32,9 +32,9 @@ call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefi --channel conda-forge ^ pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" if !errorlevel! neq 0 exit /b !errorlevel! -echo Moving pkgs cache from %MAMBA_ROOT_PREFIX% to %MINIFORGE_HOME% -move /Y "%MAMBA_ROOT_PREFIX%\pkgs" "%MINIFORGE_HOME%" -if !errorlevel! neq 0 exit /b !errorlevel! +@REM echo Moving pkgs cache from %MAMBA_ROOT_PREFIX% to %MINIFORGE_HOME% +@REM move /Y "%MAMBA_ROOT_PREFIX%\pkgs" "%MINIFORGE_HOME%" +@REM if !errorlevel! neq 0 exit /b !errorlevel! echo Removing %MAMBA_ROOT_PREFIX% del /S /Q "%MAMBA_ROOT_PREFIX%" del /S /Q "%MICROMAMBA_TMPDIR%" From 65d0df687743e91c27f6770b61e8484b6ef343fe Mon Sep 17 00:00:00 2001 From: jaimergp Date: Tue, 29 Oct 2024 11:01:11 +0100 Subject: [PATCH 31/32] set CONDA_PKGS_DIRS=%MINIFORGE_HOME%\pkgs instead --- .scripts/run_win_build.bat | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index acb1bd380..ef4356d79 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -28,13 +28,12 @@ certutil -urlcache -split -f "%MICROMAMBA_URL%" "%MICROMAMBA_EXE%" if !errorlevel! neq 0 exit /b !errorlevel! echo Creating environment +set "CONDA_PKGS_DIRS=%MINIFORGE_HOME%\pkgs" call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ --channel conda-forge ^ pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" if !errorlevel! neq 0 exit /b !errorlevel! -@REM echo Moving pkgs cache from %MAMBA_ROOT_PREFIX% to %MINIFORGE_HOME% -@REM move /Y "%MAMBA_ROOT_PREFIX%\pkgs" "%MINIFORGE_HOME%" -@REM if !errorlevel! neq 0 exit /b !errorlevel! +set "CONDA_PKGS_DIRS=" echo Removing %MAMBA_ROOT_PREFIX% del /S /Q "%MAMBA_ROOT_PREFIX%" del /S /Q "%MICROMAMBA_TMPDIR%" From d007a0e5dbc20175cf4322e3f644f74e3ce442df Mon Sep 17 00:00:00 2001 From: jaimergp Date: Tue, 29 Oct 2024 13:51:48 +0100 Subject: [PATCH 32/32] Rerender with https://github.com/conda-forge/conda-smithy/pull/2107 MNT: Re-rendered with conda-build 24.9.0, conda-smithy 3.43.1.dev12+g92312b51, and conda-forge-pinning 2024.10.29.12.41.35 --- .azure-pipelines/azure-pipelines-linux.yml | 89 -------------- .azure-pipelines/azure-pipelines-osx.yml | 38 ------ ...ler_version11.8cxx_compiler_version11.yaml | 100 --------------- ...ler_versionNonecxx_compiler_version13.yaml | 100 --------------- ...ler_version11.8cxx_compiler_version11.yaml | 104 ---------------- ...ler_versionNonecxx_compiler_version13.yaml | 104 ---------------- ...ler_version11.8cxx_compiler_version11.yaml | 100 --------------- ...ler_versionNonecxx_compiler_version13.yaml | 100 --------------- .ci_support/osx_64_.yaml | 95 --------------- .ci_support/osx_arm64_.yaml | 95 --------------- .scripts/build_steps.sh | 95 --------------- .scripts/run_docker_build.sh | 112 ----------------- .scripts/run_osx_build.sh | 114 ------------------ .scripts/run_win_build.bat | 7 +- README.md | 56 --------- azure-pipelines.yml | 2 - 16 files changed, 1 insertion(+), 1310 deletions(-) delete mode 100755 .azure-pipelines/azure-pipelines-linux.yml delete mode 100755 .azure-pipelines/azure-pipelines-osx.yml delete mode 100644 .ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml delete mode 100644 .ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml delete mode 100644 .ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml delete mode 100644 .ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml delete mode 100644 .ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml delete mode 100644 .ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml delete mode 100644 .ci_support/osx_64_.yaml delete mode 100644 .ci_support/osx_arm64_.yaml delete mode 100755 .scripts/build_steps.sh delete mode 100755 .scripts/run_docker_build.sh delete mode 100755 .scripts/run_osx_build.sh diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml deleted file mode 100755 index 6bd8a8257..000000000 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ /dev/null @@ -1,89 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: linux - pool: - vmImage: ubuntu-latest - strategy: - matrix: - linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11: - CONFIG: linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 - linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13: - CONFIG: linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11: - CONFIG: linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 - linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13: - CONFIG: linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11: - CONFIG: linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cuda:11.8 - linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13: - CONFIG: linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 - UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 - timeoutInMinutes: 360 - variables: {} - - steps: - - script: | - sudo mkdir -p /opt/empty_dir || true - for d in \ - /opt/ghc \ - /opt/hostedtoolcache \ - /usr/lib/jvm \ - /usr/local/.ghcup \ - /usr/local/lib/android \ - /usr/local/share/powershell \ - /usr/share/dotnet \ - /usr/share/swift \ - ; do - sudo rsync --stats -a --delete /opt/empty_dir/ $d || true - done - sudo apt-get purge -y -f firefox \ - google-chrome-stable \ - microsoft-edge-stable - sudo apt-get autoremove -y >& /dev/null - sudo apt-get autoclean -y >& /dev/null - df -h - displayName: Manage disk space - - script: | - sudo fallocate -l 8GiB /swapfile || true - sudo chmod 600 /swapfile || true - sudo mkswap /swapfile || true - sudo swapon /swapfile || true - displayName: Create swap file - # configure qemu binfmt-misc running. This allows us to run docker containers - # embedded qemu-static - - script: | - docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes - ls /proc/sys/fs/binfmt_misc/ - condition: not(startsWith(variables['CONFIG'], 'linux_64')) - displayName: Configure binfmt_misc - - - script: | - export CI=azure - export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) - export remote_url=$(Build.Repository.Uri) - export sha=$(Build.SourceVersion) - export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then - export IS_PR_BUILD="True" - else - export IS_PR_BUILD="False" - fi - .scripts/run_docker_build.sh - displayName: Run docker build - env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml deleted file mode 100755 index 413faed88..000000000 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ /dev/null @@ -1,38 +0,0 @@ -# This file was generated automatically from conda-smithy. To update this configuration, -# update the conda-forge.yml and/or the recipe/meta.yaml. -# -*- mode: yaml -*- - -jobs: -- job: osx - pool: - vmImage: macOS-13 - strategy: - matrix: - osx_64_: - CONFIG: osx_64_ - UPLOAD_PACKAGES: 'True' - osx_arm64_: - CONFIG: osx_arm64_ - UPLOAD_PACKAGES: 'True' - timeoutInMinutes: 360 - variables: {} - - steps: - # TODO: Fast finish on azure pipelines? - - script: | - export CI=azure - export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt) - export remote_url=$(Build.Repository.Uri) - export sha=$(Build.SourceVersion) - export OSX_FORCE_SDK_DOWNLOAD="1" - export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME - export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) - if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then - export IS_PR_BUILD="True" - else - export IS_PR_BUILD="False" - fi - ./.scripts/run_osx_build.sh - displayName: Run OSX build - env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) \ No newline at end of file diff --git a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml deleted file mode 100644 index aff915ae6..000000000 --- a/.ci_support/linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml +++ /dev/null @@ -1,100 +0,0 @@ -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '11' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- nvcc -cuda_compiler_version: -- '11.8' -cuda_compiler_version_min: -- '11.8' -cxx_compiler: -- gxx -cxx_compiler_version: -- '11' -docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.8 -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- linux-64 -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cdt_name - - cuda_compiler - - cuda_compiler_version - - docker_image -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml deleted file mode 100644 index d2f35a206..000000000 --- a/.ci_support/linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml +++ /dev/null @@ -1,100 +0,0 @@ -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- None -cuda_compiler_version: -- None -cuda_compiler_version_min: -- '11.8' -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- linux-64 -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cdt_name - - cuda_compiler - - cuda_compiler_version - - docker_image -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml deleted file mode 100644 index 5be5932d1..000000000 --- a/.ci_support/linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml +++ /dev/null @@ -1,104 +0,0 @@ -BUILD: -- aarch64-conda_cos7-linux-gnu -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '11' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_arch: -- aarch64 -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- nvcc -cuda_compiler_version: -- '11.8' -cuda_compiler_version_min: -- '11.8' -cxx_compiler: -- gxx -cxx_compiler_version: -- '11' -docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.8 -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- linux-aarch64 -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cdt_name - - cuda_compiler - - cuda_compiler_version - - docker_image -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml deleted file mode 100644 index 16e695402..000000000 --- a/.ci_support/linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml +++ /dev/null @@ -1,104 +0,0 @@ -BUILD: -- aarch64-conda_cos7-linux-gnu -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_arch: -- aarch64 -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- None -cuda_compiler_version: -- None -cuda_compiler_version_min: -- '11.8' -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- linux-aarch64 -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cdt_name - - cuda_compiler - - cuda_compiler_version - - docker_image -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml b/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml deleted file mode 100644 index 94c54b284..000000000 --- a/.ci_support/linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11.yaml +++ /dev/null @@ -1,100 +0,0 @@ -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '11' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- nvcc -cuda_compiler_version: -- '11.8' -cuda_compiler_version_min: -- '11.8' -cxx_compiler: -- gxx -cxx_compiler_version: -- '11' -docker_image: -- quay.io/condaforge/linux-anvil-cuda:11.8 -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- linux-ppc64le -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cdt_name - - cuda_compiler - - cuda_compiler_version - - docker_image -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml b/.ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml deleted file mode 100644 index 44b82c6ca..000000000 --- a/.ci_support/linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13.yaml +++ /dev/null @@ -1,100 +0,0 @@ -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- gcc -c_compiler_version: -- '13' -c_stdlib: -- sysroot -c_stdlib_version: -- '2.17' -cdt_name: -- cos7 -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- None -cuda_compiler_version: -- None -cuda_compiler_version_min: -- '11.8' -cxx_compiler: -- gxx -cxx_compiler_version: -- '13' -docker_image: -- quay.io/condaforge/linux-anvil-cos7-x86_64 -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- linux-ppc64le -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version - - c_stdlib_version - - cdt_name - - cuda_compiler - - cuda_compiler_version - - docker_image -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml deleted file mode 100644 index 49f6f36d2..000000000 --- a/.ci_support/osx_64_.yaml +++ /dev/null @@ -1,95 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '10.13' -MACOSX_SDK_VERSION: -- '10.13' -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- clang -c_compiler_version: -- '18' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '10.13' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- None -cuda_compiler_version: -- None -cxx_compiler: -- clangxx -cxx_compiler_version: -- '18' -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -macos_machine: -- x86_64-apple-darwin13.4.0 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- osx-64 -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml deleted file mode 100644 index 2e4ca26ea..000000000 --- a/.ci_support/osx_arm64_.yaml +++ /dev/null @@ -1,95 +0,0 @@ -MACOSX_DEPLOYMENT_TARGET: -- '11.0' -MACOSX_SDK_VERSION: -- '11.0' -aws_crt_cpp: -- 0.29.0 -aws_sdk_cpp: -- 1.11.407 -azure_core_cpp: -- 1.14.0 -azure_identity_cpp: -- 1.10.0 -azure_storage_blobs_cpp: -- 12.13.0 -azure_storage_files_datalake_cpp: -- 12.12.0 -bzip2: -- '1' -c_compiler: -- clang -c_compiler_version: -- '18' -c_stdlib: -- macosx_deployment_target -c_stdlib_version: -- '11.0' -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -cuda_compiler: -- None -cuda_compiler_version: -- None -cxx_compiler: -- clangxx -cxx_compiler_version: -- '18' -gflags: -- '2.2' -glog: -- '0.7' -libabseil: -- '20240722' -libboost_headers: -- '1.86' -libgoogle_cloud_devel: -- '2.30' -libgoogle_cloud_storage_devel: -- '2.30' -libgrpc: -- '1.65' -libprotobuf: -- 5.27.5 -lz4_c: -- 1.9.3 -macos_machine: -- arm64-apple-darwin20.0.0 -numpy: -- '2.0' -- '2.0' -- '2.0' -- '2' -- '2.0' -openssl: -- '3' -orc: -- 2.0.2 -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython -- 3.11.* *_cpython -- 3.12.* *_cpython -- 3.13.* *_cp313 -- 3.9.* *_cpython -re2: -- 2024.07.02 -snappy: -- '1.2' -target_platform: -- osx-arm64 -thrift_cpp: -- 0.21.0 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - python - - numpy -zlib: -- '1' -zstd: -- '1.5' diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh deleted file mode 100755 index 352d0523e..000000000 --- a/.scripts/build_steps.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/usr/bin/env bash - -# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here -# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent -# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also -# benefit from the improvement. - -# -*- mode: jinja-shell -*- - -set -xeuo pipefail -export FEEDSTOCK_ROOT="${FEEDSTOCK_ROOT:-/home/conda/feedstock_root}" -source ${FEEDSTOCK_ROOT}/.scripts/logging_utils.sh - - -( endgroup "Start Docker" ) 2> /dev/null - -( startgroup "Configuring conda" ) 2> /dev/null - -export PYTHONUNBUFFERED=1 -export RECIPE_ROOT="${RECIPE_ROOT:-/home/conda/recipe_root}" -export CI_SUPPORT="${FEEDSTOCK_ROOT}/.ci_support" -export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" - -cat >~/.condarc < /opt/conda/conda-meta/history -micromamba install --root-prefix ~/.conda --prefix /opt/conda \ - --yes --override-channels --channel conda-forge --strict-channel-priority \ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 - -# set up the condarc -setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - -source run_conda_forge_build_setup - - - -# make the build number clobber -make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - -if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]] && [[ "${HOST_PLATFORM}" != linux-* ]] && [[ "${BUILD_WITH_CONDA_DEBUG:-0}" != 1 ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" -fi - - -( endgroup "Configuring conda" ) 2> /dev/null - -if [[ -f "${FEEDSTOCK_ROOT}/LICENSE.txt" ]]; then - cp "${FEEDSTOCK_ROOT}/LICENSE.txt" "${RECIPE_ROOT}/recipe-scripts-license.txt" -fi - -if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" - - # Drop into an interactive shell - /bin/bash -else - conda-build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" \ - --extra-meta flow_run_id="${flow_run_id:-}" remote_url="${remote_url:-}" sha="${sha:-}" - ( startgroup "Inspecting artifacts" ) 2> /dev/null - - # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir "${RECIPE_ROOT}" -m "${CONFIG_FILE}" || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" - - ( endgroup "Inspecting artifacts" ) 2> /dev/null - - ( startgroup "Uploading packages" ) 2> /dev/null - - if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then - upload_package "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" - fi - - ( endgroup "Uploading packages" ) 2> /dev/null -fi - -( startgroup "Final checks" ) 2> /dev/null - -touch "${FEEDSTOCK_ROOT}/build_artifacts/conda-forge-build-done-${CONFIG}" \ No newline at end of file diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh deleted file mode 100755 index a16e7e794..000000000 --- a/.scripts/run_docker_build.sh +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/env bash - -# PLEASE NOTE: This script has been automatically generated by conda-smithy. Any changes here -# will be lost next time ``conda smithy rerender`` is run. If you would like to make permanent -# changes to this script, consider a proposal to conda-smithy so that other feedstocks can also -# benefit from the improvement. - -source .scripts/logging_utils.sh - -( startgroup "Configure Docker" ) 2> /dev/null - -set -xeo pipefail - -THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" -PROVIDER_DIR="$(basename $THISDIR)" - -FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" -RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" - -if [ -z ${FEEDSTOCK_NAME} ]; then - export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) -fi - -if [[ "${sha:-}" == "" ]]; then - pushd "${FEEDSTOCK_ROOT}" - sha=$(git rev-parse HEAD) - popd -fi - -docker info - -# In order for the conda-build process in the container to write to the mounted -# volumes, we need to run with the same id as the host machine, which is -# normally the owner of the mounted volumes, or at least has write permission -export HOST_USER_ID=$(id -u) -# Check if docker-machine is being used (normally on OSX) and get the uid from -# the VM -if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then - export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u) -fi - -ARTIFACTS="$FEEDSTOCK_ROOT/build_artifacts" - -if [ -z "$CONFIG" ]; then - set +x - FILES=`ls .ci_support/linux_*` - CONFIGS="" - for file in $FILES; do - CONFIGS="${CONFIGS}'${file:12:-5}' or "; - done - echo "Need to set CONFIG env variable. Value can be one of ${CONFIGS:0:-4}" - exit 1 -fi - -if [ -z "${DOCKER_IMAGE}" ]; then - SHYAML_INSTALLED="$(shyaml -h || echo NO)" - if [ "${SHYAML_INSTALLED}" == "NO" ]; then - echo "WARNING: DOCKER_IMAGE variable not set and shyaml not installed. Trying to parse with coreutils" - DOCKER_IMAGE=$(cat .ci_support/${CONFIG}.yaml | grep '^docker_image:$' -A 1 | tail -n 1 | cut -b 3-) - if [ "${DOCKER_IMAGE}" = "" ]; then - echo "No docker_image entry found in ${CONFIG}. Falling back to quay.io/condaforge/linux-anvil-comp7" - DOCKER_IMAGE="quay.io/condaforge/linux-anvil-comp7" - fi - else - DOCKER_IMAGE="$(cat "${FEEDSTOCK_ROOT}/.ci_support/${CONFIG}.yaml" | shyaml get-value docker_image.0 quay.io/condaforge/linux-anvil-comp7 )" - fi -fi - -mkdir -p "$ARTIFACTS" -DONE_CANARY="$ARTIFACTS/conda-forge-build-done-${CONFIG}" -rm -f "$DONE_CANARY" - -# Allow people to specify extra default arguments to `docker run` (e.g. `--rm`) -DOCKER_RUN_ARGS="${CONDA_FORGE_DOCKER_RUN_ARGS}" -if [ -z "${CI}" ]; then - DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}" -fi - -( endgroup "Configure Docker" ) 2> /dev/null - -( startgroup "Start Docker" ) 2> /dev/null - -export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}" -export IS_PR_BUILD="${IS_PR_BUILD:-False}" -docker pull "${DOCKER_IMAGE}" -docker run ${DOCKER_RUN_ARGS} \ - -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \ - -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \ - -e CONFIG \ - -e HOST_USER_ID \ - -e UPLOAD_PACKAGES \ - -e IS_PR_BUILD \ - -e GIT_BRANCH \ - -e UPLOAD_ON_BRANCH \ - -e CI \ - -e FEEDSTOCK_NAME \ - -e CPU_COUNT \ - -e BUILD_WITH_CONDA_DEBUG \ - -e BUILD_OUTPUT_ID \ - -e flow_run_id \ - -e remote_url \ - -e sha \ - -e BINSTAR_TOKEN \ - "${DOCKER_IMAGE}" \ - bash \ - "/home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh" - -# verify that the end of the script was reached -test -f "$DONE_CANARY" - -# This closes the last group opened in `build_steps.sh` -( endgroup "Final checks" ) 2> /dev/null \ No newline at end of file diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh deleted file mode 100755 index 1ef7c5e7b..000000000 --- a/.scripts/run_osx_build.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env bash - -# -*- mode: jinja-shell -*- - -source .scripts/logging_utils.sh - -set -xe - -MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3} -MINIFORGE_HOME=${MINIFORGE_HOME%/} # remove trailing slash - -( startgroup "Provisioning base env with micromamba" ) 2> /dev/null -MICROMAMBA_VERSION="1.5.10-0" -if [[ "$(uname -m)" == "arm64" ]]; then - osx_arch="osx-arm64" -else - osx_arch="osx-64" -fi -MICROMAMBA_URL="https://github.com/mamba-org/micromamba-releases/releases/download/${MICROMAMBA_VERSION}/micromamba-${osx_arch}" -MAMBA_ROOT_PREFIX="${MINIFORGE_HOME}-micromamba-$(date +%s)" -echo "Downloading micromamba ${MICROMAMBA_VERSION}" -micromamba_exe="$(mktemp -d)/micromamba" -curl -L -o "${micromamba_exe}" "${MICROMAMBA_URL}" -chmod +x "${micromamba_exe}" -echo "Creating environment" -"${micromamba_exe}" create --yes --root-prefix "${MAMBA_ROOT_PREFIX}" --prefix "${MINIFORGE_HOME}" \ - --channel conda-forge \ - pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" -echo "Moving pkgs cache from ${MAMBA_ROOT_PREFIX} to ${MINIFORGE_HOME}" -mv "${MAMBA_ROOT_PREFIX}/pkgs" "${MINIFORGE_HOME}" -echo "Cleaning up micromamba" -rm -rf "${MAMBA_ROOT_PREFIX}" "${micromamba_exe}" || true -( endgroup "Provisioning base env with micromamba" ) 2> /dev/null - -( startgroup "Configuring conda" ) 2> /dev/null - -source "${MINIFORGE_HOME}/etc/profile.d/conda.sh" -conda activate base -export CONDA_SOLVER="libmamba" -export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 - - - - - -echo -e "\n\nSetting up the condarc and mangling the compiler." -setup_conda_rc ./ ./recipe ./.ci_support/${CONFIG}.yaml - -if [[ "${CI:-}" != "" ]]; then - mangle_compiler ./ ./recipe .ci_support/${CONFIG}.yaml -fi - -if [[ "${CI:-}" != "" ]]; then - echo -e "\n\nMangling homebrew in the CI to avoid conflicts." - /usr/bin/sudo mangle_homebrew - /usr/bin/sudo -k -else - echo -e "\n\nNot mangling homebrew as we are not running in CI" -fi - -if [[ "${sha:-}" == "" ]]; then - sha=$(git rev-parse HEAD) -fi - -echo -e "\n\nRunning the build setup script." -source run_conda_forge_build_setup - - - -( endgroup "Configuring conda" ) 2> /dev/null - -echo -e "\n\nMaking the build clobber file" -make_build_number ./ ./recipe ./.ci_support/${CONFIG}.yaml - -if [[ -f LICENSE.txt ]]; then - cp LICENSE.txt "recipe/recipe-scripts-license.txt" -fi - -if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then - if [[ "x${BUILD_OUTPUT_ID:-}" != "x" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --output-id ${BUILD_OUTPUT_ID}" - fi - conda debug ./recipe -m ./.ci_support/${CONFIG}.yaml \ - ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml - - # Drop into an interactive shell - /bin/bash -else - - if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then - EXTRA_CB_OPTIONS="${EXTRA_CB_OPTIONS:-} --no-test" - fi - - conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ - --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" - - ( startgroup "Inspecting artifacts" ) 2> /dev/null - - # inspect_artifacts was only added in conda-forge-ci-setup 4.9.4 - command -v inspect_artifacts >/dev/null 2>&1 && inspect_artifacts --recipe-dir ./recipe -m ./.ci_support/${CONFIG}.yaml || echo "inspect_artifacts needs conda-forge-ci-setup >=4.9.4" - - ( endgroup "Inspecting artifacts" ) 2> /dev/null - - ( startgroup "Uploading packages" ) 2> /dev/null - - if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then - upload_package ./ ./recipe ./.ci_support/${CONFIG}.yaml - fi - - ( endgroup "Uploading packages" ) 2> /dev/null -fi \ No newline at end of file diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index ef4356d79..ef14a69f6 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -17,7 +17,7 @@ if "%MINIFORGE_HOME%"=="" set "MINIFORGE_HOME=%USERPROFILE%\Miniforge3" if "%MINIFORGE_HOME:~-1%"=="\" set "MINIFORGE_HOME=%MINIFORGE_HOME:~0,-1%" call :start_group "Provisioning base env with micromamba" set "MAMBA_ROOT_PREFIX=%MINIFORGE_HOME%-micromamba-%RANDOM%" -set "MICROMAMBA_VERSION=2.0.2-2" +set "MICROMAMBA_VERSION=1.5.10-0" set "MICROMAMBA_URL=https://github.com/mamba-org/micromamba-releases/releases/download/%MICROMAMBA_VERSION%/micromamba-win-64" set "MICROMAMBA_TMPDIR=%TMP%\micromamba-%RANDOM%" set "MICROMAMBA_EXE=%MICROMAMBA_TMPDIR%\micromamba.exe" @@ -28,12 +28,10 @@ certutil -urlcache -split -f "%MICROMAMBA_URL%" "%MICROMAMBA_EXE%" if !errorlevel! neq 0 exit /b !errorlevel! echo Creating environment -set "CONDA_PKGS_DIRS=%MINIFORGE_HOME%\pkgs" call "%MICROMAMBA_EXE%" create --yes --root-prefix "%MAMBA_ROOT_PREFIX%" --prefix "%MINIFORGE_HOME%" ^ --channel conda-forge ^ pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1" if !errorlevel! neq 0 exit /b !errorlevel! -set "CONDA_PKGS_DIRS=" echo Removing %MAMBA_ROOT_PREFIX% del /S /Q "%MAMBA_ROOT_PREFIX%" del /S /Q "%MICROMAMBA_TMPDIR%" @@ -48,9 +46,6 @@ set "CONDA_SOLVER=libmamba" if !errorlevel! neq 0 exit /b !errorlevel! set "CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1" -:: Workaround for openssl errors with git when using micromamba v2+ -set "GIT_SSL_NO_VERIFY=true" - :: Set basic configuration echo Setting up configuration setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml diff --git a/README.md b/README.md index 6b07f75ab..916e46bed 100644 --- a/README.md +++ b/README.md @@ -148,62 +148,6 @@ Current build status - - - - - - - - - - - - - - - - - - - - - - - -
VariantStatus
linux_64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 - - variant - -
linux_64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 - - variant - -
linux_aarch64_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 - - variant - -
linux_aarch64_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 - - variant - -
linux_ppc64le_c_compiler_version11cuda_compilernvcccuda_compiler_version11.8cxx_compiler_version11 - - variant - -
linux_ppc64le_c_compiler_version13cuda_compilerNonecuda_compiler_versionNonecxx_compiler_version13 - - variant - -
osx_64 - - variant - -
osx_arm64 - - variant - -
win_64_cuda_compilerNonecuda_compiler_versionNone diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 32da3d0c0..d54fe696a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -28,6 +28,4 @@ stages: condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true')) dependsOn: Check jobs: - - template: ./.azure-pipelines/azure-pipelines-linux.yml - - template: ./.azure-pipelines/azure-pipelines-osx.yml - template: ./.azure-pipelines/azure-pipelines-win.yml \ No newline at end of file