From 0c8cbf466fbbc89b6c34e9966cbb56284773c783 Mon Sep 17 00:00:00 2001 From: Daniel Flores Date: Tue, 11 Nov 2025 23:52:10 -0500 Subject: [PATCH 1/6] add 3.14 python version to wheels --- .github/workflows/linux_cuda_wheel.yaml | 2 +- .github/workflows/linux_wheel.yaml | 2 +- .github/workflows/macos_wheel.yaml | 2 +- .github/workflows/windows_wheel.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/linux_cuda_wheel.yaml b/.github/workflows/linux_cuda_wheel.yaml index 4e711b8c3..8991800a8 100644 --- a/.github/workflows/linux_cuda_wheel.yaml +++ b/.github/workflows/linux_cuda_wheel.yaml @@ -66,7 +66,7 @@ jobs: # PR. # For the actual release we should add that label and change this to # include more python versions. - python-version: ['3.10'] + python-version: ['3.10', '3.14'] # We test against 12.6 and 13.0 to avoid having too big of a CI matrix, # but for releases we should add 12.8. cuda-version: ['12.6', '13.0'] diff --git a/.github/workflows/linux_wheel.yaml b/.github/workflows/linux_wheel.yaml index cccbedc25..1ea52248a 100644 --- a/.github/workflows/linux_wheel.yaml +++ b/.github/workflows/linux_wheel.yaml @@ -62,7 +62,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.10'] + python-version: ['3.10', '3.14'] ffmpeg-version-for-tests: ['4.4.2', '5.1.2', '6.1.1', '7.0.1', '8.0'] needs: build steps: diff --git a/.github/workflows/macos_wheel.yaml b/.github/workflows/macos_wheel.yaml index ead45784d..1ae9a7b47 100644 --- a/.github/workflows/macos_wheel.yaml +++ b/.github/workflows/macos_wheel.yaml @@ -64,7 +64,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.10'] + python-version: ['3.10', '3.14'] ffmpeg-version-for-tests: ['4.4.2', '5.1.2', '6.1.1', '7.0.1', '8.0'] needs: build steps: diff --git a/.github/workflows/windows_wheel.yaml b/.github/workflows/windows_wheel.yaml index 8a9b5b740..8ee194c06 100644 --- a/.github/workflows/windows_wheel.yaml +++ b/.github/workflows/windows_wheel.yaml @@ -67,7 +67,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.10'] + python-version: ['3.10', '3.14'] # TODO: FFmpeg 5 on Windows segfaults in avcodec_open2() when passing # bad parameters. # See https://github.com/pytorch/torchcodec/pull/806 From 6805b52020bc3ffb6c05d8b2f01c2e94fba4c6e0 Mon Sep 17 00:00:00 2001 From: Daniel Flores Date: Thu, 20 Nov 2025 15:10:52 -0500 Subject: [PATCH 2/6] first, build python 3.14 --- .github/workflows/linux_cuda_wheel.yaml | 1 + .github/workflows/linux_wheel.yaml | 1 + .github/workflows/macos_wheel.yaml | 1 + .github/workflows/windows_wheel.yaml | 2 +- 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/linux_cuda_wheel.yaml b/.github/workflows/linux_cuda_wheel.yaml index 8991800a8..45296b49c 100644 --- a/.github/workflows/linux_cuda_wheel.yaml +++ b/.github/workflows/linux_cuda_wheel.yaml @@ -36,6 +36,7 @@ jobs: with-rocm: disable with-cuda: enable build-python-only: "disable" + python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' build: needs: generate-matrix strategy: diff --git a/.github/workflows/linux_wheel.yaml b/.github/workflows/linux_wheel.yaml index 1ea52248a..773fa954c 100644 --- a/.github/workflows/linux_wheel.yaml +++ b/.github/workflows/linux_wheel.yaml @@ -36,6 +36,7 @@ jobs: with-rocm: disable with-cuda: disable build-python-only: "disable" + python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' build: needs: generate-matrix diff --git a/.github/workflows/macos_wheel.yaml b/.github/workflows/macos_wheel.yaml index 1ae9a7b47..0f30a468c 100644 --- a/.github/workflows/macos_wheel.yaml +++ b/.github/workflows/macos_wheel.yaml @@ -36,6 +36,7 @@ jobs: with-rocm: disable with-cuda: disable build-python-only: "disable" + python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' build: needs: generate-matrix diff --git a/.github/workflows/windows_wheel.yaml b/.github/workflows/windows_wheel.yaml index 8ee194c06..84eb22c8b 100644 --- a/.github/workflows/windows_wheel.yaml +++ b/.github/workflows/windows_wheel.yaml @@ -36,7 +36,7 @@ jobs: with-rocm: disable with-cuda: disable build-python-only: "disable" - python-versions: '["3.10", "3.11", "3.12", "3.13"]' + python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' build: From 039f5e237dedd936f128c4bb035ab2c0e6621ded Mon Sep 17 00:00:00 2001 From: Daniel Flores Date: Fri, 21 Nov 2025 12:33:17 -0500 Subject: [PATCH 3/6] add versions, install stable --- .github/workflows/docs.yaml | 3 ++- .github/workflows/linux_cuda_wheel.yaml | 8 ++++---- .github/workflows/linux_wheel.yaml | 4 ++-- .github/workflows/macos_wheel.yaml | 4 ++-- .github/workflows/windows_wheel.yaml | 6 +++--- version.txt | 2 +- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 92daeddbd..f9b7e4b05 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -26,6 +26,7 @@ jobs: with-rocm: disable with-cuda: enable build-python-only: "disable" + python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' build: needs: generate-matrix strategy: @@ -92,7 +93,7 @@ jobs: run: ${CONDA_RUN} python -m pip install --upgrade pip - name: Install PyTorch run: | - ${CONDA_RUN} python -m pip install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cu${{ env.cuda_version_without_periods }} + ${CONDA_RUN} python -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cu${{ env.cuda_version_without_periods }} ${CONDA_RUN} python -c 'import torch; print(f"{torch.__version__}"); print(f"{torch.__file__}"); print(f"{torch.cuda.is_available()=}")' - name: Install torchcodec from the wheel run: | diff --git a/.github/workflows/linux_cuda_wheel.yaml b/.github/workflows/linux_cuda_wheel.yaml index 45296b49c..5a5a75bee 100644 --- a/.github/workflows/linux_cuda_wheel.yaml +++ b/.github/workflows/linux_cuda_wheel.yaml @@ -67,12 +67,12 @@ jobs: # PR. # For the actual release we should add that label and change this to # include more python versions. - python-version: ['3.10', '3.14'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] # We test against 12.6 and 13.0 to avoid having too big of a CI matrix, # but for releases we should add 12.8. - cuda-version: ['12.6', '13.0'] + cuda-version: ['12.6', '12.8', '13.0'] # TODO: put back ffmpeg 5 https://github.com/pytorch/torchcodec/issues/325 - ffmpeg-version-for-tests: ['4.4.2', '6', '7', '8.0'] + ffmpeg-version-for-tests: ['4.4.2', '5', '6', '7', '8.0'] container: image: "pytorch/manylinux2_28-builder:cuda${{ matrix.cuda-version }}" @@ -110,7 +110,7 @@ jobs: run: ${CONDA_RUN} python -m pip install --upgrade pip - name: Install PyTorch run: | - ${CONDA_RUN} python -m pip install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cu${{ env.cuda_version_without_periods }} + ${CONDA_RUN} python -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cu${{ env.cuda_version_without_periods }} ${CONDA_RUN} python -c 'import torch; print(f"{torch.__version__}"); print(f"{torch.__file__}"); print(f"{torch.cuda.is_available()=}")' - name: Install torchcodec from the wheel run: | diff --git a/.github/workflows/linux_wheel.yaml b/.github/workflows/linux_wheel.yaml index 773fa954c..93812ab09 100644 --- a/.github/workflows/linux_wheel.yaml +++ b/.github/workflows/linux_wheel.yaml @@ -63,7 +63,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.10', '3.14'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] ffmpeg-version-for-tests: ['4.4.2', '5.1.2', '6.1.1', '7.0.1', '8.0'] needs: build steps: @@ -86,7 +86,7 @@ jobs: run: python -m pip install --upgrade pip - name: Install PyTorch run: | - python -m pip install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cpu + python -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu - name: Install torchcodec from the wheel run: | wheel_path=`find pytorch/torchcodec/dist -type f -name "*.whl"` diff --git a/.github/workflows/macos_wheel.yaml b/.github/workflows/macos_wheel.yaml index 0f30a468c..651ae7016 100644 --- a/.github/workflows/macos_wheel.yaml +++ b/.github/workflows/macos_wheel.yaml @@ -65,7 +65,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.10', '3.14'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] ffmpeg-version-for-tests: ['4.4.2', '5.1.2', '6.1.1', '7.0.1', '8.0'] needs: build steps: @@ -87,7 +87,7 @@ jobs: - name: Install PyTorch run: | - python -m pip install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cpu + python -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu - name: Install torchcodec from the wheel run: | diff --git a/.github/workflows/windows_wheel.yaml b/.github/workflows/windows_wheel.yaml index 84eb22c8b..f20e41dd0 100644 --- a/.github/workflows/windows_wheel.yaml +++ b/.github/workflows/windows_wheel.yaml @@ -67,11 +67,11 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.10', '3.14'] + python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] # TODO: FFmpeg 5 on Windows segfaults in avcodec_open2() when passing # bad parameters. # See https://github.com/pytorch/torchcodec/pull/806 - ffmpeg-version-for-tests: ['4.4.2', '6.1.1', '7.0.1', '8.0'] + ffmpeg-version-for-tests: ['4.4.2', '5.1.2', '6.1.1', '7.0.1', '8.0'] needs: build steps: - uses: actions/download-artifact@v4 @@ -93,7 +93,7 @@ jobs: run: python -m pip install --upgrade pip - name: Install PyTorch run: | - python -m pip install --pre torch torchvision --index-url https://download.pytorch.org/whl/nightly/cpu + python -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu - name: Install torchcodec from the wheel run: | wheel_path=`find pytorch/torchcodec/dist -type f -name "*.whl"` diff --git a/version.txt b/version.txt index 657e7c07f..ac39a106c 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.9.0a0 +0.9.0 From e843280180acb358b402377e5fdbac33abbdc23c Mon Sep 17 00:00:00 2001 From: Daniel Flores Date: Fri, 21 Nov 2025 16:54:30 -0500 Subject: [PATCH 4/6] Trigger CI rebuild From 4aca5d27e7407a92af94beb83f7217fbd5eddf49 Mon Sep 17 00:00:00 2001 From: Daniel Flores Date: Sat, 22 Nov 2025 12:24:58 -0500 Subject: [PATCH 5/6] update setuptools and project config for py3.14 --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2f8b4da45..9dd85f0a7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ name = "torchcodec" description = "A video decoder for PyTorch" readme = "README.md" requires-python = ">=3.8" -license-files = ["LICENSE"] +license = {file = "LICENSE"} authors = [ { name = "PyTorch Team", email = "packages@pytorch.org" }, ] @@ -17,7 +17,7 @@ Documentation = "https://pytorch.org/torchcodec/stable/index.html" version = {file = "version.txt"} [build-system] -requires = ["setuptools>=61.0"] +requires = ["setuptools>=69.0"] build-backend = "setuptools.build_meta" [project.optional-dependencies] From 9af007d05ec71f9df91d67399967a30a18aedbbd Mon Sep 17 00:00:00 2001 From: Daniel Flores Date: Wed, 26 Nov 2025 09:30:34 -0500 Subject: [PATCH 6/6] update main to release/2.9 --- .github/workflows/docs.yaml | 8 ++++---- .github/workflows/linux_cuda_wheel.yaml | 8 ++++---- .github/workflows/linux_wheel.yaml | 8 ++++---- .github/workflows/macos_wheel.yaml | 8 ++++---- .github/workflows/windows_wheel.yaml | 8 ++++---- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index f9b7e4b05..5303eaf8b 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -15,12 +15,12 @@ defaults: jobs: generate-matrix: - uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@main + uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@release/2.9 with: package-type: wheel os: linux test-infra-repository: pytorch/test-infra - test-infra-ref: main + test-infra-ref: release/2.9 with-cpu: disable with-xpu: disable with-rocm: disable @@ -32,12 +32,12 @@ jobs: strategy: fail-fast: false name: Build and Upload wheel - uses: pytorch/test-infra/.github/workflows/build_wheels_linux.yml@main + uses: pytorch/test-infra/.github/workflows/build_wheels_linux.yml@release/2.9 with: repository: meta-pytorch/torchcodec ref: "" test-infra-repository: pytorch/test-infra - test-infra-ref: main + test-infra-ref: release/2.9 build-matrix: ${{ needs.generate-matrix.outputs.matrix }} pre-script: packaging/pre_build_script.sh post-script: packaging/post_build_script.sh diff --git a/.github/workflows/linux_cuda_wheel.yaml b/.github/workflows/linux_cuda_wheel.yaml index 5a5a75bee..3487593f4 100644 --- a/.github/workflows/linux_cuda_wheel.yaml +++ b/.github/workflows/linux_cuda_wheel.yaml @@ -25,12 +25,12 @@ defaults: jobs: generate-matrix: - uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@main + uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@release/2.9 with: package-type: wheel os: linux test-infra-repository: pytorch/test-infra - test-infra-ref: main + test-infra-ref: release/2.9 with-cpu: disable with-xpu: disable with-rocm: disable @@ -42,12 +42,12 @@ jobs: strategy: fail-fast: false name: Build and Upload wheel - uses: pytorch/test-infra/.github/workflows/build_wheels_linux.yml@main + uses: pytorch/test-infra/.github/workflows/build_wheels_linux.yml@release/2.9 with: repository: meta-pytorch/torchcodec ref: "" test-infra-repository: pytorch/test-infra - test-infra-ref: main + test-infra-ref: release/2.9 build-matrix: ${{ needs.generate-matrix.outputs.matrix }} pre-script: packaging/pre_build_script.sh post-script: packaging/post_build_script.sh diff --git a/.github/workflows/linux_wheel.yaml b/.github/workflows/linux_wheel.yaml index 93812ab09..7a8efad95 100644 --- a/.github/workflows/linux_wheel.yaml +++ b/.github/workflows/linux_wheel.yaml @@ -26,12 +26,12 @@ defaults: jobs: generate-matrix: - uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@main + uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@release/2.9 with: package-type: wheel os: linux test-infra-repository: pytorch/test-infra - test-infra-ref: main + test-infra-ref: release/2.9 with-xpu: disable with-rocm: disable with-cuda: disable @@ -43,12 +43,12 @@ jobs: strategy: fail-fast: false name: Build and Upload Linux wheel - uses: pytorch/test-infra/.github/workflows/build_wheels_linux.yml@main + uses: pytorch/test-infra/.github/workflows/build_wheels_linux.yml@release/2.9 with: repository: meta-pytorch/torchcodec ref: "" test-infra-repository: pytorch/test-infra - test-infra-ref: main + test-infra-ref: release/2.9 build-matrix: ${{ needs.generate-matrix.outputs.matrix }} pre-script: packaging/pre_build_script.sh post-script: packaging/post_build_script.sh diff --git a/.github/workflows/macos_wheel.yaml b/.github/workflows/macos_wheel.yaml index 651ae7016..929a9ed8a 100644 --- a/.github/workflows/macos_wheel.yaml +++ b/.github/workflows/macos_wheel.yaml @@ -26,12 +26,12 @@ defaults: jobs: generate-matrix: - uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@main + uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@release/2.9 with: package-type: wheel os: macos-arm64 test-infra-repository: pytorch/test-infra - test-infra-ref: main + test-infra-ref: release/2.9 with-xpu: disable with-rocm: disable with-cuda: disable @@ -43,12 +43,12 @@ jobs: strategy: fail-fast: false name: Build and Upload Mac wheel - uses: pytorch/test-infra/.github/workflows/build_wheels_macos.yml@main + uses: pytorch/test-infra/.github/workflows/build_wheels_macos.yml@release/2.9 with: repository: meta-pytorch/torchcodec ref: "" test-infra-repository: pytorch/test-infra - test-infra-ref: main + test-infra-ref: release/2.9 build-matrix: ${{ needs.generate-matrix.outputs.matrix }} pre-script: packaging/pre_build_script.sh post-script: packaging/post_build_script.sh diff --git a/.github/workflows/windows_wheel.yaml b/.github/workflows/windows_wheel.yaml index f20e41dd0..d0d596167 100644 --- a/.github/workflows/windows_wheel.yaml +++ b/.github/workflows/windows_wheel.yaml @@ -26,12 +26,12 @@ defaults: jobs: generate-matrix: - uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@main + uses: pytorch/test-infra/.github/workflows/generate_binary_build_matrix.yml@release/2.9 with: package-type: wheel os: windows test-infra-repository: pytorch/test-infra - test-infra-ref: main + test-infra-ref: release/2.9 with-xpu: disable with-rocm: disable with-cuda: disable @@ -44,12 +44,12 @@ jobs: strategy: fail-fast: false name: Build and Upload Windows wheel - uses: pytorch/test-infra/.github/workflows/build_wheels_windows.yml@main + uses: pytorch/test-infra/.github/workflows/build_wheels_windows.yml@release/2.9 with: repository: meta-pytorch/torchcodec ref: "" test-infra-repository: pytorch/test-infra - test-infra-ref: main + test-infra-ref: release/2.9 build-matrix: ${{ needs.generate-matrix.outputs.matrix }} pre-script: packaging/pre_build_script.sh # post-script: packaging/post_build_script.sh TODO: consider enabling post-build checks for Windows