Skip to content

Update support for 3.13 #723

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

Open
wants to merge 18 commits into
base: devel
Choose a base branch
from
Open

Update support for 3.13 #723

wants to merge 18 commits into from

Conversation

KB-perByte
Copy link
Member

@KB-perByte KB-perByte commented May 19, 2025

SUMMARY
  1. Triggering Mechanisms
    Weekly Schedule: Runs every Monday to keep images updated
    Pull Requests: When changes are made to the workflow file or build scripts
    Push to devel branch: When the workflow or build scripts are modified
    Manual Trigger: Can be run on-demand via workflow_dispatch

  2. Build Matrix
    The workflow uses a matrix strategy to build multiple combinations:

  • Architectures:
    -- x86_64 (AMD64)
    -- aarch64 (ARM64)
    -- ppc64le (PowerPC 64 little-endian)
    -- s390x (IBM System z)

  • Manylinux Variants:
    -- manylinux1 (for x86_64 only, very old)
    -- manylinux2010 (for x86_64 only, older)
    -- manylinux2014 (wider architecture support)
    -- manylinux_2_24 (PEP 600 format)
    -- manylinux_2_28
    -- manylinux_2_31 (newly added latest version)

  1. Build Process
    QEMU Setup: For non-x86_64 architectures, sets up QEMU emulation
    Buildah Build: Uses Red Hat's Buildah action to build the container image
    GitHub Container Registry: Pushes built images to GHCR with appropriate tags

  2. Files in consideration for the upgrade?
    manylinux_mapping.py: Maps between legacy and modern manylinux tag formats (no update)
    Dockerfile: Extends the base PyPA manylinux images with:

    • Additional utilities (Perl)
    • libffi and OpenSSL libraries
    • virtualenv setup
    • libssh installation

Updates Made

Added Latest Manylinux Version: Added manylinux_2_31 to the matrix
Updated libssh Version: Upgraded from 0.9.6 to 0.10.5

ISSUE TYPE
  • Bugfix Pull Request
  • Docs Pull Request
  • Feature Pull Request
ADDITIONAL INFORMATION
manylinux1 (EOL)
Python 2.7
Python 3.4
Python 3.5
Python 3.6
Python 3.7 (in later builds)
manylinux2010 (EOL)
Python 2.7
Python 3.5
Python 3.6
Python 3.7
Python 3.8 (in later builds)
manylinux2014
Python 2.7
Python 3.5
Python 3.6
Python 3.7
Python 3.8
Python 3.9 (in later builds)
manylinux_2_24 (PEP 600)
Python 3.6
Python 3.7
Python 3.8
Python 3.9
Python 3.10
manylinux_2_28
Python 3.7
Python 3.8
Python 3.9
Python 3.10
Python 3.11
Python 3.12 (in later builds)
manylinux_2_31 (Latest)
Python 3.8
Python 3.9
Python 3.10
Python 3.11
Python 3.12
Python 3.13 (in later builds)
Note that:

Each newer manylinux version tends to drop support for older Python versions
The PyPA occasionally updates images to add newer Python versions
The older manylinux1 and manylinux2010 formats are now considered end-of-life (EOL)
The newer manylinux versions use the format manylinux_X_Y, where X and Y correspond to the glibc version (e.g., 2.31)

What are the things that need to be done?

  • update jobs to support 3.13
  • update maylinux container to latest as they support 3.13
  • check the installation failure of CI
  • CI needs to be green and do a release if all above is achieved

Copy link

Congratulations! One of the builds has completed. 🍾

You can install the built RPMs by following these steps:

  • sudo yum install -y dnf-plugins-core on RHEL 8
  • sudo dnf install -y dnf-plugins-core on Fedora
  • dnf copr enable packit/ansible-pylibssh-723
  • And now you can install the packages.

Please note that the RPMs should be used only in a testing environment.

@KB-perByte KB-perByte closed this May 22, 2025
@KB-perByte KB-perByte reopened this May 22, 2025
Copy link

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.

1 participant