Skip to content

Added support for ppc64le architecture #2121

Merged
nedbat merged 7 commits intocoveragepy:mainfrom
PankhudiJ17:ppc64le
Feb 9, 2026
Merged

Added support for ppc64le architecture #2121
nedbat merged 7 commits intocoveragepy:mainfrom
PankhudiJ17:ppc64le

Conversation

@PankhudiJ17
Copy link
Contributor

This PR introduces initial support for the ppc64le (PowerPC 64-bit Little Endian) architecture in the GitHub Actions CI
🔧 Changes Made:

  1. CI Workflow (.github/workflows/kit.yml)

    Added ppc64le jobs to generate wheels that will be runs on ephemeral runners using labeled as ubuntu-24.04-ppc64le.

  2. Testing Workflow (.github/workflows/testsuite.yml)

    Added new test job to support ppc64le testing.

@sandeepgupta12
Copy link

Hey @nedbat,
We’ve incorporated all the review comments—could you please take another look?

At the moment, all jobs are getting cancelled due to a recent change in permissions for our GitHub Actions app. The permissions were reduced from Admin to Organization level.

Could you please apply the resolution mentioned here:
IBM/actionspz#75 (comment)

Let me know if you need any help from our side.

- ubuntu
- macos
- windows
- ppc64le
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This action wasn't running tests separately for different architectures. Is there a reason to add ppc64le as a fourth "os"?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for pointing this out -
adding ppc64le as an "os" entry doesn’t actually give us a separate architecture run. Since there’s no real benefit in this workflow, I’ve reverted the change and restored the original matrix.

@nedbat
Copy link
Member

nedbat commented Feb 6, 2026

The names of the "kit" jobs were getting too long. There's already logic for specifying the version of the OS based on the architecture. This change shows how:

diff --git a/.github/workflows/kit.yml b/.github/workflows/kit.yml
index f44d4196..81637828 100644
--- a/.github/workflows/kit.yml
+++ b/.github/workflows/kit.yml
@@ -48,7 +48,7 @@ concurrency:
 jobs:
   wheels:
     name: "${{ matrix.py }} ${{ matrix.os }} ${{ matrix.arch }} wheels"
-    runs-on: "${{ matrix.arch == 'ppc64le' && matrix.os || (format('{0}-{1}', matrix.os, matrix.os-version || 'latest'))}}"
+    runs-on: "${{ matrix.os }}-${{ matrix.os-version || 'latest' }}"
     env:
       MATRIX_ID: "${{ matrix.py }}-${{ matrix.os }}-${{ matrix.arch }}"
     strategy:
@@ -103,8 +103,6 @@ jobs:
           #                   "arch": the_arch,
           #                   "cipy": cipy,
           #               }
-          #               if the_arch == "ppc64le":
-          #                   them["os"] = "ubuntu-24.04-ppc64le"
           #               if the_os == "macos":
           #                   them["os-version"] = "14"
           #               if the_os == "windows" and the_arch == "ARM64":
@@ -113,6 +111,8 @@ jobs:
           #               if the_arch == "aarch64":
           #                   # https://github.com/pypa/cibuildwheel/issues/2257
           #                   them["os-version"] = "22.04-arm"
+          #               if the_arch == "ppc64le":
+          #                   them["os-version"] = "24.04-ppc64le"
           #               print(f"- {json.dumps(them)}")
           # ]]]
           - {"os": "ubuntu", "py": "cp310", "arch": "x86_64", "cipy": "3.11"}
@@ -135,11 +135,11 @@ jobs:
           - {"os": "ubuntu", "py": "cp312", "arch": "riscv64", "cipy": "3.11"}
           - {"os": "ubuntu", "py": "cp313", "arch": "riscv64", "cipy": "3.11"}
           - {"os": "ubuntu", "py": "cp314", "arch": "riscv64", "cipy": "3.11"}
-          - {"os": "ubuntu-24.04-ppc64le", "py": "cp310", "arch": "ppc64le", "cipy": "3.11"}
-          - {"os": "ubuntu-24.04-ppc64le", "py": "cp311", "arch": "ppc64le", "cipy": "3.11"}
-          - {"os": "ubuntu-24.04-ppc64le", "py": "cp312", "arch": "ppc64le", "cipy": "3.11"}
-          - {"os": "ubuntu-24.04-ppc64le", "py": "cp313", "arch": "ppc64le", "cipy": "3.11"}
-          - {"os": "ubuntu-24.04-ppc64le", "py": "cp314", "arch": "ppc64le", "cipy": "3.11"}
+          - {"os": "ubuntu", "py": "cp310", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
+          - {"os": "ubuntu", "py": "cp311", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
+          - {"os": "ubuntu", "py": "cp312", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
+          - {"os": "ubuntu", "py": "cp313", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
+          - {"os": "ubuntu", "py": "cp314", "arch": "ppc64le", "cipy": "3.11", "os-version": "24.04-ppc64le"}
           - {"os": "macos", "py": "cp310", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
           - {"os": "macos", "py": "cp311", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
           - {"os": "macos", "py": "cp312", "arch": "arm64", "cipy": "3.11", "os-version": "14"}
@@ -164,7 +164,7 @@ jobs:
           - {"os": "windows", "py": "cp312", "arch": "ARM64", "cipy": "3.11", "os-version": "11-arm"}
           - {"os": "windows", "py": "cp313", "arch": "ARM64", "cipy": "3.11", "os-version": "11-arm"}
           - {"os": "windows", "py": "cp314", "arch": "ARM64", "cipy": "3.11", "os-version": "11-arm"}
-        # [[[end]]] (sum: GLlE/BLyNS)
+        # [[[end]]] (sum: AhCqn9SafY)
         #            ^^^^^^^^^^^^^^^
         # If a check fails and points to this checksum line, it means you edited
         # the matrix directly instead of editing the Python code in the comment

@nedbat
Copy link
Member

nedbat commented Feb 9, 2026

Looks good: it's now a nice tight change! Thanks.

@nedbat nedbat merged commit 58aade0 into coveragepy:main Feb 9, 2026
77 checks passed
nedbat added a commit that referenced this pull request Feb 9, 2026
@nedbat
Copy link
Member

nedbat commented Feb 9, 2026

This is now released as part of coverage 7.13.4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants