diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 89ab23f..b54e246 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -12,7 +12,6 @@ jobs: CONFIG: linux_64_ UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: condaforge/linux-anvil-comp7 - maxParallel: 8 timeoutInMinutes: 360 steps: diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 568ec85..0c89240 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -11,7 +11,6 @@ jobs: osx_64_: CONFIG: osx_64_ UPLOAD_PACKAGES: 'True' - maxParallel: 8 timeoutInMinutes: 360 steps: diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index ab8cb2b..1fd8ea1 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -11,7 +11,6 @@ jobs: win_64_: CONFIG: win_64_ UPLOAD_PACKAGES: 'True' - maxParallel: 4 timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ @@ -53,7 +52,7 @@ jobs: - task: CondaEnvironment@1 inputs: - packageSpecs: 'python=3.6 conda-build conda conda-forge::conda-forge-ci-setup=3 pip' # Optional + 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 diff --git a/.ci_support/linux_64_.yaml b/.ci_support/linux_64_.yaml index a91c383..17c0e4c 100644 --- a/.ci_support/linux_64_.yaml +++ b/.ci_support/linux_64_.yaml @@ -2,6 +2,8 @@ c_compiler: - gcc c_compiler_version: - '7' +cdt_name: +- cos6 channel_sources: - conda-forge,defaults channel_targets: @@ -37,5 +39,8 @@ readline: - '8.0' target_platform: - linux-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version zlib: - '1.2' diff --git a/.ci_support/linux_aarch64_.yaml b/.ci_support/linux_aarch64_.yaml index a6ff788..c6ec58e 100644 --- a/.ci_support/linux_aarch64_.yaml +++ b/.ci_support/linux_aarch64_.yaml @@ -3,7 +3,7 @@ BUILD: c_compiler: - gcc c_compiler_version: -- '7.5' +- '7' cdt_arch: - aarch64 cdt_name: @@ -15,7 +15,7 @@ channel_targets: cxx_compiler: - gxx cxx_compiler_version: -- '7.5' +- '7' docker_image: - condaforge/linux-anvil-aarch64 gmp: @@ -43,5 +43,8 @@ readline: - '8.0' target_platform: - linux-aarch64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version zlib: - '1.2' diff --git a/.ci_support/linux_ppc64le_.yaml b/.ci_support/linux_ppc64le_.yaml index fb645c6..2319ded 100644 --- a/.ci_support/linux_ppc64le_.yaml +++ b/.ci_support/linux_ppc64le_.yaml @@ -2,6 +2,8 @@ c_compiler: - gcc c_compiler_version: - '8' +cdt_name: +- cos7 channel_sources: - conda-forge,defaults channel_targets: @@ -37,5 +39,8 @@ readline: - '8.0' target_platform: - linux-ppc64le +zip_keys: +- - c_compiler_version + - cxx_compiler_version zlib: - '1.2' diff --git a/.ci_support/osx_64_.yaml b/.ci_support/osx_64_.yaml index 2c9053a..419e6c8 100644 --- a/.ci_support/osx_64_.yaml +++ b/.ci_support/osx_64_.yaml @@ -39,5 +39,8 @@ readline: - '8.0' target_platform: - osx-64 +zip_keys: +- - c_compiler_version + - cxx_compiler_version zlib: - '1.2' diff --git a/.ci_support/win_64_.yaml b/.ci_support/win_64_.yaml index 36a7e11..9669fb5 100644 --- a/.ci_support/win_64_.yaml +++ b/.ci_support/win_64_.yaml @@ -6,13 +6,9 @@ channel_targets: - conda-forge main cxx_compiler: - vs2017 -libffi: -- '3.2' openssl: - 1.1.1 pin_run_as_build: - libffi: - max_pin: x.x openssl: max_pin: x.x.x zlib: diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index 7167db8..aa9727b 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -19,7 +19,7 @@ conda-build: CONDARC -conda install --yes --quiet conda-forge-ci-setup=3 conda-build pip -c conda-forge +conda install --yes --quiet "conda-forge-ci-setup=3" conda-build pip -c conda-forge # set up the condarc setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" @@ -29,13 +29,25 @@ source run_conda_forge_build_setup # make the build number clobber make_build_number "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" -conda build "${RECIPE_ROOT}" -m "${CI_SUPPORT}/${CONFIG}.yaml" \ - --suppress-variables ${EXTRA_CB_OPTIONS:-} \ - --clobber-file "${CI_SUPPORT}/clobber_${CONFIG}.yaml" -validate_recipe_outputs "${FEEDSTOCK_NAME}" -if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then - upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" +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" + validate_recipe_outputs "${FEEDSTOCK_NAME}" + + if [[ "${UPLOAD_PACKAGES}" != "False" ]]; then + upload_package --validate --feedstock-name="${FEEDSTOCK_NAME}" "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" + fi fi 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 index e4d5bab..87ba4db 100755 --- a/.scripts/run_docker_build.sh +++ b/.scripts/run_docker_build.sh @@ -74,6 +74,8 @@ docker run ${DOCKER_RUN_ARGS} \ -e CI \ -e FEEDSTOCK_NAME \ -e CPU_COUNT \ + -e BUILD_WITH_CONDA_DEBUG \ + -e BUILD_OUTPUT_ID \ -e BINSTAR_TOKEN \ -e FEEDSTOCK_TOKEN \ -e STAGING_BINSTAR_TOKEN \ diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 982eae9..c299b79 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -23,7 +23,7 @@ source ${HOME}/miniforge3/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 +conda install -n base --quiet --yes "conda-forge-ci-setup=3" conda-build pip diff --git a/README.md b/README.md index c85406a..c07aece 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,14 @@ Home: https://www.ruby-lang.org/ Package license: BSD-2-Clause -Feedstock license: BSD-3-Clause +Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/ruby-feedstock/blob/master/LICENSE.txt) Summary: A dynamic, open source programming language with a focus on simplicity and productivity. +Development: https://svn.ruby-lang.org/cgi-bin/viewvc.cgi/ + +Documentation: https://www.ruby-lang.org/en/documentation/ + A dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write. diff --git a/build-locally.py b/build-locally.py index 8f7ecca..3453cfe 100755 --- a/build-locally.py +++ b/build-locally.py @@ -12,6 +12,10 @@ def setup_environment(ns): os.environ["CONFIG"] = ns.config os.environ["UPLOAD_PACKAGES"] = "False" + if ns.debug: + os.environ["BUILD_WITH_CONDA_DEBUG"] = "1" + if ns.output_id: + os.environ["BUILD_OUTPUT_ID"] = ns.output_id def run_docker_build(ns): @@ -51,6 +55,14 @@ def verify_config(ns): def main(args=None): p = ArgumentParser("build-locally") p.add_argument("config", default=None, nargs="?") + 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." + ) ns = p.parse_args(args=args) verify_config(ns) diff --git a/recipe/fix-inline-redefinition-msvc.patch b/recipe/fix-inline-redefinition-msvc.patch new file mode 100644 index 0000000..a37448e --- /dev/null +++ b/recipe/fix-inline-redefinition-msvc.patch @@ -0,0 +1,28 @@ +From 49bb2e64ccca130f8e1a0b6ad36d442c1ad44ed7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E5=8D=9C=E9=83=A8=E6=98=8C=E5=B9=B3?= + +Date: Sat, 15 Feb 2020 18:30:53 +0900 +Subject: [PATCH] avoid defining inline + +Recent (since 2012 maybe?) MSVC ships a header named xkeycheck.h, which +(kindly!) aborts compilation on redefinition of C++ keywords. Let's not +define this in case of C++. +--- + win32/Makefile.sub | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/win32/Makefile.sub b/win32/Makefile.sub +index ea5789fd3e9d..bd350dcd3175 100644 +--- a/win32/Makefile.sub ++++ b/win32/Makefile.sub +@@ -860,8 +860,8 @@ $(CONFIG_H): $(MKFILES) $(srcdir)/win32/Makefile.sub $(win_srcdir)/Makefile.sub + #define RUBY_SETJMP(env) _setjmp(env) + #define RUBY_LONGJMP(env,val) longjmp(env,val) + #define RUBY_JMP_BUF jmp_buf +-#define inline __inline + #ifndef __cplusplus ++#define inline __inline + !if $(MSC_VER) >= 1800 + #define restrict __restrict + !else + diff --git a/recipe/meta.yaml b/recipe/meta.yaml index f15e8b0..d06a332 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -12,9 +12,10 @@ source: patches: # Patches/work-arounds for passing make check - disable-backtrace-with-lines.patch + - fix-inline-redefinition-msvc.patch # [win] build: - number: 0 + number: 1 track_features: - rb{{ major_minor | replace(".", "") }} run_exports: