diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 014a66b..0ca652f 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -19,13 +19,13 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 libabseil: -- '20250127' +- '20250512' libcurl: - '8' libgrpc: -- '1.71' +- '1.73' libprotobuf: -- 5.29.3 +- 6.31.1 openssl: - '3' target_platform: diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml index bfad5a0..cc8f878 100644 --- a/.ci_support/linux_aarch64_.yaml +++ b/.ci_support/linux_aarch64_.yaml @@ -19,13 +19,13 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 libabseil: -- '20250127' +- '20250512' libcurl: - '8' libgrpc: -- '1.71' +- '1.73' libprotobuf: -- 5.29.3 +- 6.31.1 openssl: - '3' target_platform: diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index 192ef2f..947b1a2 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -19,13 +19,13 @@ cxx_compiler_version: docker_image: - quay.io/condaforge/linux-anvil-x86_64:alma9 libabseil: -- '20250127' +- '20250512' libcurl: - '8' libgrpc: -- '1.71' +- '1.73' libprotobuf: -- 5.29.3 +- 6.31.1 openssl: - '3' target_platform: diff --git a/.ci_support/migrations/absl_grpc_proto_25Q2.yaml b/.ci_support/migrations/absl_grpc_proto_25Q2.yaml new file mode 100644 index 0000000..10b7a09 --- /dev/null +++ b/.ci_support/migrations/absl_grpc_proto_25Q2.yaml @@ -0,0 +1,29 @@ +__migrator: + build_number: 1 + commit_message: Rebuild for libabseil 20250512, libgrpc 1.73 & libprotobuf 6.31.1 + kind: version + migration_number: 1 + exclude: + # core deps + - abseil-cpp + - grpc-cpp + - libprotobuf + # required for building/testing + - protobuf + - re2 + # bazel stack + - bazel + - grpc_java_plugin + - singlejar +libabseil: +- 20250512 +libgrpc: +- "1.73" +libprotobuf: +- 6.31.1 +# we need to leave this migration open until we're ready to move the global baseline, see +# https://github.com/conda-forge/conda-forge.github.io/issues/2467; grpc 1.72 requires 11.0, +# see https://github.com/grpc/grpc/commit/f122d248443c81592e748da1adb240cbf0a0231c +c_stdlib_version: # [osx] + - 11.0 # [osx] +migrator_ts: 1748506837.6039238 diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index 5ae8b80..c68f5d2 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -1,7 +1,7 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.14' +- '11.0' MACOSX_SDK_VERSION: -- '10.14' +- '11.0' c_compiler: - clang c_compiler_version: @@ -9,7 +9,7 @@ c_compiler_version: c_stdlib: - macosx_deployment_target c_stdlib_version: -- '10.14' +- '11.0' channel_sources: - conda-forge channel_targets: @@ -19,13 +19,13 @@ cxx_compiler: cxx_compiler_version: - '18' libabseil: -- '20250127' +- '20250512' libcurl: - '8' libgrpc: -- '1.71' +- '1.73' libprotobuf: -- 5.29.3 +- 6.31.1 macos_machine: - x86_64-apple-darwin13.4.0 openssl: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index b312e07..c22f9fe 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -19,13 +19,13 @@ cxx_compiler: cxx_compiler_version: - '18' libabseil: -- '20250127' +- '20250512' libcurl: - '8' libgrpc: -- '1.71' +- '1.73' libprotobuf: -- 5.29.3 +- 6.31.1 macos_machine: - arm64-apple-darwin20.0.0 openssl: diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index c2e9be7..2c454b2 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -1,5 +1,5 @@ c_compiler: -- vs2019 +- vs2022 c_stdlib: - vs channel_sources: @@ -7,15 +7,15 @@ channel_sources: channel_targets: - conda-forge main cxx_compiler: -- vs2019 +- vs2022 libabseil: -- '20250127' +- '20250512' libcurl: - '8' libgrpc: -- '1.71' +- '1.73' libprotobuf: -- 5.29.3 +- 6.31.1 openssl: - '3' target_platform: diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 00f377a..6ee04aa 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -12,7 +12,7 @@ source .scripts/logging_utils.sh set -xeo pipefail THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" -PROVIDER_DIR="$(basename $THISDIR)" +PROVIDER_DIR="$(basename "$THISDIR")" FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" diff --git a/.scripts/run_win_build.bat b/.scripts/run_win_build.bat index 283e143..297498b 100755 --- a/.scripts/run_win_build.bat +++ b/.scripts/run_win_build.bat @@ -25,7 +25,7 @@ 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%" +powershell -ExecutionPolicy Bypass -Command "(New-Object Net.WebClient).DownloadFile('%MICROMAMBA_URL%', '%MICROMAMBA_EXE%')" if !errorlevel! neq 0 exit /b !errorlevel! echo Creating environment diff --git a/build-locally.py b/build-locally.py index c4a56c6..9dfe440 100755 --- a/build-locally.py +++ b/build-locally.py @@ -10,6 +10,7 @@ import os import platform import subprocess +import sys from argparse import ArgumentParser @@ -44,10 +45,19 @@ def run_osx_build(ns): subprocess.check_call([script]) +def run_win_build(ns): + script = ".scripts/run_win_build.bat" + subprocess.check_call(["cmd", "/D", "/Q", "/C", f"CALL {script}"]) + + def verify_config(ns): + choices_filter = ns.filter or "*" valid_configs = { - os.path.basename(f)[:-5] for f in glob.glob(".ci_support/*.yaml") + os.path.basename(f)[:-5] + for f in glob.glob(f".ci_support/{choices_filter}.yaml") } + if choices_filter != "*": + print(f"filtering for '{choices_filter}.yaml' configs") print(f"valid configs are {valid_configs}") if ns.config in valid_configs: print("Using " + ns.config + " configuration") @@ -60,38 +70,43 @@ def verify_config(ns): selections = list(enumerate(sorted(valid_configs), 1)) for i, c in selections: print(f"{i}. {c}") - s = input("\n> ") + try: + s = input("\n> ") + except KeyboardInterrupt: + print("\nno option selected, bye!", file=sys.stderr) + sys.exit(1) idx = int(s) - 1 ns.config = selections[idx][1] print(f"selected {ns.config}") else: raise ValueError("config " + ns.config + " is not valid") - # Remove the following, as implemented - if ns.config.startswith("win"): - raise ValueError( - f"only Linux/macOS configs currently supported, got {ns.config}" + if ( + ns.config.startswith("osx") + and platform.system() == "Darwin" + and not os.environ.get("OSX_SDK_DIR") + ): + raise RuntimeError( + "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=$PWD/SDKs' " + "to download the SDK automatically to '$PWD/SDKs/MacOSX.sdk'. " + "Note: OSX_SDK_DIR must be set to an absolute path. " + "Setting this variable implies agreement to the licensing terms of the SDK by Apple." ) - elif ns.config.startswith("osx"): - if "OSX_SDK_DIR" not in os.environ: - raise RuntimeError( - "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=$PWD/SDKs' " - "to download the SDK automatically to '$PWD/SDKs/MacOSX.sdk'. " - "Note: OSX_SDK_DIR must be set to an absolute path. " - "Setting this variable implies agreement to the licensing terms of the SDK by Apple." - ) def main(args=None): p = ArgumentParser("build-locally") p.add_argument("config", default=None, nargs="?") + p.add_argument( + "--filter", + default=None, + help="Glob string to filter which build choices are presented in interactive mode.", + ) p.add_argument( "--debug", action="store_true", help="Setup debug environment using `conda debug`", ) - p.add_argument( - "--output-id", help="If running debug, specify the output to setup." - ) + p.add_argument("--output-id", help="If running debug, specify the output to setup.") ns = p.parse_args(args=args) verify_config(ns) @@ -104,10 +119,10 @@ def main(args=None): run_docker_build(ns) elif ns.config.startswith("osx"): run_osx_build(ns) + elif ns.config.startswith("win"): + run_win_build(ns) finally: - recipe_license_file = os.path.join( - "recipe", "recipe-scripts-license.txt" - ) + recipe_license_file = os.path.join("recipe", "recipe-scripts-license.txt") if os.path.exists(recipe_license_file): os.remove(recipe_license_file) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 78ae7b1..6e4718d 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -9,7 +9,7 @@ source: sha256: 9a6e182fd658ba114512cf21bd9f274a315830638f62f0b831113df9e674bea0 build: - number: 1 + number: 2 requirements: build: - {{ compiler('c') }}