From 9a6b850dcaf2ae325983359e281845e8f547adda Mon Sep 17 00:00:00 2001 From: regro-cf-autotick-bot <36490558+regro-cf-autotick-bot@users.noreply.github.com> Date: Tue, 21 Jun 2022 07:04:10 +0000 Subject: [PATCH 1/7] updated v0.1.6 --- recipe/meta.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 2ae0313..37b05bb 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -1,5 +1,5 @@ {% set name = "libqdldl" %} -{% set version = "0.1.5" %} +{% set version = "0.1.6" %} package: name: {{ name }} @@ -7,7 +7,7 @@ package: source: - url: https://github.com/osqp/qdldl/archive/v{{ version }}.tar.gz - sha256: 2868b0e61b7424174e9adef3cb87478329f8ab2075211ef28fe477f29e0e5c99 + sha256: aeb1b2d76849c13e9803760a4c2e26194bf80dcc9614ae25ca6bcc404dc70d65 patches: - fix_build_shared_libs_and_windows_shared.patch @@ -38,7 +38,7 @@ about: home: https://github.com/osqp/qdldl license: Apache-2.0 license_file: LICENSE - summary: A free LDL factorisation routine. + summary: A free LDL factorisation routine. extra: recipe-maintainers: From 2ec95df313393ba2227c2dbe6bc46a695682e620 Mon Sep 17 00:00:00 2001 From: "conda-forge-webservices[bot]" <91080706+conda-forge-webservices[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 07:10:50 +0000 Subject: [PATCH 2/7] MNT: Re-rendered with conda-build 3.21.9, conda-smithy 3.20.0, and conda-forge-pinning 2022.06.20.20.00.31 --- .azure-pipelines/azure-pipelines-linux.yml | 9 ++- .azure-pipelines/azure-pipelines-osx.yml | 5 ++ .azure-pipelines/azure-pipelines-win.yml | 72 +++++++--------------- .ci_support/README | 7 ++- .ci_support/linux_64_.yaml | 13 ++-- .ci_support/osx_64_.yaml | 9 +-- .ci_support/win_64_.yaml | 2 +- .circleci/config.yml | 3 +- .gitattributes | 2 + .scripts/build_steps.sh | 14 +++-- .scripts/run_docker_build.sh | 9 ++- .scripts/run_osx_build.sh | 48 ++++++++++----- LICENSE.txt | 2 +- README.md | 60 +++++++++++++----- build-locally.py | 8 ++- 15 files changed, 150 insertions(+), 113 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index adce9a5..974e878 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -5,13 +5,13 @@ jobs: - job: linux pool: - vmImage: ubuntu-16.04 + vmImage: ubuntu-latest strategy: matrix: linux_64_: CONFIG: linux_64_ UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 timeoutInMinutes: 360 steps: @@ -32,6 +32,11 @@ jobs: export CI=azure 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: diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 0c89240..d7c37d2 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -20,6 +20,11 @@ jobs: 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: diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index 1fd8ea1..09ab551 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -5,7 +5,7 @@ jobs: - job: win pool: - vmImage: vs2017-win2016 + vmImage: windows-2019 strategy: matrix: win_64_: @@ -16,46 +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 - - Get-ChildItem -Path $batchDir + - 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 - condition: contains(variables['CONFIG'], 'vs2008') - displayName: Patch vs2008 (if needed) + - powershell: Write-Host "##vso[task.prependpath]C:\Miniforge\Scripts" + displayName: Add conda to PATH - - task: CondaEnvironment@1 - inputs: - packageSpecs: 'python=3.6 conda-build conda "conda-forge-ci-setup=3" pip' # 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 @@ -74,23 +55,12 @@ jobs: 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 - conda.exe build "recipe" -m .ci_support\%CONFIG%.yaml + 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 @@ -107,4 +77,4 @@ jobs: BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) - condition: and(succeeded(), not(eq(variables['UPLOAD_PACKAGES'], 'False'))) \ No newline at end of file + 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/README b/.ci_support/README index e4e2dce..a47316b 100644 --- a/.ci_support/README +++ b/.ci_support/README @@ -1 +1,6 @@ -This file is automatically generated by conda-smithy. To change any matrix elements, you should change conda-smithy's input conda_build_config.yaml and re-render the recipe, rather than editing these files directly. \ No newline at end of file +This file is automatically generated by conda-smithy. If any +particular build configuration is expected, but it is not found, +please make sure all dependencies are satisfiable. To add/modify any +matrix elements, you should create/change conda-smithy's input +recipe/conda_build_config.yaml and re-render the recipe, rather than +editing these files directly. diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index 0f6e58e..a3ad2eb 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -1,23 +1,18 @@ c_compiler: - gcc c_compiler_version: -- '9' +- '10' cdt_name: - cos6 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: - gxx cxx_compiler_version: -- '9' +- '10' docker_image: -- quay.io/condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-cos7-x86_64 target_platform: - linux-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version -- - cdt_name - - docker_image diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index 09baadb..bba231d 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -3,19 +3,16 @@ MACOSX_DEPLOYMENT_TARGET: c_compiler: - clang c_compiler_version: -- '11' +- '13' channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: - clangxx cxx_compiler_version: -- '11' +- '13' macos_machine: - x86_64-apple-darwin13.4.0 target_platform: - osx-64 -zip_keys: -- - c_compiler_version - - cxx_compiler_version diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index feb31b8..d1de257 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -1,7 +1,7 @@ c_compiler: - vs2017 channel_sources: -- conda-forge,defaults +- conda-forge channel_targets: - conda-forge main cxx_compiler: diff --git a/.circleci/config.yml b/.circleci/config.yml index 6ad461b..3e61aa2 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/.gitattributes b/.gitattributes index 9060b27..7f32763 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,6 +9,7 @@ bld.bat text eol=crlf # github helper pieces to make some files not show up in diffs automatically .azure-pipelines/* linguist-generated=true .circleci/* linguist-generated=true +.ci_support/README linguist-generated=true .drone/* linguist-generated=true .drone.yml linguist-generated=true .github/* linguist-generated=true @@ -18,6 +19,7 @@ bld.bat text eol=crlf .gitignore linguist-generated=true .travis.yml linguist-generated=true .scripts/* linguist-generated=true +.woodpecker.yml linguist-generated=true LICENSE.txt linguist-generated=true README.md linguist-generated=true azure-pipelines.yml linguist-generated=true diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 71a0686..d71d6ae 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -5,6 +5,8 @@ # 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 @@ -25,9 +27,12 @@ conda-build: root-dir: ${FEEDSTOCK_ROOT}/build_artifacts CONDARC -BUILD_CMD=build -conda install --yes --quiet "conda-forge-ci-setup=3" conda-build pip ${GET_BOA:-} -c conda-forge + +mamba install --update-specs --yes --quiet --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 # set up the condarc setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" @@ -38,6 +43,7 @@ source run_conda_forge_build_setup make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" + ( endgroup "Configuring conda" ) 2> /dev/null if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then @@ -51,7 +57,7 @@ if [[ "${BUILD_WITH_CONDA_DEBUG:-0}" == 1 ]]; then # Drop into an interactive shell /bin/bash else - conda $BUILD_CMD "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ + conda mambabuild "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ --suppress-variables ${EXTRA_CB_OPTIONS:-} \ --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" ( startgroup "Validating outputs" ) 2> /dev/null @@ -62,7 +68,7 @@ else ( startgroup "Uploading packages" ) 2> /dev/null - if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then + if [[ "${UPLOAD_PACKAGES}" != "False" ]] && [[ "${IS_PR_BUILD}" == "False" ]]; then upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" fi diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh index 244ccd1..9236239 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -14,7 +14,7 @@ set -xeo pipefail THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )" PROVIDER_DIR="$(basename $THISDIR)" -FEEDSTOCK_ROOT=$(cd "$(dirname "$0")/.."; pwd;) +FEEDSTOCK_ROOT="$( cd "$( dirname "$0" )/.." >/dev/null && pwd )" RECIPE_ROOT="${FEEDSTOCK_ROOT}/recipe" if [ -z ${FEEDSTOCK_NAME} ]; then @@ -75,12 +75,15 @@ fi ( 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 \ @@ -91,9 +94,9 @@ docker run ${DOCKER_RUN_ARGS} \ -e BINSTAR_TOKEN \ -e FEEDSTOCK_TOKEN \ -e STAGING_BINSTAR_TOKEN \ - $DOCKER_IMAGE \ + "${DOCKER_IMAGE}" \ bash \ - /home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh + "/home/conda/feedstock_root/${PROVIDER_DIR}/build_steps.sh" # verify that the end of the script was reached test -f "$DONE_CANARY" diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 96d0278..19843e0 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -1,5 +1,7 @@ #!/usr/bin/env bash +# -*- mode: jinja-shell -*- + source .scripts/logging_utils.sh set -xe @@ -9,21 +11,23 @@ MINIFORGE_HOME=${MINIFORGE_HOME:-${HOME}/miniforge3} ( startgroup "Installing a fresh version of Miniforge" ) 2> /dev/null MINIFORGE_URL="https://github.com/conda-forge/miniforge/releases/latest/download" -MINIFORGE_FILE="Miniforge3-MacOSX-x86_64.sh" +MINIFORGE_FILE="Mambaforge-MacOSX-$(uname -m).sh" curl -L -O "${MINIFORGE_URL}/${MINIFORGE_FILE}" +rm -rf ${MINIFORGE_HOME} bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} ( endgroup "Installing a fresh version of Miniforge" ) 2> /dev/null ( startgroup "Configuring conda" ) 2> /dev/null -BUILD_CMD=build - source ${MINIFORGE_HOME}/etc/profile.d/conda.sh conda activate base -echo -e "\n\nInstalling conda-forge-ci-setup=3 and conda-build." -conda install -n base --quiet --yes "conda-forge-ci-setup=3" conda-build pip ${GET_BOA:-} +echo -e "\n\nInstalling ['conda-forge-ci-setup=3'] and conda-build." +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 @@ -49,21 +53,35 @@ 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 -conda $BUILD_CMD ./recipe -m ./.ci_support/${CONFIG}.yaml --suppress-variables --clobber-file ./.ci_support/clobber_${CONFIG}.yaml ${EXTRA_CB_OPTIONS:-} -( startgroup "Validating outputs" ) 2> /dev/null -validate_recipe_outputs "${FEEDSTOCK_NAME}" +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 -( endgroup "Validating outputs" ) 2> /dev/null + # Drop into an interactive shell + /bin/bash +else + conda mambabuild ./recipe -m ./.ci_support/${CONFIG}.yaml \ + --suppress-variables ${EXTRA_CB_OPTIONS:-} \ + --clobber-file ./.ci_support/clobber_${CONFIG}.yaml + ( startgroup "Validating outputs" ) 2> /dev/null -( startgroup "Uploading packages" ) 2> /dev/null + validate_recipe_outputs "${FEEDSTOCK_NAME}" -if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then - upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" ./ ./recipe ./.ci_support/${CONFIG}.yaml -fi + ( 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 \ No newline at end of file + ( endgroup "Uploading packages" ) 2> /dev/null +fi \ No newline at end of file diff --git a/LICENSE.txt b/LICENSE.txt index ed3f451..6ec1401 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,5 +1,5 @@ BSD 3-clause license -Copyright (c) 2015-2021, conda-forge contributors +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: diff --git a/README.md b/README.md index 587ded9..ff86907 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Home: https://github.com/osqp/qdldl Package license: Apache-2.0 -Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/libqdldl-feedstock/blob/master/LICENSE.txt) +Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/libqdldl-feedstock/blob/main/LICENSE.txt) Summary: A free LDL factorisation routine. @@ -20,8 +20,8 @@ Current build status
- - + + @@ -29,22 +29,22 @@ Current build status @@ -72,23 +72,49 @@ conda config --add channels conda-forge conda config --set channel_priority strict ``` -Once the `conda-forge` channel has been enabled, `libqdldl` can be installed with: +Once the `conda-forge` channel has been enabled, `libqdldl` can be installed with `conda`: ``` conda install libqdldl ``` -It is possible to list all of the versions of `libqdldl` available on your platform with: +or with `mamba`: + +``` +mamba install libqdldl +``` + +It is possible to list all of the versions of `libqdldl` available on your platform with `conda`: ``` conda search libqdldl --channel conda-forge ``` +or with `mamba`: + +``` +mamba search libqdldl --channel conda-forge +``` + +Alternatively, `mamba repoquery` may provide more information: + +``` +# Search all versions available on your platform: +mamba repoquery search libqdldl --channel conda-forge + +# List packages depending on `libqdldl`: +mamba repoquery whoneeds libqdldl --channel conda-forge + +# List dependencies of `libqdldl`: +mamba repoquery depends libqdldl --channel conda-forge +``` + About conda-forge ================= -[![Powered by NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](http://numfocus.org) +[![Powered by +NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](https://numfocus.org) conda-forge is a community-led conda channel of installable packages. In order to provide high-quality builds, the process has been automated into the @@ -98,10 +124,12 @@ for each of the installable packages. Such a repository is known as a *feedstock A feedstock is made up of a conda recipe (the instructions on what and how to build the package) and the necessary configurations for automatic building using freely available continuous integration services. Thanks to the awesome service provided by -[CircleCI](https://circleci.com/), [AppVeyor](https://www.appveyor.com/) -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/) channel for Linux, Windows and OSX respectively. +[Azure](https://azure.microsoft.com/en-us/services/devops/), [GitHub](https://github.com/), +[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/) +channel for Linux, Windows and OSX respectively. To manage the continuous integration and simplify feedstock maintenance [conda-smithy](https://github.com/conda-forge/conda-smithy) has been developed. diff --git a/build-locally.py b/build-locally.py index 00eeb34..eec38a0 100755 --- a/build-locally.py +++ b/build-locally.py @@ -13,6 +13,7 @@ def setup_environment(ns): os.environ["CONFIG"] = ns.config os.environ["UPLOAD_PACKAGES"] = "False" + os.environ["IS_PR_BUILD"] = "True" if ns.debug: os.environ["BUILD_WITH_CONDA_DEBUG"] = "1" if ns.output_id: @@ -60,11 +61,12 @@ def verify_config(ns): raise ValueError( f"only Linux/macOS configs currently supported, got {ns.config}" ) - elif ns.config.startswith("osx") and platform.system() == "Darwin": + 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=/opt'" - "to download the SDK automatically to '/opt/MacOSX.sdk'" + "Need OSX_SDK_DIR env variable set. Run 'export OSX_SDK_DIR=SDKs' " + "to download the SDK automatically to 'SDKs/MacOSX.sdk'. " + "Setting this variable implies agreement to the licensing terms of the SDK by Apple." ) From 5d8ca8426908d8d5639a6e1356745b39f3ea65d6 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 21 Jun 2022 09:45:12 +0200 Subject: [PATCH 3/7] Update meta.yaml --- recipe/meta.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 37b05bb..b6f901c 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -8,8 +8,6 @@ package: source: - url: https://github.com/osqp/qdldl/archive/v{{ version }}.tar.gz sha256: aeb1b2d76849c13e9803760a4c2e26194bf80dcc9614ae25ca6bcc404dc70d65 - patches: - - fix_build_shared_libs_and_windows_shared.patch build: number: 0 From 6c0d35b81e0d91afddfbab083c60d40b5070e43f Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 21 Jun 2022 09:46:59 +0200 Subject: [PATCH 4/7] Update build.sh --- recipe/build.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/recipe/build.sh b/recipe/build.sh index 4c17968..f4d5615 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -7,8 +7,10 @@ cmake ${CMAKE_ARGS} \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ -DBUILD_SHARED_LIBS=ON \ + -DQDLDL_BUILD_SHARED_LIB=ON \ + -DQDLDL_BUILD_STATIC_LIB=OFF \ -DBUILD_TESTING=ON \ - -DUNITTESTS=ON \ + -DQDLDL_UNITTESTS=ON \ .. cmake --build . --config Release --parallel ${CPU_COUNT} From 6b1d7b02634ff498dcc4c451cd92401f64121043 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 21 Jun 2022 09:48:55 +0200 Subject: [PATCH 5/7] Update build.sh --- recipe/build.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/recipe/build.sh b/recipe/build.sh index f4d5615..9a68990 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -3,18 +3,22 @@ mkdir build cd build +# Initially compile with QDLDL_BUILD_STATIC_LIB ON to run tests cmake ${CMAKE_ARGS} \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True \ -DBUILD_SHARED_LIBS=ON \ -DQDLDL_BUILD_SHARED_LIB=ON \ - -DQDLDL_BUILD_STATIC_LIB=OFF \ + -DQDLDL_BUILD_STATIC_LIB=ON \ -DBUILD_TESTING=ON \ -DQDLDL_UNITTESTS=ON \ .. cmake --build . --config Release --parallel ${CPU_COUNT} -cmake --build . --config Release --parallel ${CPU_COUNT} --target install if [[ "${CONDA_BUILD_CROSS_COMPILATION}" != "1" ]]; then ctest --output-on-failure -C Release fi + +# Re-configure with QDLDL_BUILD_STATIC_LIB OFF to install only shared library +cmake -DQDLDL_BUILD_SHARED_LIB=ON -DQDLDL_BUILD_STATIC_LIB=OFF . +cmake --build . --config Release --parallel ${CPU_COUNT} --target install From 1dd77fa2361046e71454f4db2b4e4668876b3573 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 21 Jun 2022 09:50:32 +0200 Subject: [PATCH 6/7] Update bld.bat --- recipe/bld.bat | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/recipe/bld.bat b/recipe/bld.bat index cc1ac87..be1ef53 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -1,14 +1,17 @@ mkdir build cd build +:: Initially configure with QDLDL_BUILD_STATIC_LIB ON to run tests cmake ^ -G "NMake Makefiles" ^ -DCMAKE_INSTALL_PREFIX=%LIBRARY_PREFIX% ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP=True ^ -DBUILD_SHARED_LIBS=ON ^ + -DQDLDL_BUILD_SHARED_LIB=ON ^ + -DQDLDL_BUILD_STATIC_LIB=ON ^ -DBUILD_TESTING=ON ^ - -DUNITTESTS=OFF ^ + -DQDLDL_UNITTESTS=ON ^ %SRC_DIR% if errorlevel 1 exit 1 @@ -16,10 +19,14 @@ if errorlevel 1 exit 1 cmake --build . --config Release if errorlevel 1 exit 1 -:: Install. -cmake --build . --config Release --target install -if errorlevel 1 exit 1 - :: Test ctest --output-on-failure -C Release if errorlevel 1 exit 1 + +:: Re-configure with QDLDL_BUILD_STATIC_LIB OFF to install only shared library +cmake -DQDLDL_BUILD_SHARED_LIB=ON -DQDLDL_BUILD_STATIC_LIB=OFF . +if errorlevel 1 exit 1 + +:: Install. +cmake --build . --config Release --target install +if errorlevel 1 exit 1 From cd9128915707f3ed2dd6be5eb25911eef5f973f0 Mon Sep 17 00:00:00 2001 From: Silvio Traversaro Date: Tue, 21 Jun 2022 09:50:41 +0200 Subject: [PATCH 7/7] Delete fix_build_shared_libs_and_windows_shared.patch --- ...build_shared_libs_and_windows_shared.patch | 73 ------------------- 1 file changed, 73 deletions(-) delete mode 100644 recipe/fix_build_shared_libs_and_windows_shared.patch diff --git a/recipe/fix_build_shared_libs_and_windows_shared.patch b/recipe/fix_build_shared_libs_and_windows_shared.patch deleted file mode 100644 index e82cfd7..0000000 --- a/recipe/fix_build_shared_libs_and_windows_shared.patch +++ /dev/null @@ -1,73 +0,0 @@ -From e093889e54bfba4676fe95ce0bbb3eb578ae74b3 Mon Sep 17 00:00:00 2001 -From: Silvio Traversaro -Date: Wed, 2 Jun 2021 23:12:42 +0200 -Subject: [PATCH] Respect BUILD_SHARED_LIBS and fix shared library on Windows - ---- - CMakeLists.txt | 33 ++++++++++----------------------- - 1 file changed, 10 insertions(+), 23 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 06c3d9c..e17300a 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -101,26 +101,6 @@ target_include_directories(qdldlobject PRIVATE ${PROJECT_SOURCE_DIR}/include) - - include(GNUInstallDirs) - --# Static library --add_library (qdldlstatic STATIC ${qdldl_src} ${qdldl_headers}) --# Give same name to static library output --set_target_properties(qdldlstatic PROPERTIES OUTPUT_NAME qdldl) -- --# Declare include directories for the cmake exported target --target_include_directories(qdldlstatic -- PUBLIC "$" -- "$/${CMAKE_INSTALL_INCLUDEDIR}/qdldl>") -- --# Install Static Library --# ---------------------------------------------- -- --install(TARGETS qdldlstatic -- EXPORT ${PROJECT_NAME} -- ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" -- LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" -- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") -- -- - # Install Headers - # ---------------------------------------------- - install(FILES ${qdldl_headers} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/qdldl") -@@ -128,21 +108,28 @@ install(FILES ${qdldl_headers} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/qdldl") - - # Install Shared Library - # ---------------------------------------------- --# Create qdldl shared library --add_library (qdldl SHARED ${qdldl_src} ${qdldl_headers}) -+# Create qdldl shared or static library, depending on BUILD_SHARED_LIBS -+add_library (qdldl ${qdldl_src} ${qdldl_headers}) -+ -+if(BUILD_SHARED_LIBS) -+ set_target_properties(qdldl PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE) -+endif() - - # Declare include directories for the cmake exported target - target_include_directories(qdldl - PUBLIC "$" - "$/${CMAKE_INSTALL_INCLUDEDIR}/qdldl>") - --# Install qdldl shared library -+# Install qdldl library - install(TARGETS qdldl - EXPORT ${PROJECT_NAME} - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") - -+# Add qdldlstatic alias -+add_library(qdldlstatic ALIAS qdldl) -+ - # Create demo executable (linked to static library) - add_executable (qdldl_example ${PROJECT_SOURCE_DIR}/examples/example.c) - target_link_libraries (qdldl_example qdldlstatic) -
linux_64 - - variant + + variant
osx_64 - - variant + + variant
win_64 - - variant + + variant