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 :
75757676        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