-
Notifications
You must be signed in to change notification settings - Fork 16
Fix build for python 3.14 #494
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
36ca540
25cc854
cb8e399
bb453de
b0d725f
0792e62
ab5c79c
3c850ab
356f7d8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,139 +2,89 @@ name: main | |
|
|
||
| on: | ||
| push: | ||
| branches: ["main"] | ||
| branches: ["main", "fix-build"] | ||
|
|
||
| jobs: | ||
| macos_wheel: | ||
| runs-on: macos-15-intel | ||
| build_wheels: | ||
| strategy: | ||
|
Comment on lines
+8
to
9
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win Set explicit least-privilege token permissions for artifact build jobs.
Proposed fix build_wheels:
+ permissions:
+ contents: read
strategy:
fail-fast: false
@@
build_sdist:
+ permissions:
+ contents: read
runs-on: ubuntu-latestAlso applies to: 58-60 🧰 Tools🪛 zizmor (1.26.1)[warning] 8-56: overly broad permissions (excessive-permissions): default permissions used due to no permissions: block (excessive-permissions) [info] 8-8: workflow or action definition without a name (anonymous-definition): this job (anonymous-definition) 🤖 Prompt for AI AgentsSource: Linters/SAST tools |
||
| fail-fast: false | ||
| matrix: | ||
| arch: [x86_64] | ||
| cw_build: ["cp310-*", "cp311-*", "cp312-*", "cp313-*", "cp314-*"] | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| with: | ||
| submodules: recursive | ||
| - name: build wheels | ||
| uses: pypa/cibuildwheel@v2.23.2 | ||
| env: | ||
| CIBW_ARCHS: ${{ matrix.arch }} | ||
| CIBW_BUILD: ${{ matrix.cw_build }} | ||
| SPLINEPY_GITHUB_ACTIONS_BUILD: True | ||
| SKBUILD_INSTALL_COMPONENTS: PythonModule | ||
|
|
||
| - uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: wheels-macos-15-intel-${{ strategy.job-index }} | ||
| path: ./wheelhouse/*.whl | ||
| retention-days: 1 | ||
|
|
||
| macos_wheel-m1: | ||
| runs-on: macos-latest | ||
| strategy: | ||
| matrix: | ||
| arch: [arm64] | ||
| cw_build: ["cp310-*", "cp311-*", "cp312-*", "cp313-*", "cp314-*"] | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| with: | ||
| submodules: recursive | ||
| - name: build wheels | ||
| uses: pypa/cibuildwheel@v2.23.2 | ||
| env: | ||
| CIBW_ARCHS: ${{ matrix.arch }} | ||
| CIBW_BUILD: ${{ matrix.cw_build }} | ||
| SPLINEPY_GITHUB_ACTIONS_BUILD: True | ||
| SKBUILD_INSTALL_COMPONENTS: PythonModule | ||
|
|
||
| - uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: wheels-macos-${{ strategy.job-index }} | ||
| path: ./wheelhouse/*.whl | ||
| retention-days: 1 | ||
|
|
||
| linux_wheel: | ||
| runs-on: ubuntu-latest | ||
| strategy: | ||
| matrix: | ||
| arch: [x86_64] | ||
| cw_build: ["cp310*many*", "cp311*many*", "cp312*many*", "cp313*many*", "cp314*many*"] | ||
|
|
||
| include: | ||
| # macOS Intel | ||
| - os: macos-15-intel | ||
| arch: x86_64 | ||
| build: ["cp310-*", "cp311-*", "cp312-*", "cp313-*", "cp314-*"] | ||
| platform: macos | ||
| # macOS ARM (M1/M2) | ||
| - os: macos-latest | ||
| arch: arm64 | ||
| build: ["cp310-*", "cp311-*", "cp312-*", "cp313-*", "cp314-*"] | ||
| platform: macos | ||
| # Linux | ||
| - os: ubuntu-latest | ||
| arch: x86_64 | ||
| build: ["cp310*many*", "cp311*many*", "cp312*many*", "cp313*many*", "cp314*many*"] | ||
| platform: linux | ||
| skip: "cp314t-*" | ||
| # Windows | ||
| - os: windows-latest | ||
| arch: AMD64 | ||
| build: ["cp310-*", "cp311-*", "cp312-*", "cp313-*", "cp314-*"] | ||
| platform: windows | ||
| test_skip: "*-win_arm64" | ||
|
|
||
| runs-on: ${{ matrix.os }} | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/checkout@v7 | ||
| with: | ||
| submodules: recursive | ||
|
Comment on lines
+38
to
40
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win Do not persist checkout credentials in build jobs. These jobs do not push back to GitHub, so the checkout token should not remain available to later build steps. Proposed fix - uses: actions/checkout@v7
with:
submodules: recursive
+ persist-credentials: falseAlso applies to: 92-94, 113-115 🧰 Tools🪛 zizmor (1.26.1)[warning] 66-68: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false (artipacked) [error] 66-66: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy) (unpinned-uses) 🤖 Prompt for AI AgentsSource: Linters/SAST tools |
||
| - name: build wheels | ||
| uses: pypa/cibuildwheel@v2.23.2 | ||
| env: | ||
| CIBW_ARCHS: ${{ matrix.arch }} | ||
| CIBW_BUILD: ${{ matrix.cw_build }} | ||
| SPLINEPY_GITHUB_ACTIONS_BUILD: True | ||
| SKBUILD_INSTALL_COMPONENTS: PythonModule | ||
|
|
||
| - uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: wheels-linux-${{ strategy.job-index }} | ||
| path: ./wheelhouse/*.whl | ||
| retention-days: 1 | ||
|
|
||
| windows_wheel: | ||
| runs-on: windows-latest | ||
| strategy: | ||
| matrix: | ||
| arch: [AMD64] | ||
| cw_build: ["cp310-*", "cp311-*", "cp312-*", "cp313-*", "cp314-*"] | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| with: | ||
| submodules: recursive | ||
| - name: build wheels | ||
| uses: pypa/cibuildwheel@v2.23.2 | ||
| - name: Build wheels | ||
| uses: pypa/cibuildwheel@v4.1.0 | ||
| env: | ||
| CIBW_ARCHS: ${{ matrix.arch }} | ||
| CIBW_BUILD: ${{ matrix.cw_build }} | ||
| CIBW_TEST_SKIP: "*-win_arm64" | ||
| CIBW_BUILD: ${{ join(matrix.build, ' ') }} | ||
| CIBW_SKIP: ${{ matrix.skip || '' }} | ||
| CIBW_TEST_SKIP: ${{ matrix.test_skip || '' }} | ||
| SPLINEPY_GITHUB_ACTIONS_BUILD: True | ||
| SKBUILD_INSTALL_COMPONENTS: PythonModule | ||
|
|
||
| - uses: actions/upload-artifact@v4 | ||
| - uses: actions/upload-artifact@v7 | ||
| with: | ||
| name: wheels-windows-${{ strategy.job-index }} | ||
| name: wheels-${{ matrix.platform }}-${{ matrix.os }}-${{ strategy.job-index }} | ||
| path: ./wheelhouse/*.whl | ||
| retention-days: 1 | ||
| retention-days: 7 | ||
|
|
||
| source_dist: | ||
| build_sdist: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - uses: actions/checkout@v7 | ||
| with: | ||
| submodules: recursive | ||
|
|
||
| - name: Build sdist | ||
| - name: Build source distribution | ||
| run: pipx run build --sdist | ||
|
|
||
| - uses: actions/upload-artifact@v4 | ||
| - uses: actions/upload-artifact@v7 | ||
| with: | ||
| name: wheels-source | ||
| path: ./dist/* | ||
| retention-days: 1 | ||
|
|
||
| retention-days: 7 | ||
|
|
||
| upload_pypi: | ||
| needs: [macos_wheel, macos_wheel-m1, linux_wheel, windows_wheel, source_dist] | ||
| needs: [build_wheels, build_sdist] | ||
| runs-on: ubuntu-latest | ||
| permissions: | ||
| id-token: write | ||
| steps: | ||
| - uses: actions/download-artifact@v4 | ||
| - uses: actions/download-artifact@v7 | ||
| with: | ||
| pattern: wheels-* | ||
| merge-multiple: true | ||
| path: dist | ||
|
|
||
| - uses: pypa/gh-action-pypi-publish@release/v1 | ||
| - name: Publish to PyPI | ||
| if: github.ref == 'refs/heads/main' | ||
| uses: pypa/gh-action-pypi-publish@release/v1 | ||
| with: | ||
| skip-existing: true | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -20,3 +20,6 @@ docs/source/_generated | |
| **/CMakeFiles/ | ||
| **/Makefile | ||
| **/cmake_install.cmake | ||
|
|
||
| # | ||
| examples/not_upload/ | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ Data Integrity & Integration | 🟠 Major
🧩 Analysis chain
🏁 Script executed:
Repository: isosuite/splinepy
Length of output: 155
Add workflow concurrency before publishing artifacts.
Line 5 allows multiple push builds to run at once; with
skip-existing, an oldermainrun can publish stale wheels before a newer run finishes. Add per-ref concurrency and cancel superseded runs.Proposed fix
on: push: branches: ["main", "fix-build"] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true📝 Committable suggestion
🧰 Tools
🪛 zizmor (1.26.1)
[warning] 3-5: insufficient job-level concurrency limits (concurrency-limits): workflow is missing concurrency setting
(concurrency-limits)
🤖 Prompt for AI Agents
Source: Linters/SAST tools