From 74ecfe7bc831d94b65d447a85970024efe1f7706 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Mon, 8 Aug 2022 17:55:26 -0700 Subject: [PATCH 1/5] MNT: Re-rendered with conda-build 3.21.9, conda-smithy 3.21.1, and conda-forge-pinning 2022.08.08.19.07.35 --- .azure-pipelines/azure-pipelines-osx.yml | 2 +- .azure-pipelines/azure-pipelines-win.yml | 69 ++++++++---------------- .ci_support/linux_64_.yaml | 4 +- .ci_support/linux_aarch64_.yaml | 4 +- .ci_support/linux_ppc64le_.yaml | 4 +- .ci_support/osx_64_.yaml | 10 ++-- .ci_support/osx_arm64_.yaml | 6 +-- .ci_support/win_64_.yaml | 4 +- .circleci/config.yml | 3 +- .scripts/build_steps.sh | 9 +++- .scripts/run_osx_build.sh | 4 ++ LICENSE.txt | 30 ++++++++--- build-locally.py | 19 ++++--- 13 files changed, 87 insertions(+), 81 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 84d4f421..8032e967 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -5,7 +5,7 @@ jobs: - job: osx pool: - vmImage: macOS-10.15 + vmImage: macOS-11 strategy: matrix: osx_64_: diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 88fd9c19..8a0bcaec 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -16,45 +16,27 @@ jobs: CONDA_BLD_PATH: D:\\bld\\ steps: - - script: | - choco install vcpython27 -fdv -y --debug - condition: contains(variables['CONFIG'], 'vs2008') - displayName: Install vcpython27.msi (if needed) - - # Cygwin's git breaks conda-build. (See https://github.com/conda-forge/conda-smithy-feedstock/pull/2.) - # - script: rmdir C:\cygwin /s /q - # continueOnError: true - - - powershell: | - Set-PSDebug -Trace 1 - - $batchcontent = @" - ECHO ON - SET vcpython=C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0 - - DIR "%vcpython%" - - CALL "%vcpython%\vcvarsall.bat" %* - "@ - - $batchDir = "C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0\VC" - $batchPath = "$batchDir" + "\vcvarsall.bat" - New-Item -Path $batchPath -ItemType "file" -Force - - Set-Content -Value $batchcontent -Path $batchPath + - task: PythonScript@0 + displayName: 'Download Miniforge' + inputs: + scriptSource: inline + script: | + import urllib.request + url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Windows-x86_64.exe' + path = r"$(Build.ArtifactStagingDirectory)/Miniforge.exe" + urllib.request.urlretrieve(url, path) - Get-ChildItem -Path $batchDir + - script: | + start /wait "" %BUILD_ARTIFACTSTAGINGDIRECTORY%\Miniforge.exe /InstallationType=JustMe /RegisterPython=0 /S /D=C:\Miniforge + displayName: Install Miniforge - Get-ChildItem -Path ($batchDir + '\..') + - powershell: Write-Host "##vso[task.prependpath]C:\Miniforge\Scripts" + displayName: Add conda to PATH - condition: contains(variables['CONFIG'], 'vs2008') - displayName: Patch vs2008 (if needed) - - task: CondaEnvironment@1 - inputs: - packageSpecs: 'python=3.9 conda-build conda pip boa conda-forge-ci-setup=3' # Optional - installOptions: "-c conda-forge" - updateConda: true - displayName: Install conda-build and activate environment + - script: | + call activate base + mamba.exe install 'python=3.9' conda-build conda pip boa 'conda-forge-ci-setup=3' -c conda-forge --strict-channel-priority --yes + displayName: Install conda-build - script: set PYTHONUNBUFFERED=1 displayName: Set PYTHONUNBUFFERED @@ -71,25 +53,16 @@ jobs: call activate base run_conda_forge_build_setup displayName: conda-forge build setup - - - # Special cased version setting some more things! - - script: | - call activate base - conda.exe build "recipe" -m .ci_support\%CONFIG%.yaml - displayName: Build recipe (vs2008) - env: - VS90COMNTOOLS: "C:\\Program Files (x86)\\Common Files\\Microsoft\\Visual C++ for Python\\9.0\\VC\\bin" - PYTHONUNBUFFERED: 1 - condition: contains(variables['CONFIG'], 'vs2008') - script: | call activate base + if EXIST LICENSE.txt ( + copy LICENSE.txt "recipe\\recipe-scripts-license.txt" + ) conda.exe mambabuild "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables displayName: Build recipe env: PYTHONUNBUFFERED: 1 - condition: not(contains(variables['CONFIG'], 'vs2008')) - script: | set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" call activate base diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 98938bad..5702e61b 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -35,11 +35,11 @@ jpeg: krb5: - '1.19' libblas: -- 3.8 *netlib +- 3.9 *netlib libcurl: - '7' liblapack: -- 3.8 *netlib +- 3.9 *netlib libpng: - '1.6' libssh2: diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml index 415186dd..8607ecfc 100644 --- a/.ci_support/linux_aarch64_.yaml +++ b/.ci_support/linux_aarch64_.yaml @@ -39,11 +39,11 @@ jpeg: krb5: - '1.19' libblas: -- 3.8 *netlib +- 3.9 *netlib libcurl: - '7' liblapack: -- 3.8 *netlib +- 3.9 *netlib libpng: - '1.6' libssh2: diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index 3be0e2c2..e5c66687 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -35,11 +35,11 @@ jpeg: krb5: - '1.19' libblas: -- 3.8 *netlib +- 3.9 *netlib libcurl: - '7' liblapack: -- 3.8 *netlib +- 3.9 *netlib libpng: - '1.6' libssh2: diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index 73f28ff0..eeca79dd 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -5,7 +5,7 @@ bzip2: c_compiler: - clang c_compiler_version: -- '12' +- '13' cairo: - '1.16' channel_sources: @@ -15,7 +15,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '12' +- '13' fortran_compiler: - gfortran fortran_compiler_version: @@ -33,13 +33,13 @@ jpeg: krb5: - '1.19' libblas: -- 3.8 *netlib +- 3.9 *netlib libcurl: - '7' libiconv: - '1.16' liblapack: -- 3.8 *netlib +- 3.9 *netlib libpng: - '1.6' libssh2: @@ -49,7 +49,7 @@ libtiff: libxml2: - '2.9' llvm_openmp: -- '12' +- '13' macos_machine: - x86_64-apple-darwin13.4.0 ncurses: diff --git a/.ci_support/osx_arm64_.yaml b/.ci_support/osx_arm64_.yaml index 016ee4c0..1c7e37a3 100644 --- a/.ci_support/osx_arm64_.yaml +++ b/.ci_support/osx_arm64_.yaml @@ -5,7 +5,7 @@ bzip2: c_compiler: - clang c_compiler_version: -- '12' +- '13' cairo: - '1.16' channel_sources: @@ -15,7 +15,7 @@ channel_targets: cxx_compiler: - clangxx cxx_compiler_version: -- '12' +- '13' fortran_compiler: - gfortran fortran_compiler_version: @@ -49,7 +49,7 @@ libtiff: libxml2: - '2.9' llvm_openmp: -- '12' +- '13' macos_machine: - arm64-apple-darwin20.0.0 ncurses: diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index 2ac63e4e..1f6a6d85 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -3,9 +3,9 @@ channel_sources: channel_targets: - conda-forge main libblas: -- 3.8 *netlib +- 3.9 *netlib liblapack: -- 3.8 *netlib +- 3.9 *netlib m2w64_c_compiler: - m2w64-toolchain m2w64_cxx_compiler: diff --git a/.circleci/config.yml b/.circleci/config.yml index 6ad461b8..3e61aa24 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,7 +7,8 @@ version: 2 jobs: build: working_directory: ~/test - machine: true + machine: + image: ubuntu-2004:current steps: - run: # The Circle-CI build should not be active, but if this is not true for some reason, do a fast finish. diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 45a8df45..721b85c4 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -24,7 +24,10 @@ export CONFIG_FILE="${CI_SUPPORT}/${CONFIG}.yaml" cat >~/.condarc < /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}" diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 3d855059..736a39a0 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -61,6 +61,10 @@ if [[ "${HOST_PLATFORM}" != "${BUILD_PLATFORM}" ]]; then fi +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}" diff --git a/LICENSE.txt b/LICENSE.txt index 6ec14012..2ec51d75 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,13 +1,27 @@ -BSD 3-clause license +BSD-3-Clause license Copyright (c) 2015-2022, conda-forge contributors All rights reserved. -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: -1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. -2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. diff --git a/build-locally.py b/build-locally.py index eec38a04..3f4b7a79 100755 --- a/build-locally.py +++ b/build-locally.py @@ -86,12 +86,19 @@ def main(args=None): verify_config(ns) setup_environment(ns) - if ns.config.startswith("linux") or ( - ns.config.startswith("osx") and platform.system() == "Linux" - ): - run_docker_build(ns) - elif ns.config.startswith("osx"): - run_osx_build(ns) + try: + if ns.config.startswith("linux") or ( + ns.config.startswith("osx") and platform.system() == "Linux" + ): + run_docker_build(ns) + elif ns.config.startswith("osx"): + run_osx_build(ns) + finally: + recipe_license_file = os.path.join( + "recipe", "recipe-scripts-license.txt" + ) + if os.path.exists(recipe_license_file): + os.remove(recipe_license_file) if __name__ == "__main__": From 9a46d59f6cb34cb98a5e4d0cd467954cb26480f9 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Mon, 8 Aug 2022 17:55:26 -0700 Subject: [PATCH 2/5] Skip Windows --- recipe/meta.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index e9a9eeb5..807bf5d4 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -28,6 +28,7 @@ source: - 0018-Use-LAPACK_LDFLAGS-in-Rlapack_la_LIBADD.patch build: + skip: true # [win] number: 6 outputs: From 7759923a9bdf7e230f36e2f2f3df59144e69a573 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Mon, 8 Aug 2022 17:55:27 -0700 Subject: [PATCH 3/5] MNT: Re-rendered with conda-build 3.21.9, conda-smithy 3.21.1, and conda-forge-pinning 2022.08.08.19.07.35 --- .azure-pipelines/azure-pipelines-win.yml | 82 ------------------------ .ci_support/win_64_.yaml | 16 ----- README.md | 7 -- azure-pipelines.yml | 1 - 4 files changed, 106 deletions(-) delete mode 100755 .azure-pipelines/azure-pipelines-win.yml delete mode 100644 .ci_support/win_64_.yaml diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml deleted file mode 100755 index 8a0bcaec..00000000 --- a/.azure-pipelines/azure-pipelines-win.yml +++ /dev/null @@ -1,82 +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: win - pool: - vmImage: windows-2019 - strategy: - matrix: - win_64_: - CONFIG: win_64_ - UPLOAD_PACKAGES: 'True' - timeoutInMinutes: 360 - variables: - CONDA_BLD_PATH: D:\\bld\\ - - steps: - - task: PythonScript@0 - displayName: 'Download Miniforge' - inputs: - scriptSource: inline - script: | - import urllib.request - url = 'https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-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 activate base - mamba.exe install 'python=3.9' conda-build conda pip boa 'conda-forge-ci-setup=3' -c conda-forge --strict-channel-priority --yes - displayName: Install conda-build - - - script: set PYTHONUNBUFFERED=1 - displayName: Set PYTHONUNBUFFERED - - # Configure the VM - - script: | - call activate base - setup_conda_rc .\ ".\recipe" .\.ci_support\%CONFIG%.yaml - displayName: conda-forge CI setup - - # Configure the VM. - - script: | - set "CI=azure" - call activate base - run_conda_forge_build_setup - displayName: conda-forge build setup - - - script: | - call activate base - if EXIST LICENSE.txt ( - copy LICENSE.txt "recipe\\recipe-scripts-license.txt" - ) - conda.exe mambabuild "recipe" -m .ci_support\%CONFIG%.yaml --suppress-variables - displayName: Build recipe - env: - PYTHONUNBUFFERED: 1 - - script: | - set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" - call activate base - validate_recipe_outputs "%FEEDSTOCK_NAME%" - displayName: Validate Recipe Outputs - - - script: | - set "GIT_BRANCH=%BUILD_SOURCEBRANCHNAME%" - set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" - call activate base - upload_package --validate --feedstock-name="%FEEDSTOCK_NAME%" .\ ".\recipe" .ci_support\%CONFIG%.yaml - displayName: Upload package - env: - BINSTAR_TOKEN: $(BINSTAR_TOKEN) - FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) - condition: and(succeeded(), not(eq(variables['UPLOAD_PACKAGES'], 'False')), not(eq(variables['Build.Reason'], 'PullRequest'))) \ No newline at end of file diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml deleted file mode 100644 index 1f6a6d85..00000000 --- a/.ci_support/win_64_.yaml +++ /dev/null @@ -1,16 +0,0 @@ -channel_sources: -- conda-forge -channel_targets: -- conda-forge main -libblas: -- 3.9 *netlib -liblapack: -- 3.9 *netlib -m2w64_c_compiler: -- m2w64-toolchain -m2w64_cxx_compiler: -- m2w64-toolchain -m2w64_fortran_compiler: -- m2w64-toolchain -target_platform: -- win-64 diff --git a/README.md b/README.md index 70e1e983..6cee714e 100644 --- a/README.md +++ b/README.md @@ -61,13 +61,6 @@ Current build status variant - - win_64 - - - variant - - diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6b346f50..33a441c1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,5 +4,4 @@ jobs: - template: ./.azure-pipelines/azure-pipelines-linux.yml - - template: ./.azure-pipelines/azure-pipelines-win.yml - template: ./.azure-pipelines/azure-pipelines-osx.yml \ No newline at end of file From b18a3a2a744dcef792f620ec5c532f06f5946189 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Mon, 8 Aug 2022 17:55:28 -0700 Subject: [PATCH 4/5] Use `impl` compilers (w/o activation) --- recipe/meta.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 807bf5d4..04d953eb 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -133,9 +133,12 @@ outputs: - _r-mutex 1.* anacondar_1 # Needed by R CMD javareconf - make # [not win] - - {{ compiler('fortran') }} # [not win] - - {{ c_compiler|default("blah") }}_{{ target_platform }} >={{ c_compiler_version|default("0") }} # [not win] - - {{ cxx_compiler|default("blah") }}_{{ target_platform }} >={{ cxx_compiler_version|default("0") }} # [not win] + - gcc_impl_{{ target_platform }} >={{ c_compiler_version|default("0") }} # [linux] + - gxx_impl_{{ target_platform }} >={{ cxx_compiler_version|default("0") }} # [linux] + - gfortran_impl_{{ target_platform }} # [linux] + - {{ c_compiler|default("blah") }}_{{ target_platform }} >={{ c_compiler_version|default("0") }} # [osx] + - {{ cxx_compiler|default("blah") }}_{{ target_platform }} >={{ cxx_compiler_version|default("0") }} # [osx] + - {{ compiler('fortran') }} # [osx] - {{ pin_compatible('llvm-openmp', max_pin=None) }} # [osx] - curl # [not win] - {{ native }}bzip2 # [win] From dfc21807cac68785ee90beab897499ee0bf754aa Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Mon, 8 Aug 2022 17:55:29 -0700 Subject: [PATCH 5/5] Bump build number to 7 --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 04d953eb..ee522348 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -29,7 +29,7 @@ source: build: skip: true # [win] - number: 6 + number: 7 outputs: - name: r-base