diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index dface67..025953b 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -26,12 +26,22 @@ jobs: osx_64_c_compiler_version16cxx_compiler_version16: CONFIG: osx_64_c_compiler_version16cxx_compiler_version16 UPLOAD_PACKAGES: 'True' + osx_64_c_compiler_version17cxx_compiler_version17: + CONFIG: osx_64_c_compiler_version17cxx_compiler_version17 + UPLOAD_PACKAGES: 'True' + osx_64_c_compiler_version18cxx_compiler_version18: + CONFIG: osx_64_c_compiler_version18cxx_compiler_version18 + 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}) diff --git a/.ci_support/osx_64_c_compiler_version11cxx_compiler_version11.yaml b/.ci_support/osx_64_c_compiler_version11cxx_compiler_version11.yaml index 54ef55f..dfc16ad 100644 --- a/.ci_support/osx_64_c_compiler_version11cxx_compiler_version11.yaml +++ b/.ci_support/osx_64_c_compiler_version11cxx_compiler_version11.yaml @@ -1,7 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: - '10.9' -boost_cpp: -- 1.78.0 c_compiler: - clang c_compiler_version: @@ -14,11 +12,10 @@ cxx_compiler: - clangxx cxx_compiler_version: - '11' +libboost_devel: +- '1.82' macos_machine: - x86_64-apple-darwin13.4.0 -pin_run_as_build: - boost-cpp: - max_pin: x.x.x python_impl: - cpython target_platform: diff --git a/.ci_support/osx_64_c_compiler_version12cxx_compiler_version12.yaml b/.ci_support/osx_64_c_compiler_version12cxx_compiler_version12.yaml index ac58308..5c27781 100644 --- a/.ci_support/osx_64_c_compiler_version12cxx_compiler_version12.yaml +++ b/.ci_support/osx_64_c_compiler_version12cxx_compiler_version12.yaml @@ -1,7 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: - '10.9' -boost_cpp: -- 1.78.0 c_compiler: - clang c_compiler_version: @@ -14,11 +12,10 @@ cxx_compiler: - clangxx cxx_compiler_version: - '12' +libboost_devel: +- '1.82' macos_machine: - x86_64-apple-darwin13.4.0 -pin_run_as_build: - boost-cpp: - max_pin: x.x.x python_impl: - cpython target_platform: diff --git a/.ci_support/osx_64_c_compiler_version13cxx_compiler_version13.yaml b/.ci_support/osx_64_c_compiler_version13cxx_compiler_version13.yaml index 3071310..e35ae6c 100644 --- a/.ci_support/osx_64_c_compiler_version13cxx_compiler_version13.yaml +++ b/.ci_support/osx_64_c_compiler_version13cxx_compiler_version13.yaml @@ -1,7 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: - '10.9' -boost_cpp: -- 1.78.0 c_compiler: - clang c_compiler_version: @@ -14,11 +12,10 @@ cxx_compiler: - clangxx cxx_compiler_version: - '13' +libboost_devel: +- '1.82' macos_machine: - x86_64-apple-darwin13.4.0 -pin_run_as_build: - boost-cpp: - max_pin: x.x.x python_impl: - cpython target_platform: diff --git a/.ci_support/osx_64_c_compiler_version14cxx_compiler_version14.yaml b/.ci_support/osx_64_c_compiler_version14cxx_compiler_version14.yaml index 960bc52..97087f7 100644 --- a/.ci_support/osx_64_c_compiler_version14cxx_compiler_version14.yaml +++ b/.ci_support/osx_64_c_compiler_version14cxx_compiler_version14.yaml @@ -1,7 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: - '10.9' -boost_cpp: -- 1.78.0 c_compiler: - clang c_compiler_version: @@ -14,11 +12,10 @@ cxx_compiler: - clangxx cxx_compiler_version: - '14' +libboost_devel: +- '1.82' macos_machine: - x86_64-apple-darwin13.4.0 -pin_run_as_build: - boost-cpp: - max_pin: x.x.x python_impl: - cpython target_platform: diff --git a/.ci_support/osx_64_c_compiler_version15cxx_compiler_version15.yaml b/.ci_support/osx_64_c_compiler_version15cxx_compiler_version15.yaml index 7f46696..da84d39 100644 --- a/.ci_support/osx_64_c_compiler_version15cxx_compiler_version15.yaml +++ b/.ci_support/osx_64_c_compiler_version15cxx_compiler_version15.yaml @@ -1,7 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: - '10.9' -boost_cpp: -- 1.78.0 c_compiler: - clang c_compiler_version: @@ -14,11 +12,10 @@ cxx_compiler: - clangxx cxx_compiler_version: - '15' +libboost_devel: +- '1.82' macos_machine: - x86_64-apple-darwin13.4.0 -pin_run_as_build: - boost-cpp: - max_pin: x.x.x python_impl: - cpython target_platform: diff --git a/.ci_support/osx_64_c_compiler_version16cxx_compiler_version16.yaml b/.ci_support/osx_64_c_compiler_version16cxx_compiler_version16.yaml index 2ff877f..408d9b0 100644 --- a/.ci_support/osx_64_c_compiler_version16cxx_compiler_version16.yaml +++ b/.ci_support/osx_64_c_compiler_version16cxx_compiler_version16.yaml @@ -1,7 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: - '10.9' -boost_cpp: -- 1.78.0 c_compiler: - clang c_compiler_version: @@ -14,11 +12,10 @@ cxx_compiler: - clangxx cxx_compiler_version: - '16' +libboost_devel: +- '1.82' macos_machine: - x86_64-apple-darwin13.4.0 -pin_run_as_build: - boost-cpp: - max_pin: x.x.x python_impl: - cpython target_platform: diff --git a/.ci_support/osx_64_c_compiler_version17cxx_compiler_version17.yaml b/.ci_support/osx_64_c_compiler_version17cxx_compiler_version17.yaml new file mode 100644 index 0000000..96edf7d --- /dev/null +++ b/.ci_support/osx_64_c_compiler_version17cxx_compiler_version17.yaml @@ -0,0 +1,25 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.9' +c_compiler: +- clang +c_compiler_version: +- '17' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '17' +libboost_devel: +- '1.82' +macos_machine: +- x86_64-apple-darwin13.4.0 +python_impl: +- cpython +target_platform: +- osx-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.ci_support/osx_64_c_compiler_version18cxx_compiler_version18.yaml b/.ci_support/osx_64_c_compiler_version18cxx_compiler_version18.yaml new file mode 100644 index 0000000..7964873 --- /dev/null +++ b/.ci_support/osx_64_c_compiler_version18cxx_compiler_version18.yaml @@ -0,0 +1,25 @@ +MACOSX_DEPLOYMENT_TARGET: +- '10.9' +c_compiler: +- clang +c_compiler_version: +- '18' +channel_sources: +- conda-forge +channel_targets: +- conda-forge main +cxx_compiler: +- clangxx +cxx_compiler_version: +- '18' +libboost_devel: +- '1.82' +macos_machine: +- x86_64-apple-darwin13.4.0 +python_impl: +- cpython +target_platform: +- osx-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index f87c49f..af0a5e7 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @beckermr \ No newline at end of file +* @beckermr @h-vetinari \ No newline at end of file diff --git a/.gitignore b/.gitignore index c89ecb7..179afe5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,24 @@ -*.pyc +# User content belongs under recipe/. +# Feedstock configuration goes in `conda-forge.yml` +# Everything else is managed by the conda-smithy rerender process. +# Please do not modify + +# Ignore all files and folders in root +* +!/conda-forge.yml + +# Don't ignore any files/folders if the parent folder is 'un-ignored' +# This also avoids warnings when adding an already-checked file with an ignored parent. +!/**/ +# Don't ignore any files/folders recursively in the following folders +!/recipe/** +!/.ci_support/** -build_artifacts +# Since we ignore files/folders recursively, any folders inside +# build_artifacts gets ignored which trips some build systems. +# To avoid that we 'un-ignore' all files/folders recursively +# and only ignore the root build_artifacts folder. +!/build_artifacts/** +/build_artifacts + +*.pyc diff --git a/.scripts/logging_utils.sh b/.scripts/logging_utils.sh index 57bc95c..aff009f 100644 --- a/.scripts/logging_utils.sh +++ b/.scripts/logging_utils.sh @@ -12,7 +12,7 @@ function startgroup { echo "##[group]$1";; travis ) echo "$1" - echo -en 'travis_fold:start:'"${1// /}"'\\r';; + echo -en 'travis_fold:start:'"${1// /}"'\r';; github_actions ) echo "::group::$1";; * ) @@ -28,7 +28,7 @@ function endgroup { azure ) echo "##[endgroup]";; travis ) - echo -en 'travis_fold:end:'"${1// /}"'\\r';; + echo -en 'travis_fold:end:'"${1// /}"'\r';; github_actions ) echo "::endgroup::";; esac diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 5ef2a19..165fa51 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -22,11 +22,13 @@ bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} source ${MINIFORGE_HOME}/etc/profile.d/conda.sh conda activate base +export CONDA_SOLVER="libmamba" +export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1 -mamba install --update-specs --quiet --yes --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 -mamba update --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 +mamba install --update-specs --quiet --yes --channel conda-forge --strict-channel-priority \ + pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" +mamba update --update-specs --yes --quiet --channel conda-forge --strict-channel-priority \ + pip mamba conda-build conda-forge-ci-setup=4 "conda-build>=24.1" @@ -45,6 +47,10 @@ 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 @@ -71,9 +77,10 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then /bin/bash else - conda mambabuild ./recipe -m ./.ci_support/${CONFIG}.yaml \ + conda-build ./recipe -m ./.ci_support/${CONFIG}.yaml \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file ./.ci_support/clobber_${CONFIG}.yaml + --clobber-file ./.ci_support/clobber_${CONFIG}.yaml \ + --extra-meta flow_run_id="$flow_run_id" remote_url="$remote_url" sha="$sha" ( startgroup "Validating outputs" ) 2> /dev/null validate_recipe_outputs "${FEEDSTOCK_NAME}" diff --git a/README.md b/README.md index c05adc0..3b3c1cf 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,20 @@ Current build status variant + + osx_64_c_compiler_version17cxx_compiler_version17 + + + variant + + + + osx_64_c_compiler_version18cxx_compiler_version18 + + + variant + + @@ -149,7 +163,7 @@ available continuous integration services. Thanks to the awesome service provide [CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/), [Drone](https://cloud.drone.io/welcome), and [TravisCI](https://travis-ci.com/) it is possible to build and upload installable packages to the -[conda-forge](https://anaconda.org/conda-forge) [Anaconda-Cloud](https://anaconda.org/) +[conda-forge](https://anaconda.org/conda-forge) [anaconda.org](https://anaconda.org/) channel for Linux, Windows and OSX respectively. To manage the continuous integration and simplify feedstock maintenance @@ -198,4 +212,5 @@ Feedstock Maintainers ===================== * [@beckermr](https://github.com/beckermr/) +* [@h-vetinari](https://github.com/h-vetinari/) diff --git a/build-locally.py b/build-locally.py index 3f4b7a7..e0d408d 100755 --- a/build-locally.py +++ b/build-locally.py @@ -64,8 +64,9 @@ def verify_config(ns): 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=SDKs' " - "to download the SDK automatically to 'SDKs/MacOSX.sdk'. " + "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." ) diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 408fe51..a8f207d 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -2,6 +2,8 @@ # clang version; to test new libcxx against old clang # we need to build libcxx-testing for several versions. c_compiler_version: # [osx] + - 18 # [osx] + - 17 # [osx] - 16 # [osx] - 15 # [osx] - 14 # [osx] @@ -9,6 +11,8 @@ c_compiler_version: # [osx] - 12 # [osx] - 11 # [osx] cxx_compiler_version: # [osx] + - 18 # [osx] + - 17 # [osx] - 16 # [osx] - 15 # [osx] - 14 # [osx] @@ -24,3 +28,15 @@ fortran_compiler_version: # [osx] - 12 # [osx] - 12 # [osx] - 12 # [osx] + - 12 # [osx] + - 12 # [osx] +# same for c_stdlib_version +c_stdlib_version: # [osx] + - 10.9 # [osx] + - 10.9 # [osx] + - 10.9 # [osx] + - 10.9 # [osx] + - 10.9 # [osx] + - 10.9 # [osx] + - 10.9 # [osx] + - 10.9 # [osx] diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 21ed3b3..0e7274c 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,10 +1,9 @@ -{% set name = "libcxx-testing" %} # this number only needs to be increased if # there are substantial infrastructure changes {% set testing_generation = "0" %} package: - name: {{ name|lower }} + name: libcxx-testing # version correspondence is: 0.{{ CLANG_MAJOR }} version: {{ testing_generation }}.{{ c_compiler_version }} @@ -12,7 +11,7 @@ source: path: . build: - number: 1 + number: 2 skip: true # [not (osx and python_impl == 'cpython')] script: echo "works!" @@ -26,7 +25,7 @@ requirements: - clang-{{ c_compiler_version }} # [osx] - make - pip - - boost-cpp + - libboost-devel test: files: @@ -43,3 +42,4 @@ about: extra: recipe-maintainers: - beckermr + - h-vetinari