1818 continue-on-error : true
1919 strategy :
2020 matrix :
21- python-version : [' 3.12' ]
22- os : [' ubuntu-24.04' ]
21+ python-version : [" 3.12" ]
22+ os : [" ubuntu-24.04" ]
2323 name : Lint Python
2424 steps :
2525 - name : Set up Python ${{ matrix.python-version }}
6565 run : uv run pyright ${{ github.workspace }}/pedalboard ${{ github.workspace }}/tests/test_*.py
6666
6767 lint-cpp :
68- runs-on : ' ubuntu-24.04'
68+ runs-on : " ubuntu-24.04"
6969 continue-on-error : true
7070 name : Lint C++
7171 steps :
7575 uses : jidicula/clang-format-action@v4.13.0
7676 with :
7777 clang-format-version : 14
78- exclude-regex : ' vendors/'
78+ exclude-regex : " vendors/"
7979 fallback-style : LLVM
8080
8181 # Build the native module with ccache enabled so we can share object files between builds:
8585 strategy :
8686 matrix :
8787 include :
88- - { os: ubuntu-24.04, python-version: "3.12", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
88+ - {
89+ os : ubuntu-24.04,
90+ python-version : " 3.12" ,
91+ compiler : " gcc" ,
92+ cc : " ccache gcc" ,
93+ cxx : " ccache g++" ,
94+ }
8995 name : Pre-build on ${{ matrix.os }} with ${{ matrix.compiler }}
9096 steps :
9197 - name : Set up Python ${{ matrix.python-version }}
@@ -183,7 +189,13 @@ jobs:
183189 strategy :
184190 matrix :
185191 include :
186- - { os: macos-13, python-version: "3.12", compiler: "clang", cc: "ccache clang", cxx: "ccache clang++" }
192+ - {
193+ os : macos-13,
194+ python-version : " 3.12" ,
195+ compiler : " clang" ,
196+ cc : " ccache clang" ,
197+ cxx : " ccache clang++" ,
198+ }
187199 name : Pre-build on ${{ matrix.os }} with ${{ matrix.compiler }}
188200 steps :
189201 - name : Set up Python ${{ matrix.python-version }}
@@ -269,7 +281,13 @@ jobs:
269281 strategy :
270282 matrix :
271283 include :
272- - { os: ubuntu-24.04, python-version: "3.12", compiler: "clang", cc: "ccache clang", cxx: "ccache clang++" }
284+ - {
285+ os : ubuntu-24.04,
286+ python-version : " 3.12" ,
287+ compiler : " clang" ,
288+ cc : " ccache clang" ,
289+ cxx : " ccache clang++" ,
290+ }
273291 name : Pre-build on ${{ matrix.os }} with ${{ matrix.compiler }}
274292 steps :
275293 - name : Set up Python ${{ matrix.python-version }}
@@ -486,21 +504,111 @@ jobs:
486504 strategy :
487505 matrix :
488506 include :
489- - { os: macos-13, python-version: "3.9", compiler: "clang", cc: "ccache clang", cxx: "ccache clang++" }
490- - { os: macos-13, python-version: "3.10", compiler: "clang", cc: "ccache clang", cxx: "ccache clang++" }
491- - { os: macos-13, python-version: "3.11", compiler: "clang", cc: "ccache clang", cxx: "ccache clang++" }
492- - { os: macos-13, python-version: "3.12", compiler: "clang", cc: "ccache clang", cxx: "ccache clang++" }
493- - { os: macos-13, python-version: "3.13", compiler: "clang", cc: "ccache clang", cxx: "ccache clang++" }
494- - { os: ubuntu-24.04, python-version: "3.9", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
495- - { os: ubuntu-24.04, python-version: "3.10", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
496- - { os: ubuntu-24.04, python-version: "3.11", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
497- - { os: ubuntu-24.04, python-version: "3.12", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
498- - { os: ubuntu-24.04, python-version: "3.13", compiler: "gcc", cc: "ccache gcc", cxx: "ccache g++" }
499- - { os: windows-latest, python-version: "3.9", compiler: "msvc", cc: "msvc", cxx: "msvc" }
500- - { os: windows-latest, python-version: "3.10", compiler: "msvc", cc: "msvc", cxx: "msvc" }
501- - { os: windows-latest, python-version: "3.11", compiler: "msvc", cc: "msvc", cxx: "msvc" }
502- - { os: windows-latest, python-version: "3.12", compiler: "msvc", cc: "msvc", cxx: "msvc" }
503- - { os: windows-latest, python-version: "3.13", compiler: "msvc", cc: "msvc", cxx: "msvc" }
507+ - {
508+ os : macos-13,
509+ python-version : " 3.10" ,
510+ compiler : " clang" ,
511+ cc : " ccache clang" ,
512+ cxx : " ccache clang++" ,
513+ }
514+ - {
515+ os : macos-13,
516+ python-version : " 3.11" ,
517+ compiler : " clang" ,
518+ cc : " ccache clang" ,
519+ cxx : " ccache clang++" ,
520+ }
521+ - {
522+ os : macos-13,
523+ python-version : " 3.12" ,
524+ compiler : " clang" ,
525+ cc : " ccache clang" ,
526+ cxx : " ccache clang++" ,
527+ }
528+ - {
529+ os : macos-13,
530+ python-version : " 3.13" ,
531+ compiler : " clang" ,
532+ cc : " ccache clang" ,
533+ cxx : " ccache clang++" ,
534+ }
535+ - {
536+ os : macos-13,
537+ python-version : " 3.14" ,
538+ compiler : " clang" ,
539+ cc : " ccache clang" ,
540+ cxx : " ccache clang++" ,
541+ }
542+ - {
543+ os : ubuntu-24.04,
544+ python-version : " 3.10" ,
545+ compiler : " gcc" ,
546+ cc : " ccache gcc" ,
547+ cxx : " ccache g++" ,
548+ }
549+ - {
550+ os : ubuntu-24.04,
551+ python-version : " 3.11" ,
552+ compiler : " gcc" ,
553+ cc : " ccache gcc" ,
554+ cxx : " ccache g++" ,
555+ }
556+ - {
557+ os : ubuntu-24.04,
558+ python-version : " 3.12" ,
559+ compiler : " gcc" ,
560+ cc : " ccache gcc" ,
561+ cxx : " ccache g++" ,
562+ }
563+ - {
564+ os : ubuntu-24.04,
565+ python-version : " 3.13" ,
566+ compiler : " gcc" ,
567+ cc : " ccache gcc" ,
568+ cxx : " ccache g++" ,
569+ }
570+ - {
571+ os : ubuntu-24.04,
572+ python-version : " 3.14" ,
573+ compiler : " gcc" ,
574+ cc : " ccache gcc" ,
575+ cxx : " ccache g++" ,
576+ }
577+ - {
578+ os : windows-latest,
579+ python-version : " 3.10" ,
580+ compiler : " msvc" ,
581+ cc : " msvc" ,
582+ cxx : " msvc" ,
583+ }
584+ - {
585+ os : windows-latest,
586+ python-version : " 3.11" ,
587+ compiler : " msvc" ,
588+ cc : " msvc" ,
589+ cxx : " msvc" ,
590+ }
591+ - {
592+ os : windows-latest,
593+ python-version : " 3.12" ,
594+ compiler : " msvc" ,
595+ cc : " msvc" ,
596+ cxx : " msvc" ,
597+ }
598+ - {
599+ os : windows-latest,
600+ python-version : " 3.13" ,
601+ compiler : " msvc" ,
602+ cc : " msvc" ,
603+ cxx : " msvc" ,
604+ }
605+ - {
606+ os : windows-latest,
607+ python-version : " 3.14" ,
608+ compiler : " msvc" ,
609+ cc : " msvc" ,
610+ cxx : " msvc" ,
611+ }
504612 name : Test with Python ${{ matrix.python-version }} on ${{ matrix.os }}
505613 steps :
506614 - name : Set up Python ${{ matrix.python-version }}
@@ -632,8 +740,8 @@ jobs:
632740 needs : [prime-asan-build-caches]
633741 strategy :
634742 matrix :
635- python-version : ['3.9', '3.10', ' 3.11', ' 3.12', ' 3.13' ]
636- os : [' ubuntu-24.04' ]
743+ python-version : ["3.10", " 3.11", " 3.12", " 3.13", "3.14" ]
744+ os : [" ubuntu-24.04" ]
637745 name : Test with Python ${{ matrix.python-version }} + Address Sanitizer
638746 steps :
639747 - name : Set up Python ${{ matrix.python-version }}
@@ -719,53 +827,56 @@ jobs:
719827 strategy :
720828 matrix :
721829 include :
722- - { os: macos-13, build: cp39-macosx_x86_64 }
723- - { os: macos-13, build: cp310-macosx_x86_64 }
724- - { os: macos-13, build: cp311-macosx_x86_64 }
725- - { os: macos-13, build: cp312-macosx_x86_64 }
726- - { os: macos-13, build: cp313-macosx_x86_64 }
727- - { os: macos-13, build: cp313t-macosx_x86_64 }
728- # Universal wheels are rarely used; only support them for Python 3.12:
729- - { os: macos-13, build: cp312-macosx_universal2 }
730- - { os: macos-13, build: cp39-macosx_arm64 }
731- - { os: macos-13, build: cp310-macosx_arm64 }
732- - { os: macos-13, build: cp311-macosx_arm64 }
733- - { os: macos-13, build: cp312-macosx_arm64 }
734- - { os: macos-13, build: cp313-macosx_arm64 }
735- - { os: macos-13, build: cp313t-macosx_arm64 }
736- # - { os: macos-13, build: pp38-macosx_x86_64 }
737- # - { os: macos-13, build: pp39-macosx_x86_64 }
738- - { os: windows-latest, build: cp39-win_amd64 }
739- - { os: windows-latest, build: cp310-win_amd64 }
740- - { os: windows-latest, build: cp311-win_amd64 }
741- - { os: windows-latest, build: cp312-win_amd64 }
742- - { os: windows-latest, build: cp313-win_amd64 }
743- # - { os: windows-latest, build: cp313t-win_amd64 }
744- # - { os: windows-latest, build: cp312-win32 }
745- - { os: 'ubuntu-24.04', build: cp39-manylinux_x86_64 }
746- - { os: 'ubuntu-24.04', build: cp39-manylinux_aarch64 }
747- # - { os: 'ubuntu-24.04', build: cp39-musllinux_x86_64 }
748- # - { os: 'ubuntu-24.04', build: cp39-musllinux_aarch64 }
749- - { os: 'ubuntu-24.04', build: cp310-manylinux_x86_64 }
750- - { os: 'ubuntu-24.04', build: cp310-manylinux_aarch64 }
751- - { os: 'ubuntu-24.04', build: cp310-musllinux_x86_64 }
752- - { os: 'ubuntu-24.04', build: cp310-musllinux_aarch64 }
753- - { os: 'ubuntu-24.04', build: cp311-manylinux_x86_64 }
754- - { os: 'ubuntu-24.04', build: cp311-manylinux_aarch64 }
755- # - { os: 'ubuntu-24.04', build: cp311-musllinux_x86_64 }
756- # - { os: 'ubuntu-24.04', build: cp311-musllinux_aarch64 }
757- - { os: 'ubuntu-24.04', build: cp312-manylinux_x86_64 }
758- - { os: 'ubuntu-24.04', build: cp312-manylinux_aarch64 }
759- - { os: 'ubuntu-24.04', build: cp312-musllinux_x86_64 }
760- - { os: 'ubuntu-24.04', build: cp312-musllinux_aarch64 }
761- - { os: 'ubuntu-24.04', build: cp313-manylinux_x86_64 }
762- - { os: 'ubuntu-24.04', build: cp313-manylinux_aarch64 }
763- # - { os: 'ubuntu-24.04', build: cp313-musllinux_x86_64 }
764- # - { os: 'ubuntu-24.04', build: cp313-musllinux_aarch64 }
765- - { os: 'ubuntu-24.04', build: cp313t-manylinux_x86_64 }
766- - { os: 'ubuntu-24.04', build: cp313t-manylinux_aarch64 }
767- # - { os: 'ubuntu-24.04', build: cp313t-musllinux_x86_64 }
768- # - { os: 'ubuntu-24.04', build: cp313t-musllinux_aarch64 }
830+ - { os: macos-13, build: cp310-macosx_x86_64 }
831+ - { os: macos-13, build: cp311-macosx_x86_64 }
832+ - { os: macos-13, build: cp312-macosx_x86_64 }
833+ - { os: macos-13, build: cp313-macosx_x86_64 }
834+ - { os: macos-13, build: cp313t-macosx_x86_64 }
835+ # Universal wheels are rarely used; only support them for Python 3.12:
836+ - { os: macos-13, build: cp312-macosx_universal2 }
837+ - { os: macos-13, build: cp310-macosx_arm64 }
838+ - { os: macos-13, build: cp311-macosx_arm64 }
839+ - { os: macos-13, build: cp312-macosx_arm64 }
840+ - { os: macos-13, build: cp313-macosx_arm64 }
841+ - { os: macos-13, build: cp313t-macosx_arm64 }
842+ - { os: macos-13, build: cp314-macosx_arm64 }
843+ - { os: macos-13, build: cp314t-macosx_arm64 }
844+ # - { os: macos-13, build: pp38-macosx_x86_64 }
845+ # - { os: macos-13, build: pp39-macosx_x86_64 }
846+ - { os: windows-latest, build: cp39-win_amd64 }
847+ - { os: windows-latest, build: cp310-win_amd64 }
848+ - { os: windows-latest, build: cp311-win_amd64 }
849+ - { os: windows-latest, build: cp312-win_amd64 }
850+ - { os: windows-latest, build: cp313-win_amd64 }
851+ - { os: windows-latest, build: cp314-win_amd64 }
852+ # - { os: windows-latest, build: cp313t-win_amd64 }
853+ # - { os: windows-latest, build: cp312-win32 }
854+ - { os: "ubuntu-24.04", build: cp39-manylinux_x86_64 }
855+ - { os: "ubuntu-24.04", build: cp39-manylinux_aarch64 }
856+ # - { os: 'ubuntu-24.04', build: cp39-musllinux_x86_64 }
857+ # - { os: 'ubuntu-24.04', build: cp39-musllinux_aarch64 }
858+ - { os: "ubuntu-24.04", build: cp310-manylinux_x86_64 }
859+ - { os: "ubuntu-24.04", build: cp310-manylinux_aarch64 }
860+ - { os: "ubuntu-24.04", build: cp310-musllinux_x86_64 }
861+ - { os: "ubuntu-24.04", build: cp310-musllinux_aarch64 }
862+ - { os: "ubuntu-24.04", build: cp311-manylinux_x86_64 }
863+ - { os: "ubuntu-24.04", build: cp311-manylinux_aarch64 }
864+ # - { os: 'ubuntu-24.04', build: cp311-musllinux_x86_64 }
865+ # - { os: 'ubuntu-24.04', build: cp311-musllinux_aarch64 }
866+ - { os: "ubuntu-24.04", build: cp312-manylinux_x86_64 }
867+ - { os: "ubuntu-24.04", build: cp312-manylinux_aarch64 }
868+ - { os: "ubuntu-24.04", build: cp312-musllinux_x86_64 }
869+ - { os: "ubuntu-24.04", build: cp312-musllinux_aarch64 }
870+ - { os: "ubuntu-24.04", build: cp313-manylinux_x86_64 }
871+ - { os: "ubuntu-24.04", build: cp313-manylinux_aarch64 }
872+ # - { os: 'ubuntu-24.04', build: cp313-musllinux_x86_64 }
873+ # - { os: 'ubuntu-24.04', build: cp313-musllinux_aarch64 }
874+ - { os: "ubuntu-24.04", build: cp313t-manylinux_x86_64 }
875+ - { os: "ubuntu-24.04", build: cp313t-manylinux_aarch64 }
876+ # - { os: 'ubuntu-24.04', build: cp313t-musllinux_x86_64 }
877+ # - { os: 'ubuntu-24.04', build: cp313t-musllinux_aarch64 }
878+ - { os: "ubuntu-24.04", build: cp314-manylinux_x86_64 }
879+ - { os: "ubuntu-24.04", build: cp314t-manylinux_aarch64 }
769880 name : Build wheel for ${{ matrix.build }}
770881 steps :
771882 - uses : actions/checkout@v4
@@ -791,7 +902,7 @@ jobs:
791902 # Use the minimum macOS deployment target supported by our version of PyBind:
792903 MACOSX_DEPLOYMENT_TARGET : " 10.14"
793904 - name : Ensure wheels have required files
794- if : runner.os != 'Windows'
905+ if : runner.os != 'Windows'
795906 run : |
796907 for wheel in ./wheelhouse/*.whl; do
797908 # Print the contents of the wheel for debugging:
@@ -817,7 +928,7 @@ jobs:
817928
818929 upload-pypi :
819930 needs : [merge, run-tests-with-address-sanitizer, run-tests]
820- runs-on : ' ubuntu-24.04'
931+ runs-on : " ubuntu-24.04"
821932 name : " Upload wheels to PyPI"
822933 if : github.event_name == 'release' && github.event.action == 'published'
823934 steps :
0 commit comments