From 10e12f7b471e91b41f6b007406a5221930e87e18 Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 11:46:56 +0100 Subject: [PATCH 01/14] Bump build number --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index e7fa10e..ab19df5 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -12,7 +12,7 @@ source: sha256: {{ sha256 }} build: - number: 0 + number: 1 entry_points: - pycc = numba.pycc:main - numba = numba.misc.numba_entry:main From 6c49dd0f0ba242fc677e0b00f41dad807bc5760d Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 11:46:57 +0100 Subject: [PATCH 02/14] Remove obsolete skip for py<37 --- recipe/meta.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index ab19df5..8e92069 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -24,7 +24,6 @@ build: # tbb-devel triggers hard dependency on tbb, this is not the case. - tbb skip: true # [python_impl == 'pypy'] - skip: true # [py<37] requirements: build: From b1de8fc9cf47a4a9302ce0f8d11f6df33b65e7e7 Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 11:46:57 +0100 Subject: [PATCH 03/14] Remove redundant llvm-openmp test dependency llvm-openmp uses strong run_exports entry as as such is a run dependency --- recipe/meta.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 8e92069..47abd6a 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -77,7 +77,6 @@ test: - ipython - setuptools - tbb >=2021.0 - - llvm-openmp # [osx] # Need these for AOT. Do not init msvc as it may not be present - {{ compiler('c') }} # [not win] - {{ compiler('cxx') }} # [not win] From d821153c6db1637aeea4fa061a871a5d58124cfc Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 11:46:57 +0100 Subject: [PATCH 04/14] Use pin_compatible for tbb So we can have the version constraint in one place. --- recipe/meta.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 47abd6a..c5efdd9 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -52,7 +52,7 @@ requirements: - setuptools run_constrained: - - tbb 2021.* # [not (armv6l or armv7l or aarch64 or linux32 or ppc64le)] + - {{ pin_compatible('tbb-devel', min_pin='x', max_pin='x') | replace('-devel', '') }} # [not (armv6l or armv7l or aarch64 or linux32 or ppc64le)] # avoid confusion from openblas bugs - libopenblas !=0.3.6 # [x86_64] - libopenblas >=0.3.18, !=0.3.20 # [arm64] @@ -76,7 +76,7 @@ test: - scipy - ipython - setuptools - - tbb >=2021.0 + - {{ pin_compatible('tbb-devel', min_pin='x', max_pin='x') | replace('-devel', '') }} # Need these for AOT. Do not init msvc as it may not be present - {{ compiler('c') }} # [not win] - {{ compiler('cxx') }} # [not win] From 98641b7a0b5b0d719d015ba89c212f6f9368af2f Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 11:46:57 +0100 Subject: [PATCH 05/14] Remove platform selectors from run_constrained tbb 1. Recipe was inconsistent since selectors were missing for tbb-devel (so we probably wanted the run_constrained everywhere anyway). 2. 32-bit platform selectors are removed in upstream recipe for >=0.57. 3. aarch64/ppc64le TBB available on conda-forge/anaconda for a while now --- recipe/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/meta.yaml b/recipe/meta.yaml index c5efdd9..f9df6d2 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -52,7 +52,7 @@ requirements: - setuptools run_constrained: - - {{ pin_compatible('tbb-devel', min_pin='x', max_pin='x') | replace('-devel', '') }} # [not (armv6l or armv7l or aarch64 or linux32 or ppc64le)] + - {{ pin_compatible('tbb-devel', min_pin='x', max_pin='x') | replace('-devel', '') }} # avoid confusion from openblas bugs - libopenblas !=0.3.6 # [x86_64] - libopenblas >=0.3.18, !=0.3.20 # [arm64] From 06c16ccb3c26ca3170cafde545e606c78470bf13 Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 11:46:57 +0100 Subject: [PATCH 06/14] Use newer build container This was introduced to fix an issue that turned out to be actually only relevant for pkgs/main::numba but not our conda-forge::numba builds. refs: - https://github.com/conda-forge/numba-feedstock/issues/89#issuecomment-1323405834 --- recipe/conda_build_config.yaml | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 recipe/conda_build_config.yaml diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml deleted file mode 100644 index db19657..0000000 --- a/recipe/conda_build_config.yaml +++ /dev/null @@ -1,2 +0,0 @@ -docker_image: # [os.environ.get("BUILD_PLATFORM", "").startswith("linux-")] - - quay.io/condaforge/linux-anvil-comp7 # [os.environ.get("BUILD_PLATFORM") == "linux-64"] From bcee1e10143baeb7acb8c959996496a1bce0cbbd Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 11:46:57 +0100 Subject: [PATCH 07/14] Compose runtests cmd more uniformly across systems --- recipe/run_test.sh | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/recipe/run_test.sh b/recipe/run_test.sh index f799d37..8f5a5b2 100644 --- a/recipe/run_test.sh +++ b/recipe/run_test.sh @@ -6,12 +6,18 @@ export NUMBA_DEVELOPER_MODE=1 export NUMBA_DISABLE_ERROR_MESSAGE_HIGHLIGHTING=1 export PYTHONFAULTHANDLER=1 +runtests=( + python -m numba.runtests + -b + --exclude-tags='long_running' +) + unamestr=`uname` if [[ "$unamestr" == 'Linux' ]]; then - SEGVCATCH=catchsegv + runtests=(catchsegv "${runtests[@]}") export CC="${CC} -pthread" elif [[ "$unamestr" == 'Darwin' ]]; then - SEGVCATCH="" + : else echo Error fi @@ -20,11 +26,11 @@ fi # occur on high core count systems archstr=`uname -m` if [[ "$archstr" == 'ppc64le' ]]; then - TEST_NPROCS=1 + runtests+=(-m 1) elif [[ "$archstr" == 'aarch64' ]]; then - TEST_NPROCS=4 + runtests+=(-m 4) else - TEST_NPROCS=${CPU_COUNT} + runtests+=(-m ${CPU_COUNT}) fi # Disable NumPy dispatching to AVX512_SKX feature extensions if the chip is @@ -52,13 +58,15 @@ numba -s python -m numba.tests.test_runtests if [[ "$archstr" == 'aarch64' ]] || [[ "$archstr" == "ppc64le" ]]; then - echo 'Running only a slice of tests' - $SEGVCATCH python -m numba.runtests -b -j --random='0.15' --exclude-tags='long_running' -m $TEST_NPROCS -- numba.tests + echo 'Running only a slice of tests' + runtests+=(-j --random='0.15' -- numba.tests) # Else run the whole test suite else - echo 'Running all the tests except long_running' - echo "Running: $SEGVCATCH python -m numba.runtests -b -m $TEST_NPROCS -- $TESTS_TO_RUN" -$SEGVCATCH python -m numba.runtests -b --exclude-tags='long_running' -m $TEST_NPROCS -- $TESTS_TO_RUN + echo 'Running all the tests except long_running' + runtests+=(--) fi +echo "Running: ${runtests[*]}" +"${runtests[@]}" + pip check From 48402f3d2cf8d78ebb44b2c69b99839da0c8fd87 Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 11:46:57 +0100 Subject: [PATCH 08/14] Try verbose tests to counter Travis early exits --- recipe/run_test.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/recipe/run_test.sh b/recipe/run_test.sh index 8f5a5b2..d916a47 100644 --- a/recipe/run_test.sh +++ b/recipe/run_test.sh @@ -58,6 +58,10 @@ numba -s python -m numba.tests.test_runtests if [[ "$archstr" == 'aarch64' ]] || [[ "$archstr" == "ppc64le" ]]; then + # Run tests verbosely to avoid Travis CI from killing it early + if [[ "$archstr" == "ppc64le" ]]; then + runtests+=(-v) + fi echo 'Running only a slice of tests' runtests+=(-j --random='0.15' -- numba.tests) # Else run the whole test suite From 85fdc6801114c642e57a7c6589201801897f6868 Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 11:47:33 +0100 Subject: [PATCH 09/14] MNT: Re-rendered with conda-build 3.23.1, conda-smithy 3.22.0, and conda-forge-pinning 2022.11.22.08.31.53 --- .azure-pipelines/azure-pipelines-linux.yml | 6 +++--- .ci_support/linux_64_numpy1.20python3.8.____cpython.yaml | 2 +- .ci_support/linux_64_numpy1.20python3.9.____cpython.yaml | 2 +- .ci_support/linux_64_numpy1.21python3.10.____cpython.yaml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 9771662..1a92ac8 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -11,15 +11,15 @@ jobs: linux_64_numpy1.20python3.8.____cpython: CONFIG: linux_64_numpy1.20python3.8.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 linux_64_numpy1.20python3.9.____cpython: CONFIG: linux_64_numpy1.20python3.9.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 linux_64_numpy1.21python3.10.____cpython: CONFIG: linux_64_numpy1.21python3.10.____cpython UPLOAD_PACKAGES: 'True' - DOCKER_IMAGE: quay.io/condaforge/linux-anvil-comp7 + DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 timeoutInMinutes: 360 steps: diff --git a/.ci_support/linux_64_numpy1.20python3.8.____cpython.yaml b/.ci_support/linux_64_numpy1.20python3.8.____cpython.yaml index 959f137..094edec 100644 --- a/.ci_support/linux_64_numpy1.20python3.8.____cpython.yaml +++ b/.ci_support/linux_64_numpy1.20python3.8.____cpython.yaml @@ -13,7 +13,7 @@ cxx_compiler: cxx_compiler_version: - '10' docker_image: -- quay.io/condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-cos7-x86_64 numpy: - '1.20' pin_run_as_build: diff --git a/.ci_support/linux_64_numpy1.20python3.9.____cpython.yaml b/.ci_support/linux_64_numpy1.20python3.9.____cpython.yaml index 6faa8ac..e139797 100644 --- a/.ci_support/linux_64_numpy1.20python3.9.____cpython.yaml +++ b/.ci_support/linux_64_numpy1.20python3.9.____cpython.yaml @@ -13,7 +13,7 @@ cxx_compiler: cxx_compiler_version: - '10' docker_image: -- quay.io/condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-cos7-x86_64 numpy: - '1.20' pin_run_as_build: diff --git a/.ci_support/linux_64_numpy1.21python3.10.____cpython.yaml b/.ci_support/linux_64_numpy1.21python3.10.____cpython.yaml index e5511b0..8c28652 100644 --- a/.ci_support/linux_64_numpy1.21python3.10.____cpython.yaml +++ b/.ci_support/linux_64_numpy1.21python3.10.____cpython.yaml @@ -13,7 +13,7 @@ cxx_compiler: cxx_compiler_version: - '10' docker_image: -- quay.io/condaforge/linux-anvil-comp7 +- quay.io/condaforge/linux-anvil-cos7-x86_64 numpy: - '1.21' pin_run_as_build: From e0ab1abd279041d4e9866076217bd18de7da2211 Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 14:26:30 +0100 Subject: [PATCH 10/14] Try stderr->stdout redirect against Travis CI term --- recipe/run_test.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/recipe/run_test.sh b/recipe/run_test.sh index d916a47..b51ee49 100644 --- a/recipe/run_test.sh +++ b/recipe/run_test.sh @@ -71,6 +71,9 @@ else fi echo "Running: ${runtests[*]}" -"${runtests[@]}" +# Oddly enough, Travis CI seems to buffer stderr output more than stdout; +# So, to avoid early job terminations, redirect stderr to unbuffered stdout +PYTHONUNBUFFERED=1 2>&1 \ + "${runtests[@]}" pip check From 6b5d5f5d380cc3f49c21a97012e0a25b190b232f Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 16:35:43 +0100 Subject: [PATCH 11/14] Try without forcing unbuffered output streams --- recipe/run_test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/recipe/run_test.sh b/recipe/run_test.sh index b51ee49..23226f4 100644 --- a/recipe/run_test.sh +++ b/recipe/run_test.sh @@ -72,8 +72,8 @@ fi echo "Running: ${runtests[*]}" # Oddly enough, Travis CI seems to buffer stderr output more than stdout; -# So, to avoid early job terminations, redirect stderr to unbuffered stdout -PYTHONUNBUFFERED=1 2>&1 \ +# So, to avoid early job terminations, redirect stderr to stdout +2>&1 \ "${runtests[@]}" pip check From 1baa20bfe549991e7cee04038fec009a1615681a Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 16:42:54 +0100 Subject: [PATCH 12/14] Run more tests on linux-aarch64 --- recipe/run_test.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/recipe/run_test.sh b/recipe/run_test.sh index 23226f4..85e1f1b 100644 --- a/recipe/run_test.sh +++ b/recipe/run_test.sh @@ -58,12 +58,15 @@ numba -s python -m numba.tests.test_runtests if [[ "$archstr" == 'aarch64' ]] || [[ "$archstr" == "ppc64le" ]]; then + echo 'Running only a slice of tests' # Run tests verbosely to avoid Travis CI from killing it early if [[ "$archstr" == "ppc64le" ]]; then runtests+=(-v) + runtests+=(-j --random='0.15') + else + runtests+=(-j --random='0.5') fi - echo 'Running only a slice of tests' - runtests+=(-j --random='0.15' -- numba.tests) + runtests+=(-- numba.tests) # Else run the whole test suite else echo 'Running all the tests except long_running' From b2374fad8fdd354486850c7fa606e5f9a6170b50 Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 16:50:29 +0100 Subject: [PATCH 13/14] Run a bit fewer test on linux-ppc64le --- recipe/run_test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/run_test.sh b/recipe/run_test.sh index 85e1f1b..8fb4fbf 100644 --- a/recipe/run_test.sh +++ b/recipe/run_test.sh @@ -62,7 +62,7 @@ if [[ "$archstr" == 'aarch64' ]] || [[ "$archstr" == "ppc64le" ]]; then # Run tests verbosely to avoid Travis CI from killing it early if [[ "$archstr" == "ppc64le" ]]; then runtests+=(-v) - runtests+=(-j --random='0.15') + runtests+=(-j --random='0.125') else runtests+=(-j --random='0.5') fi From a5c53fc94191bf128880ef5996a3f279f5c5410c Mon Sep 17 00:00:00 2001 From: Marcel Bargull Date: Tue, 22 Nov 2022 20:57:50 +0100 Subject: [PATCH 14/14] Use verbose tests on linux-aarch64 too --- recipe/run_test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipe/run_test.sh b/recipe/run_test.sh index 8fb4fbf..d0ec0fe 100644 --- a/recipe/run_test.sh +++ b/recipe/run_test.sh @@ -60,8 +60,8 @@ python -m numba.tests.test_runtests if [[ "$archstr" == 'aarch64' ]] || [[ "$archstr" == "ppc64le" ]]; then echo 'Running only a slice of tests' # Run tests verbosely to avoid Travis CI from killing it early + runtests+=(-v) if [[ "$archstr" == "ppc64le" ]]; then - runtests+=(-v) runtests+=(-j --random='0.125') else runtests+=(-j --random='0.5')