Skip to content

Commit 9f6ccf8

Browse files
committed
Merge remote-tracking branch 'upstream/master' into feat/enable-free-threaded-python-clean
2 parents f183945 + 31011fc commit 9f6ccf8

12 files changed

Lines changed: 122 additions & 56 deletions

‎.github/dependabot.yml‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,18 @@ updates:
66
interval: "weekly"
77
day: "saturday"
88
rebase-strategy: "disabled"
9+
labels: ["autoupdate"]
10+
groups:
11+
github-actions:
12+
patterns: ["*"]
13+
14+
- package-ecosystem: "pre-commit"
15+
directory: "/"
16+
schedule:
17+
interval: "weekly"
18+
day: "saturday"
19+
rebase-strategy: "disabled"
20+
labels: ["autoupdate"]
21+
groups:
22+
pre-commit:
23+
patterns: ["*"]

‎.github/workflows/coverity.yml‎

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
name: Coverity Scan
2+
3+
on:
4+
schedule:
5+
- cron: "0 1 * * 1"
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
11+
concurrency:
12+
group: coverity-${{ github.ref }}
13+
cancel-in-progress: true
14+
15+
env:
16+
COVERITY_PROJECT: IntelPython/mkl_fft
17+
18+
jobs:
19+
coverity-scan:
20+
if: github.repository == 'IntelPython/mkl_fft'
21+
runs-on: ubuntu-latest
22+
timeout-minutes: 60
23+
24+
steps:
25+
- name: Checkout repo
26+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
27+
28+
- name: Setup Python
29+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
30+
with:
31+
python-version: "3.12"
32+
architecture: x64
33+
34+
- name: Install mkl_fft dependencies
35+
run: pip install meson-python ninja cmake cython "numpy>=2" mkl-devel
36+
37+
- name: Download Coverity Build Tool
38+
timeout-minutes: 15
39+
env:
40+
COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
41+
run: |
42+
curl --location --no-progress-meter --fail-with-body \
43+
--retry 5 --retry-connrefused --retry-delay 5 \
44+
--data-urlencode "token=${COVERITY_SCAN_TOKEN}" \
45+
--data-urlencode "project=${COVERITY_PROJECT}" \
46+
--output cov-analysis.tar.gz \
47+
https://scan.coverity.com/download/linux64
48+
mkdir -p cov-analysis
49+
tar -xzf cov-analysis.tar.gz --strip 1 -C cov-analysis
50+
echo "${PWD}/cov-analysis/bin" >> "$GITHUB_PATH"
51+
52+
- name: Configure Coverity for GCC
53+
run: cov-configure --gcc
54+
55+
- name: Build under cov-build
56+
timeout-minutes: 20
57+
run: |
58+
rm -rf build
59+
cov-build --dir cov-int pip install -e . --no-build-isolation --no-deps 2>&1 | tee cov-build.log
60+
if ! grep -qE "Emitted [1-9][0-9]* .*compilation unit" cov-build.log; then
61+
echo "::error::Coverity captured 0 compilation units — the C build did not run under cov-build."
62+
exit 1
63+
fi
64+
65+
- name: Submit results to Coverity Scan
66+
timeout-minutes: 15
67+
env:
68+
COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
69+
COVERITY_SCAN_EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }}
70+
run: |
71+
tar -czf cov-int.tgz cov-int
72+
curl --no-progress-meter --fail-with-body \
73+
--retry 5 --retry-connrefused --retry-delay 5 \
74+
--form token="${COVERITY_SCAN_TOKEN}" \
75+
--form email="${COVERITY_SCAN_EMAIL}" \
76+
--form file=@cov-int.tgz \
77+
--form version="${GITHUB_SHA}" \
78+
--form description="GitHub Actions ${GITHUB_REF_NAME} (run ${GITHUB_RUN_ID})" \
79+
--form project="${COVERITY_PROJECT}" \
80+
https://scan.coverity.com/builds

‎.github/workflows/openssf-scorecard.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,6 @@ jobs:
6969

7070
# Upload the results to GitHub's code scanning dashboard.
7171
- name: "Upload to code-scanning"
72-
uses: github/codeql-action/upload-sarif@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
72+
uses: github/codeql-action/upload-sarif@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
7373
with:
7474
sarif_file: results.sarif

‎.github/workflows/pre-commit-autoupdate.yml‎

Lines changed: 0 additions & 50 deletions
This file was deleted.

‎.pre-commit-config.yaml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ repos:
7373
- flake8-bugbear==25.11.29
7474

7575
- repo: https://github.com/pycqa/isort
76-
rev: 9.0.0b1
76+
rev: 9.0.0b2
7777
hooks:
7878
- id: isort
7979
name: isort (python)
@@ -112,7 +112,7 @@ repos:
112112
- id: shellcheck
113113

114114
- repo: https://github.com/gitleaks/gitleaks
115-
rev: v8.30.0
115+
rev: v8.30.1
116116
hooks:
117117
- id: gitleaks
118118

‎CHANGELOG.md‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1313
* Raised the minimum build-time `Cython` requirement to `3.1.0`, the first release providing the `freethreading_compatible` directive [gh-357](https://github.com/IntelPython/mkl_fft/pull/357)
1414
* Removed the `python-gil` constraint from the conda recipes, which pinned `mkl_fft` to GIL-enabled Python 3.14 builds [gh-357](https://github.com/IntelPython/mkl_fft/pull/357)
1515

16+
### Fixed
17+
* Declared `f_ndim` as a C `int` in `_allocate_result` so the buffer size is computed in C rather than through a Python object, resolving a Coverity out-of-bounds (OVERRUN) false positive [gh-364](https://github.com/IntelPython/mkl_fft/pull/364)
18+
* Silenced a Coverity `UNUSED_VALUE` finding in `__create_descriptor_1d` by marking the `DftiFreeDescriptor` status (used only by a debug-only `assert`) as intentionally unused [gh-365](https://github.com/IntelPython/mkl_fft/pull/365)
19+
20+
## [2.3.2] - 2026-08-04
21+
22+
### Fixed
23+
* Emit one `-rpath` linker argument per path instead of colon-joining them, so the runtime library search path is baked correctly into macOS (Mach-O) extensions [gh-358](https://github.com/IntelPython/mkl_fft/pull/358)
24+
25+
## [2.3.1] - 2026-07-31
26+
27+
### Fixed
28+
* Fixed RPATH logic for OSX builds [gh-351](https://github.com/IntelPython/mkl_fft/pull/351)
1629

1730
## [2.3.0] - 2026-07-30
1831

‎README.md‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
[![Editable build using pip and pre-release NumPy](https://github.com/IntelPython/mkl_fft/actions/workflows/build_pip.yml/badge.svg)](https://github.com/IntelPython/mkl_fft/actions/workflows/build_pip.yml)
33
[![Conda package with conda-forge channel only](https://github.com/IntelPython/mkl_fft/actions/workflows/conda-package-cf.yml/badge.svg)](https://github.com/IntelPython/mkl_fft/actions/workflows/conda-package-cf.yml)
44
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/IntelPython/mkl_fft/badge)](https://securityscorecards.dev/viewer/?uri=github.com/IntelPython/mkl_fft)
5+
[![Coverity Scan Build Status](https://scan.coverity.com/projects/33202/badge.svg)](https://scan.coverity.com/projects/intelpython-mkl_fft)
56

67
## `mkl_fft` -- a NumPy-based Python interface to Intel® oneAPI Math Kernel Library (oneMKL) Fourier Transform Functions
78

‎benchmarks/asv.conf.json‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
"show_commit_url": "https://github.com/IntelPython/mkl_fft/commit/",
66
"repo": "..",
77
"branches": [
8-
"master"
8+
"master",
9+
"dev-milestone"
910
],
1011
"environment_type": "conda",
1112
"conda_channels": [

‎benchmarks/requirements.txt‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
psutil
2+
mkl-service
23
scipy>=1.10

‎meson.build‎

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,11 @@ if host_machine.system() != 'windows'
3535
else
3636
origin = '$ORIGIN'
3737
endif
38-
rpath = origin / '../..' + ':' + origin / '../../..'
39-
rpath_link_args = ['-Wl,-rpath,' + rpath]
38+
39+
rpath_link_args = [
40+
'-Wl,-rpath,' + origin / '../..',
41+
'-Wl,-rpath,' + origin / '../../..',
42+
]
4043
endif
4144

4245
mkl_dep = dependency('MKL', method: 'cmake',

0 commit comments

Comments
 (0)